3566 lines
185 KiB
C#
3566 lines
185 KiB
C#
using System;
|
|
using System.Diagnostics.CodeAnalysis;
|
|
using System.Runtime.InteropServices;
|
|
using System.Security;
|
|
using SDL2;
|
|
using SlatedGameToolkit.Framework.Exceptions;
|
|
|
|
namespace SlatedGameToolkit.Framework.Graphics.OpenGL
|
|
{
|
|
[SuppressUnmanagedCodeSecurity]
|
|
[SuppressMessage("ReSharper", "StringLiteralTypo")]
|
|
[SuppressMessage("ReSharper", "IdentifierTypo")]
|
|
[SuppressMessage("ReSharper", "InconsistentNaming")]
|
|
public class GLContext : IDisposable
|
|
{
|
|
#region OpenGLFunctions
|
|
|
|
public IntPtr Handle { get; private set; }
|
|
private bool disposed;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLCULLFACEPROC(CullFaceMode mode);
|
|
private PFNGLCULLFACEPROC glCullFace;
|
|
|
|
public void CullFace(CullFaceMode mode)
|
|
{
|
|
glCullFace.Invoke(mode);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLFRONTFACEPROC(FrontFaceDirection mode);
|
|
private PFNGLFRONTFACEPROC glFrontFace;
|
|
|
|
public void FrontFace(FrontFaceDirection mode)
|
|
{
|
|
glFrontFace.Invoke(mode);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLHINTPROC(HintTarget target, HintMode mode);
|
|
private PFNGLHINTPROC glHint;
|
|
|
|
public void Hint(HintTarget target, HintMode mode)
|
|
{
|
|
glHint.Invoke(target, mode);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLLINEWIDTHPROC(float width);
|
|
private PFNGLLINEWIDTHPROC glLineWidth;
|
|
|
|
public void LineWidth(float width)
|
|
{
|
|
glLineWidth.Invoke(width);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLPOINTSIZEPROC(float size);
|
|
private PFNGLPOINTSIZEPROC glPointSize;
|
|
|
|
public void PointSize(float size)
|
|
{
|
|
glPointSize.Invoke(size);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLPOLYGONMODEPROC(MaterialFace face, PolygonMode mode);
|
|
private PFNGLPOLYGONMODEPROC glPolygonMode;
|
|
|
|
public void PolygonMode(MaterialFace face, PolygonMode mode)
|
|
{
|
|
glPolygonMode.Invoke(face, mode);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLSCISSORPROC(int x, int y, int width, int height);
|
|
private PFNGLSCISSORPROC glScissor;
|
|
|
|
public void Scissor(int x, int y, int width, int height)
|
|
{
|
|
glScissor.Invoke(x, y, width, height);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLTEXPARAMETERFPROC(TextureTarget target, TextureParameterName pname, float param);
|
|
private PFNGLTEXPARAMETERFPROC glTexParameterf;
|
|
|
|
public void TexParameterf(TextureTarget target, TextureParameterName pname, float param)
|
|
{
|
|
glTexParameterf.Invoke(target, pname, param);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLTEXPARAMETERFVPROC(TextureTarget target, TextureParameterName pname, float[] parameters);
|
|
private PFNGLTEXPARAMETERFVPROC glTexParameterfv;
|
|
|
|
public void TexParameterfv(TextureTarget target, TextureParameterName pname, float[] parameters)
|
|
{
|
|
glTexParameterfv.Invoke(target, pname, parameters);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLTEXPARAMETERIPROC(TextureTarget target, TextureParameterName pname, int param);
|
|
private PFNGLTEXPARAMETERIPROC glTexParameteri;
|
|
|
|
public void TexParameteri(TextureTarget target, TextureParameterName pname, int param)
|
|
{
|
|
glTexParameteri.Invoke(target, pname, param);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLTEXPARAMETERIVPROC(TextureTarget target, TextureParameterName pname, int[] parameters);
|
|
private PFNGLTEXPARAMETERIVPROC glTexParameteriv;
|
|
|
|
public void TexParameteriv(TextureTarget target, TextureParameterName pname, int[] parameters)
|
|
{
|
|
glTexParameteriv.Invoke(target, pname, parameters);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLTEXIMAGE1DPROC(TextureTarget target, int level, int internalformat, int width, int border, PixelFormat format, PixelType type, IntPtr pixels);
|
|
private PFNGLTEXIMAGE1DPROC glTexImage1D;
|
|
|
|
public void TexImage1D(TextureTarget target, int level, int internalformat, int width, int border, PixelFormat format, PixelType type, IntPtr pixels)
|
|
{
|
|
glTexImage1D.Invoke(target, level, internalformat, width, border, format, type, pixels);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLTEXIMAGE2DPROC(TextureTarget target, int level, InternalFormat internalformat, uint width, uint height, int border, PixelFormat format, PixelType type, IntPtr pixels);
|
|
private PFNGLTEXIMAGE2DPROC glTexImage2D;
|
|
|
|
public void TexImage2D(TextureTarget target, int level, InternalFormat internalformat, uint width, uint height, int border, PixelFormat format, PixelType type, IntPtr pixels)
|
|
{
|
|
glTexImage2D.Invoke(target, level, internalformat, width, height, border, format, type, pixels);
|
|
DetectGLError();
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLDRAWBUFFERPROC(DrawBufferMode buf);
|
|
private PFNGLDRAWBUFFERPROC glDrawBuffer;
|
|
|
|
public void DrawBuffer(DrawBufferMode buf)
|
|
{
|
|
glDrawBuffer.Invoke(buf);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLCLEARPROC(ClearBufferMask mask);
|
|
private PFNGLCLEARPROC glClear;
|
|
|
|
public void Clear(ClearBufferMask mask)
|
|
{
|
|
glClear.Invoke(mask);
|
|
DetectGLError();
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLCLEARCOLORPROC(float red, float green, float blue, float alpha);
|
|
private PFNGLCLEARCOLORPROC glClearColor;
|
|
|
|
public void ClearColor(float red, float green, float blue, float alpha)
|
|
{
|
|
glClearColor.Invoke(red, green, blue, alpha);
|
|
DetectGLError();
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLCLEARSTENCILPROC(int s);
|
|
private PFNGLCLEARSTENCILPROC glClearStencil;
|
|
|
|
public void ClearStencil(int s)
|
|
{
|
|
glClearStencil.Invoke(s);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLCLEARDEPTHPROC(double depth);
|
|
private PFNGLCLEARDEPTHPROC glClearDepth;
|
|
|
|
public void ClearDepth(double depth)
|
|
{
|
|
glClearDepth.Invoke(depth);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLSTENCILMASKPROC(uint mask);
|
|
private PFNGLSTENCILMASKPROC glStencilMask;
|
|
|
|
public void StencilMask(uint mask)
|
|
{
|
|
glStencilMask.Invoke(mask);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLCOLORMASKPROC(bool red, bool green, bool blue, bool alpha);
|
|
private PFNGLCOLORMASKPROC glColorMask;
|
|
|
|
public void ColorMask(bool red, bool green, bool blue, bool alpha)
|
|
{
|
|
glColorMask.Invoke(red, green, blue, alpha);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLDEPTHMASKPROC(bool flag);
|
|
private PFNGLDEPTHMASKPROC glDepthMask;
|
|
|
|
public void DepthMask(bool flag)
|
|
{
|
|
glDepthMask.Invoke(flag);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLDISABLEPROC(EnableCap cap);
|
|
private PFNGLDISABLEPROC glDisable;
|
|
|
|
public void Disable(EnableCap cap)
|
|
{
|
|
glDisable.Invoke(cap);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLENABLEPROC(EnableCap cap);
|
|
private PFNGLENABLEPROC glEnable;
|
|
|
|
public void Enable(EnableCap cap)
|
|
{
|
|
glEnable.Invoke(cap);
|
|
DetectGLError();
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLFINISHPROC();
|
|
private PFNGLFINISHPROC glFinish;
|
|
|
|
public void Finish()
|
|
{
|
|
glFinish.Invoke();
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLFLUSHPROC();
|
|
private PFNGLFLUSHPROC glFlush;
|
|
|
|
public void Flush()
|
|
{
|
|
glFlush.Invoke();
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLBLENDFUNCPROC(BlendingFactor sfactor, BlendingFactor dfactor);
|
|
private PFNGLBLENDFUNCPROC glBlendFunc;
|
|
|
|
public void BlendFunc(BlendingFactor sfactor, BlendingFactor dfactor)
|
|
{
|
|
glBlendFunc.Invoke(sfactor, dfactor);
|
|
DetectGLError();
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLLOGICOPPROC(LogicOp opcode);
|
|
private PFNGLLOGICOPPROC glLogicOp;
|
|
|
|
public void LogicOp(LogicOp opcode)
|
|
{
|
|
glLogicOp.Invoke(opcode);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLSTENCILFUNCPROC(StencilFunction func, int reference, uint mask);
|
|
private PFNGLSTENCILFUNCPROC glStencilFunc;
|
|
|
|
public void StencilFunc(StencilFunction func, int reference, uint mask)
|
|
{
|
|
glStencilFunc.Invoke(func, reference, mask);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLSTENCILOPPROC(StencilOp fail, StencilOp zfail, StencilOp zpass);
|
|
private PFNGLSTENCILOPPROC glStencilOp;
|
|
|
|
public void StencilOp(StencilOp fail, StencilOp zfail, StencilOp zpass)
|
|
{
|
|
glStencilOp.Invoke(fail, zfail, zpass);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLDEPTHFUNCPROC(DepthFunction func);
|
|
private PFNGLDEPTHFUNCPROC glDepthFunc;
|
|
|
|
public void DepthFunc(DepthFunction func)
|
|
{
|
|
glDepthFunc.Invoke(func);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLPIXELSTOREFPROC(PixelStoreParameter pname, float param);
|
|
private PFNGLPIXELSTOREFPROC glPixelStoref;
|
|
|
|
public void PixelStoref(PixelStoreParameter pname, float param)
|
|
{
|
|
glPixelStoref.Invoke(pname, param);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLPIXELSTOREIPROC(PixelStoreParameter pname, int param);
|
|
private PFNGLPIXELSTOREIPROC glPixelStorei;
|
|
|
|
public void PixelStorei(PixelStoreParameter pname, int param)
|
|
{
|
|
glPixelStorei.Invoke(pname, param);
|
|
DetectGLError();
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLREADBUFFERPROC(ReadBufferMode src);
|
|
private PFNGLREADBUFFERPROC glReadBuffer;
|
|
|
|
public void ReadBuffer(ReadBufferMode src)
|
|
{
|
|
glReadBuffer.Invoke(src);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLREADPIXELSPROC(int x, int y, int width, int height, PixelFormat format, PixelType type, out IntPtr pixels);
|
|
private PFNGLREADPIXELSPROC glReadPixels;
|
|
|
|
public void ReadPixels(int x, int y, int width, int height, PixelFormat format, PixelType type, out IntPtr pixels)
|
|
{
|
|
glReadPixels.Invoke(x, y, width, height, format, type, out pixels);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLGETBOOLEANVPROC(GetPName pname, out bool data);
|
|
private PFNGLGETBOOLEANVPROC glGetBooleanv;
|
|
|
|
public void GetBooleanv(GetPName pname, out bool data)
|
|
{
|
|
glGetBooleanv.Invoke(pname, out data);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLGETDOUBLEVPROC(GetPName pname, out double data);
|
|
private PFNGLGETDOUBLEVPROC glGetDoublev;
|
|
|
|
public void GetDoublev(GetPName pname, out double data)
|
|
{
|
|
glGetDoublev.Invoke(pname, out data);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate ErrorCode PFNGLGETERRORPROC();
|
|
private PFNGLGETERRORPROC glGetError;
|
|
|
|
public ErrorCode GetError()
|
|
{
|
|
return glGetError.Invoke();
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLGETFLOATVPROC(GetPName pname, out float data);
|
|
private PFNGLGETFLOATVPROC glGetFloatv;
|
|
|
|
public void GetFloatv(GetPName pname, out float data)
|
|
{
|
|
glGetFloatv.Invoke(pname, out data);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLGETINTEGERVPROC(GetPName pname, int[] data);
|
|
private PFNGLGETINTEGERVPROC glGetIntegerv;
|
|
|
|
public void GetIntegerv(GetPName pname, int[] data)
|
|
{
|
|
glGetIntegerv.Invoke(pname, data);
|
|
DetectGLError();
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate IntPtr PFNGLGETSTRINGPROC(StringName name);
|
|
private PFNGLGETSTRINGPROC glGetString;
|
|
|
|
public IntPtr GetString(StringName name)
|
|
{
|
|
return glGetString.Invoke(name);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLGETTEXIMAGEPROC(TextureTarget target, int level, PixelFormat format, PixelType type, out IntPtr pixels);
|
|
private PFNGLGETTEXIMAGEPROC glGetTexImage;
|
|
|
|
public void GetTexImage(TextureTarget target, int level, PixelFormat format, PixelType type, out IntPtr pixels)
|
|
{
|
|
glGetTexImage.Invoke(target, level, format, type, out pixels);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLGETTEXPARAMETERFVPROC(TextureTarget target, GetTextureParameter pname, out float parameters);
|
|
private PFNGLGETTEXPARAMETERFVPROC glGetTexParameterfv;
|
|
|
|
public void GetTexParameterfv(TextureTarget target, GetTextureParameter pname, out float parameters)
|
|
{
|
|
glGetTexParameterfv.Invoke(target, pname, out parameters);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLGETTEXPARAMETERIVPROC(TextureTarget target, GetTextureParameter pname, out int parameters);
|
|
private PFNGLGETTEXPARAMETERIVPROC glGetTexParameteriv;
|
|
|
|
public void GetTexParameteriv(TextureTarget target, GetTextureParameter pname, out int parameters)
|
|
{
|
|
glGetTexParameteriv.Invoke(target, pname, out parameters);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLGETTEXLEVELPARAMETERFVPROC(TextureTarget target, int level, GetTextureParameter pname, out float parameters);
|
|
private PFNGLGETTEXLEVELPARAMETERFVPROC glGetTexLevelParameterfv;
|
|
|
|
public void GetTexLevelParameterfv(TextureTarget target, int level, GetTextureParameter pname, out float parameters)
|
|
{
|
|
glGetTexLevelParameterfv.Invoke(target, level, pname, out parameters);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLGETTEXLEVELPARAMETERIVPROC(TextureTarget target, int level, GetTextureParameter pname, out int parameters);
|
|
private PFNGLGETTEXLEVELPARAMETERIVPROC glGetTexLevelParameteriv;
|
|
|
|
public void GetTexLevelParameteriv(TextureTarget target, int level, GetTextureParameter pname, out int parameters)
|
|
{
|
|
glGetTexLevelParameteriv.Invoke(target, level, pname, out parameters);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate bool PFNGLISENABLEDPROC(EnableCap cap);
|
|
private PFNGLISENABLEDPROC glIsEnabled;
|
|
|
|
public bool IsEnabled(EnableCap cap)
|
|
{
|
|
return glIsEnabled.Invoke(cap);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLDEPTHRANGEPROC(double n, double f);
|
|
private PFNGLDEPTHRANGEPROC glDepthRange;
|
|
|
|
public void DepthRange(double n, double f)
|
|
{
|
|
glDepthRange.Invoke(n, f);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLVIEWPORTPROC(int x, int y, int width, int height);
|
|
private PFNGLVIEWPORTPROC glViewport;
|
|
|
|
public void Viewport(int x, int y, int width, int height)
|
|
{
|
|
glViewport.Invoke(x, y, width, height);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLDRAWARRAYSPROC(PrimitiveType mode, int first, int count);
|
|
private PFNGLDRAWARRAYSPROC glDrawArrays;
|
|
|
|
public void DrawArrays(PrimitiveType mode, int first, int count)
|
|
{
|
|
glDrawArrays.Invoke(mode, first, count);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLDRAWELEMENTSPROC(PrimitiveType mode, int count, DrawElementsType type, IntPtr indices);
|
|
private PFNGLDRAWELEMENTSPROC glDrawElements;
|
|
|
|
public void DrawElements(PrimitiveType mode, int count, DrawElementsType type, IntPtr indices)
|
|
{
|
|
glDrawElements.Invoke(mode, count, type, indices);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLPOLYGONOFFSETPROC(float factor, float units);
|
|
private PFNGLPOLYGONOFFSETPROC glPolygonOffset;
|
|
|
|
public void PolygonOffset(float factor, float units)
|
|
{
|
|
glPolygonOffset.Invoke(factor, units);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLCOPYTEXIMAGE1DPROC(TextureTarget target, int level, InternalFormat internalformat, int x, int y, int width, int border);
|
|
private PFNGLCOPYTEXIMAGE1DPROC glCopyTexImage1D;
|
|
|
|
public void CopyTexImage1D(TextureTarget target, int level, InternalFormat internalformat, int x, int y, int width, int border)
|
|
{
|
|
glCopyTexImage1D.Invoke(target, level, internalformat, x, y, width, border);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLCOPYTEXIMAGE2DPROC(TextureTarget target, int level, InternalFormat internalformat, int x, int y, int width, int height, int border);
|
|
private PFNGLCOPYTEXIMAGE2DPROC glCopyTexImage2D;
|
|
|
|
public void CopyTexImage2D(TextureTarget target, int level, InternalFormat internalformat, int x, int y, int width, int height, int border)
|
|
{
|
|
glCopyTexImage2D.Invoke(target, level, internalformat, x, y, width, height, border);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLCOPYTEXSUBIMAGE1DPROC(TextureTarget target, int level, int xoffset, int x, int y, int width);
|
|
private PFNGLCOPYTEXSUBIMAGE1DPROC glCopyTexSubImage1D;
|
|
|
|
public void CopyTexSubImage1D(TextureTarget target, int level, int xoffset, int x, int y, int width)
|
|
{
|
|
glCopyTexSubImage1D.Invoke(target, level, xoffset, x, y, width);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLCOPYTEXSUBIMAGE2DPROC(TextureTarget target, int level, int xoffset, int yoffset, int x, int y, int width, int height);
|
|
private PFNGLCOPYTEXSUBIMAGE2DPROC glCopyTexSubImage2D;
|
|
|
|
public void CopyTexSubImage2D(TextureTarget target, int level, int xoffset, int yoffset, int x, int y, int width, int height)
|
|
{
|
|
glCopyTexSubImage2D.Invoke(target, level, xoffset, yoffset, x, y, width, height);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLTEXSUBIMAGE1DPROC(TextureTarget target, int level, int xoffset, int width, PixelFormat format, PixelType type, IntPtr pixels);
|
|
private PFNGLTEXSUBIMAGE1DPROC glTexSubImage1D;
|
|
|
|
public void TexSubImage1D(TextureTarget target, int level, int xoffset, int width, PixelFormat format, PixelType type, IntPtr pixels)
|
|
{
|
|
glTexSubImage1D.Invoke(target, level, xoffset, width, format, type, pixels);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLTEXSUBIMAGE2DPROC(TextureTarget target, int level, int xoffset, int yoffset, int width, int height, PixelFormat format, PixelType type, IntPtr pixels);
|
|
private PFNGLTEXSUBIMAGE2DPROC glTexSubImage2D;
|
|
|
|
public void TexSubImage2D(TextureTarget target, int level, int xoffset, int yoffset, int width, int height, PixelFormat format, PixelType type, IntPtr pixels)
|
|
{
|
|
glTexSubImage2D.Invoke(target, level, xoffset, yoffset, width, height, format, type, pixels);
|
|
DetectGLError();
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLBINDTEXTUREPROC(TextureTarget target, uint texture);
|
|
private PFNGLBINDTEXTUREPROC glBindTexture;
|
|
|
|
public void BindTexture(TextureTarget target, uint texture)
|
|
{
|
|
glBindTexture.Invoke(target, texture);
|
|
DetectGLError();
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLDELETETEXTURESPROC(int n, uint[] textures);
|
|
private PFNGLDELETETEXTURESPROC glDeleteTextures;
|
|
|
|
public void DeleteTextures(int n, uint[] textures)
|
|
{
|
|
glDeleteTextures.Invoke(n, textures);
|
|
DetectGLError();
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLGENTEXTURESPROC(int n, uint[] textures);
|
|
private PFNGLGENTEXTURESPROC glGenTextures;
|
|
|
|
public void GenTextures(int n, uint[] textures)
|
|
{
|
|
glGenTextures.Invoke(n, textures);
|
|
DetectGLError();
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate bool PFNGLISTEXTUREPROC(uint texture);
|
|
private PFNGLISTEXTUREPROC glIsTexture;
|
|
|
|
public bool IsTexture(uint texture)
|
|
{
|
|
return glIsTexture.Invoke(texture);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLDRAWRANGEELEMENTSPROC(PrimitiveType mode, uint start, uint end, int count, DrawElementsType type, IntPtr indices);
|
|
private PFNGLDRAWRANGEELEMENTSPROC glDrawRangeElements;
|
|
|
|
public void DrawRangeElements(PrimitiveType mode, uint start, uint end, int count, DrawElementsType type, IntPtr indices)
|
|
{
|
|
glDrawRangeElements.Invoke(mode, start, end, count, type, indices);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLTEXIMAGE3DPROC(TextureTarget target, int level, int internalformat, int width, int height, int depth, int border, PixelFormat format, PixelType type, IntPtr pixels);
|
|
private PFNGLTEXIMAGE3DPROC glTexImage3D;
|
|
|
|
public void TexImage3D(TextureTarget target, int level, int internalformat, int width, int height, int depth, int border, PixelFormat format, PixelType type, IntPtr pixels)
|
|
{
|
|
glTexImage3D.Invoke(target, level, internalformat, width, height, depth, border, format, type, pixels);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLTEXSUBIMAGE3DPROC(TextureTarget target, int level, int xoffset, int yoffset, int zoffset, int width, int height, int depth, PixelFormat format, PixelType type, IntPtr pixels);
|
|
private PFNGLTEXSUBIMAGE3DPROC glTexSubImage3D;
|
|
|
|
public void TexSubImage3D(TextureTarget target, int level, int xoffset, int yoffset, int zoffset, int width, int height, int depth, PixelFormat format, PixelType type, IntPtr pixels)
|
|
{
|
|
glTexSubImage3D.Invoke(target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLCOPYTEXSUBIMAGE3DPROC(TextureTarget target, int level, int xoffset, int yoffset, int zoffset, int x, int y, int width, int height);
|
|
private PFNGLCOPYTEXSUBIMAGE3DPROC glCopyTexSubImage3D;
|
|
|
|
public void CopyTexSubImage3D(TextureTarget target, int level, int xoffset, int yoffset, int zoffset, int x, int y, int width, int height)
|
|
{
|
|
glCopyTexSubImage3D.Invoke(target, level, xoffset, yoffset, zoffset, x, y, width, height);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLACTIVETEXTUREPROC(TextureUnit texture);
|
|
private PFNGLACTIVETEXTUREPROC glActiveTexture;
|
|
|
|
public void ActiveTexture(TextureUnit texture)
|
|
{
|
|
glActiveTexture.Invoke(texture);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLSAMPLECOVERAGEPROC(float value, bool invert);
|
|
private PFNGLSAMPLECOVERAGEPROC glSampleCoverage;
|
|
|
|
public void SampleCoverage(float value, bool invert)
|
|
{
|
|
glSampleCoverage.Invoke(value, invert);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLCOMPRESSEDTEXIMAGE3DPROC(TextureTarget target, int level, InternalFormat internalformat, int width, int height, int depth, int border, int imageSize, IntPtr data);
|
|
private PFNGLCOMPRESSEDTEXIMAGE3DPROC glCompressedTexImage3D;
|
|
|
|
public void CompressedTexImage3D(TextureTarget target, int level, InternalFormat internalformat, int width, int height, int depth, int border, int imageSize, IntPtr data)
|
|
{
|
|
glCompressedTexImage3D.Invoke(target, level, internalformat, width, height, depth, border, imageSize, data);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLCOMPRESSEDTEXIMAGE2DPROC(TextureTarget target, int level, InternalFormat internalformat, int width, int height, int border, int imageSize, IntPtr data);
|
|
private PFNGLCOMPRESSEDTEXIMAGE2DPROC glCompressedTexImage2D;
|
|
|
|
public void CompressedTexImage2D(TextureTarget target, int level, InternalFormat internalformat, int width, int height, int border, int imageSize, IntPtr data)
|
|
{
|
|
glCompressedTexImage2D.Invoke(target, level, internalformat, width, height, border, imageSize, data);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLCOMPRESSEDTEXIMAGE1DPROC(TextureTarget target, int level, InternalFormat internalformat, int width, int border, int imageSize, IntPtr data);
|
|
private PFNGLCOMPRESSEDTEXIMAGE1DPROC glCompressedTexImage1D;
|
|
|
|
public void CompressedTexImage1D(TextureTarget target, int level, InternalFormat internalformat, int width, int border, int imageSize, IntPtr data)
|
|
{
|
|
glCompressedTexImage1D.Invoke(target, level, internalformat, width, border, imageSize, data);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC(TextureTarget target, int level, int xoffset, int yoffset, int zoffset, int width, int height, int depth, PixelFormat format, int imageSize, IntPtr data);
|
|
private PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC glCompressedTexSubImage3D;
|
|
|
|
public void CompressedTexSubImage3D(TextureTarget target, int level, int xoffset, int yoffset, int zoffset, int width, int height, int depth, PixelFormat format, int imageSize, IntPtr data)
|
|
{
|
|
glCompressedTexSubImage3D.Invoke(target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC(TextureTarget target, int level, int xoffset, int yoffset, int width, int height, PixelFormat format, int imageSize, IntPtr data);
|
|
private PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC glCompressedTexSubImage2D;
|
|
|
|
public void CompressedTexSubImage2D(TextureTarget target, int level, int xoffset, int yoffset, int width, int height, PixelFormat format, int imageSize, IntPtr data)
|
|
{
|
|
glCompressedTexSubImage2D.Invoke(target, level, xoffset, yoffset, width, height, format, imageSize, data);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC(TextureTarget target, int level, int xoffset, int width, PixelFormat format, int imageSize, IntPtr data);
|
|
private PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC glCompressedTexSubImage1D;
|
|
|
|
public void CompressedTexSubImage1D(TextureTarget target, int level, int xoffset, int width, PixelFormat format, int imageSize, IntPtr data)
|
|
{
|
|
glCompressedTexSubImage1D.Invoke(target, level, xoffset, width, format, imageSize, data);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLGETCOMPRESSEDTEXIMAGEPROC(TextureTarget target, int level, out IntPtr img);
|
|
private PFNGLGETCOMPRESSEDTEXIMAGEPROC glGetCompressedTexImage;
|
|
|
|
public void GetCompressedTexImage(TextureTarget target, int level, out IntPtr img)
|
|
{
|
|
glGetCompressedTexImage.Invoke(target, level, out img);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLBLENDFUNCSEPARATEPROC(BlendingFactor sfactorRGB, BlendingFactor dfactorRGB, BlendingFactor sfactorAlpha, BlendingFactor dfactorAlpha);
|
|
private PFNGLBLENDFUNCSEPARATEPROC glBlendFuncSeparate;
|
|
|
|
public void BlendFuncSeparate(BlendingFactor sfactorRGB, BlendingFactor dfactorRGB, BlendingFactor sfactorAlpha, BlendingFactor dfactorAlpha)
|
|
{
|
|
glBlendFuncSeparate.Invoke(sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLMULTIDRAWARRAYSPROC(PrimitiveType mode, int[] first, int[] count, int drawcount);
|
|
private PFNGLMULTIDRAWARRAYSPROC glMultiDrawArrays;
|
|
|
|
public void MultiDrawArrays(PrimitiveType mode, int[] first, int[] count, int drawcount)
|
|
{
|
|
glMultiDrawArrays.Invoke(mode, first, count, drawcount);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLMULTIDRAWELEMENTSPROC(PrimitiveType mode, int[] count, DrawElementsType type, IntPtr indices, int drawcount);
|
|
private PFNGLMULTIDRAWELEMENTSPROC glMultiDrawElements;
|
|
|
|
public void MultiDrawElements(PrimitiveType mode, int[] count, DrawElementsType type, IntPtr indices, int drawcount)
|
|
{
|
|
glMultiDrawElements.Invoke(mode, count, type, indices, drawcount);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLPOINTPARAMETERFPROC(int pname, float param);
|
|
private PFNGLPOINTPARAMETERFPROC glPointParameterf;
|
|
|
|
public void PointParameterf(int pname, float param)
|
|
{
|
|
glPointParameterf.Invoke(pname, param);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLPOINTPARAMETERFVPROC(int pname, float[] parameters);
|
|
private PFNGLPOINTPARAMETERFVPROC glPointParameterfv;
|
|
|
|
public void PointParameterfv(int pname, float[] parameters)
|
|
{
|
|
glPointParameterfv.Invoke(pname, parameters);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLPOINTPARAMETERIPROC(int pname, int param);
|
|
private PFNGLPOINTPARAMETERIPROC glPointParameteri;
|
|
|
|
public void PointParameteri(int pname, int param)
|
|
{
|
|
glPointParameteri.Invoke(pname, param);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLPOINTPARAMETERIVPROC(int pname, int[] parameters);
|
|
private PFNGLPOINTPARAMETERIVPROC glPointParameteriv;
|
|
|
|
public void PointParameteriv(int pname, int[] parameters)
|
|
{
|
|
glPointParameteriv.Invoke(pname, parameters);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLVERTEXATTRIBP4UIVPROC(uint index, VertexAttribPointerType type, bool normalized, uint[] value);
|
|
private PFNGLVERTEXATTRIBP4UIVPROC glVertexAttribP4uiv;
|
|
|
|
public void VertexAttribP4uiv(uint index, VertexAttribPointerType type, bool normalized, uint[] value)
|
|
{
|
|
glVertexAttribP4uiv.Invoke(index, type, normalized, value);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLVERTEXATTRIBP4UIPROC(uint index, VertexAttribPointerType type, bool normalized, uint value);
|
|
private PFNGLVERTEXATTRIBP4UIPROC glVertexAttribP4ui;
|
|
|
|
public void VertexAttribP4ui(uint index, VertexAttribPointerType type, bool normalized, uint value)
|
|
{
|
|
glVertexAttribP4ui.Invoke(index, type, normalized, value);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLVERTEXATTRIBP3UIVPROC(uint index, VertexAttribPointerType type, bool normalized, uint[] value);
|
|
private PFNGLVERTEXATTRIBP3UIVPROC glVertexAttribP3uiv;
|
|
|
|
public void VertexAttribP3uiv(uint index, VertexAttribPointerType type, bool normalized, uint[] value)
|
|
{
|
|
glVertexAttribP3uiv.Invoke(index, type, normalized, value);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLVERTEXATTRIBP3UIPROC(uint index, VertexAttribPointerType type, bool normalized, uint value);
|
|
private PFNGLVERTEXATTRIBP3UIPROC glVertexAttribP3ui;
|
|
|
|
public void VertexAttribP3ui(uint index, VertexAttribPointerType type, bool normalized, uint value)
|
|
{
|
|
glVertexAttribP3ui.Invoke(index, type, normalized, value);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLVERTEXATTRIBP2UIVPROC(uint index, VertexAttribPointerType type, bool normalized, uint[] value);
|
|
private PFNGLVERTEXATTRIBP2UIVPROC glVertexAttribP2uiv;
|
|
|
|
public void VertexAttribP2uiv(uint index, VertexAttribPointerType type, bool normalized, uint[] value)
|
|
{
|
|
glVertexAttribP2uiv.Invoke(index, type, normalized, value);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLVERTEXATTRIBP2UIPROC(uint index, VertexAttribPointerType type, bool normalized, uint value);
|
|
private PFNGLVERTEXATTRIBP2UIPROC glVertexAttribP2ui;
|
|
|
|
public void VertexAttribP2ui(uint index, VertexAttribPointerType type, bool normalized, uint value)
|
|
{
|
|
glVertexAttribP2ui.Invoke(index, type, normalized, value);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLVERTEXATTRIBP1UIVPROC(uint index, VertexAttribPointerType type, bool normalized, uint[] value);
|
|
private PFNGLVERTEXATTRIBP1UIVPROC glVertexAttribP1uiv;
|
|
|
|
public void VertexAttribP1uiv(uint index, VertexAttribPointerType type, bool normalized, uint[] value)
|
|
{
|
|
glVertexAttribP1uiv.Invoke(index, type, normalized, value);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLVERTEXATTRIBP1UIPROC(uint index, VertexAttribPointerType type, bool normalized, uint value);
|
|
private PFNGLVERTEXATTRIBP1UIPROC glVertexAttribP1ui;
|
|
|
|
public void VertexAttribP1ui(uint index, VertexAttribPointerType type, bool normalized, uint value)
|
|
{
|
|
glVertexAttribP1ui.Invoke(index, type, normalized, value);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLVERTEXATTRIBDIVISORPROC(uint index, uint divisor);
|
|
private PFNGLVERTEXATTRIBDIVISORPROC glVertexAttribDivisor;
|
|
|
|
public void VertexAttribDivisor(uint index, uint divisor)
|
|
{
|
|
glVertexAttribDivisor.Invoke(index, divisor);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLGETQUERYOBJECTUI64VPROC(uint id, QueryObjectParameterName pname, out ulong parameters);
|
|
private PFNGLGETQUERYOBJECTUI64VPROC glGetQueryObjectui64v;
|
|
|
|
public void GetQueryObjectui64v(uint id, QueryObjectParameterName pname, out ulong parameters)
|
|
{
|
|
glGetQueryObjectui64v.Invoke(id, pname, out parameters);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLGETQUERYOBJECTI64VPROC(uint id, QueryObjectParameterName pname, out long parameters);
|
|
private PFNGLGETQUERYOBJECTI64VPROC glGetQueryObjecti64v;
|
|
|
|
public void GetQueryObjecti64v(uint id, QueryObjectParameterName pname, out long parameters)
|
|
{
|
|
glGetQueryObjecti64v.Invoke(id, pname, out parameters);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLQUERYCOUNTERPROC(uint id, QueryCounterTarget target);
|
|
private PFNGLQUERYCOUNTERPROC glQueryCounter;
|
|
|
|
public void QueryCounter(uint id, QueryCounterTarget target)
|
|
{
|
|
glQueryCounter.Invoke(id, target);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLGETSAMPLERPARAMETERIUIVPROC(uint sampler, SamplerParameterName pname, out uint parameters);
|
|
private PFNGLGETSAMPLERPARAMETERIUIVPROC glGetSamplerParameterIuiv;
|
|
|
|
public void GetSamplerParameterIuiv(uint sampler, SamplerParameterName pname, out uint parameters)
|
|
{
|
|
glGetSamplerParameterIuiv.Invoke(sampler, pname, out parameters);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLGETSAMPLERPARAMETERFVPROC(uint sampler, SamplerParameterName pname, out float parameters);
|
|
private PFNGLGETSAMPLERPARAMETERFVPROC glGetSamplerParameterfv;
|
|
|
|
public void GetSamplerParameterfv(uint sampler, SamplerParameterName pname, out float parameters)
|
|
{
|
|
glGetSamplerParameterfv.Invoke(sampler, pname, out parameters);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLGETSAMPLERPARAMETERIIVPROC(uint sampler, SamplerParameterName pname, out int parameters);
|
|
private PFNGLGETSAMPLERPARAMETERIIVPROC glGetSamplerParameterIiv;
|
|
|
|
public void GetSamplerParameterIiv(uint sampler, SamplerParameterName pname, out int parameters)
|
|
{
|
|
glGetSamplerParameterIiv.Invoke(sampler, pname, out parameters);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLGETSAMPLERPARAMETERIVPROC(uint sampler, SamplerParameterName pname, out int parameters);
|
|
private PFNGLGETSAMPLERPARAMETERIVPROC glGetSamplerParameteriv;
|
|
|
|
public void GetSamplerParameteriv(uint sampler, SamplerParameterName pname, out int parameters)
|
|
{
|
|
glGetSamplerParameteriv.Invoke(sampler, pname, out parameters);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLSAMPLERPARAMETERIUIVPROC(uint sampler, SamplerParameterName pname, uint[] param);
|
|
private PFNGLSAMPLERPARAMETERIUIVPROC glSamplerParameterIuiv;
|
|
|
|
public void SamplerParameterIuiv(uint sampler, SamplerParameterName pname, uint[] param)
|
|
{
|
|
glSamplerParameterIuiv.Invoke(sampler, pname, param);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLSAMPLERPARAMETERIIVPROC(uint sampler, SamplerParameterName pname, int[] param);
|
|
private PFNGLSAMPLERPARAMETERIIVPROC glSamplerParameterIiv;
|
|
|
|
public void SamplerParameterIiv(uint sampler, SamplerParameterName pname, int[] param)
|
|
{
|
|
glSamplerParameterIiv.Invoke(sampler, pname, param);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLSAMPLERPARAMETERFVPROC(uint sampler, SamplerParameterName pname, float[] param);
|
|
private PFNGLSAMPLERPARAMETERFVPROC glSamplerParameterfv;
|
|
|
|
public void SamplerParameterfv(uint sampler, SamplerParameterName pname, float[] param)
|
|
{
|
|
glSamplerParameterfv.Invoke(sampler, pname, param);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLSAMPLERPARAMETERFPROC(uint sampler, SamplerParameterName pname, float param);
|
|
private PFNGLSAMPLERPARAMETERFPROC glSamplerParameterf;
|
|
|
|
public void SamplerParameterf(uint sampler, SamplerParameterName pname, float param)
|
|
{
|
|
glSamplerParameterf.Invoke(sampler, pname, param);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLSAMPLERPARAMETERIVPROC(uint sampler, SamplerParameterName pname, int[] param);
|
|
private PFNGLSAMPLERPARAMETERIVPROC glSamplerParameteriv;
|
|
|
|
public void SamplerParameteriv(uint sampler, SamplerParameterName pname, int[] param)
|
|
{
|
|
glSamplerParameteriv.Invoke(sampler, pname, param);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLSAMPLERPARAMETERIPROC(uint sampler, SamplerParameterName pname, int param);
|
|
private PFNGLSAMPLERPARAMETERIPROC glSamplerParameteri;
|
|
|
|
public void SamplerParameteri(uint sampler, SamplerParameterName pname, int param)
|
|
{
|
|
glSamplerParameteri.Invoke(sampler, pname, param);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLBINDSAMPLERPROC(uint unit, uint sampler);
|
|
private PFNGLBINDSAMPLERPROC glBindSampler;
|
|
|
|
public void BindSampler(uint unit, uint sampler)
|
|
{
|
|
glBindSampler.Invoke(unit, sampler);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate bool PFNGLISSAMPLERPROC(uint sampler);
|
|
private PFNGLISSAMPLERPROC glIsSampler;
|
|
|
|
public bool IsSampler(uint sampler)
|
|
{
|
|
return glIsSampler.Invoke(sampler);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLDELETESAMPLERSPROC(int count, uint[] samplers);
|
|
private PFNGLDELETESAMPLERSPROC glDeleteSamplers;
|
|
|
|
public void DeleteSamplers(int count, uint[] samplers)
|
|
{
|
|
glDeleteSamplers.Invoke(count, samplers);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLGENSAMPLERSPROC(int count, out uint samplers);
|
|
private PFNGLGENSAMPLERSPROC glGenSamplers;
|
|
|
|
public void GenSamplers(int count, out uint samplers)
|
|
{
|
|
glGenSamplers.Invoke(count, out samplers);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate int PFNGLGETFRAGDATAINDEXPROC(uint program, sbyte[] name);
|
|
private PFNGLGETFRAGDATAINDEXPROC glGetFragDataIndex;
|
|
|
|
public int GetFragDataIndex(uint program, sbyte[] name)
|
|
{
|
|
return glGetFragDataIndex.Invoke(program, name);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLBINDFRAGDATALOCATIONINDEXEDPROC(uint program, uint colorNumber, uint index, sbyte[] name);
|
|
private PFNGLBINDFRAGDATALOCATIONINDEXEDPROC glBindFragDataLocationIndexed;
|
|
|
|
public void BindFragDataLocationIndexed(uint program, uint colorNumber, uint index, sbyte[] name)
|
|
{
|
|
glBindFragDataLocationIndexed.Invoke(program, colorNumber, index, name);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLBLENDCOLORPROC(float red, float green, float blue, float alpha);
|
|
private PFNGLBLENDCOLORPROC glBlendColor;
|
|
|
|
public void BlendColor(float red, float green, float blue, float alpha)
|
|
{
|
|
glBlendColor.Invoke(red, green, blue, alpha);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLBLENDEQUATIONPROC(BlendEquationModeEXT mode);
|
|
private PFNGLBLENDEQUATIONPROC glBlendEquation;
|
|
|
|
public void BlendEquation(BlendEquationModeEXT mode)
|
|
{
|
|
glBlendEquation.Invoke(mode);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLGENQUERIESPROC(int n, out uint ids);
|
|
private PFNGLGENQUERIESPROC glGenQueries;
|
|
|
|
public void GenQueries(int n, out uint ids)
|
|
{
|
|
glGenQueries.Invoke(n, out ids);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLDELETEQUERIESPROC(int n, uint[] ids);
|
|
private PFNGLDELETEQUERIESPROC glDeleteQueries;
|
|
|
|
public void DeleteQueries(int n, uint[] ids)
|
|
{
|
|
glDeleteQueries.Invoke(n, ids);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate bool PFNGLISQUERYPROC(uint id);
|
|
private PFNGLISQUERYPROC glIsQuery;
|
|
|
|
public bool IsQuery(uint id)
|
|
{
|
|
return glIsQuery.Invoke(id);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLBEGINQUERYPROC(QueryTarget target, uint id);
|
|
private PFNGLBEGINQUERYPROC glBeginQuery;
|
|
|
|
public void BeginQuery(QueryTarget target, uint id)
|
|
{
|
|
glBeginQuery.Invoke(target, id);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLENDQUERYPROC(QueryTarget target);
|
|
private PFNGLENDQUERYPROC glEndQuery;
|
|
|
|
public void EndQuery(QueryTarget target)
|
|
{
|
|
glEndQuery.Invoke(target);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLGETQUERYIVPROC(QueryTarget target, QueryParameterName pname, out int parameters);
|
|
private PFNGLGETQUERYIVPROC glGetQueryiv;
|
|
|
|
public void GetQueryiv(QueryTarget target, QueryParameterName pname, out int parameters)
|
|
{
|
|
glGetQueryiv.Invoke(target, pname, out parameters);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLGETQUERYOBJECTIVPROC(uint id, QueryObjectParameterName pname, out int parameters);
|
|
private PFNGLGETQUERYOBJECTIVPROC glGetQueryObjectiv;
|
|
|
|
public void GetQueryObjectiv(uint id, QueryObjectParameterName pname, out int parameters)
|
|
{
|
|
glGetQueryObjectiv.Invoke(id, pname, out parameters);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLGETQUERYOBJECTUIVPROC(uint id, QueryObjectParameterName pname, out uint parameters);
|
|
private PFNGLGETQUERYOBJECTUIVPROC glGetQueryObjectuiv;
|
|
|
|
public void GetQueryObjectuiv(uint id, QueryObjectParameterName pname, out uint parameters)
|
|
{
|
|
glGetQueryObjectuiv.Invoke(id, pname, out parameters);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLBINDBUFFERPROC(BufferTargetARB target, uint buffer);
|
|
private PFNGLBINDBUFFERPROC glBindBuffer;
|
|
|
|
public void BindBuffer(BufferTargetARB target, uint buffer)
|
|
{
|
|
glBindBuffer.Invoke(target, buffer);
|
|
DetectGLError();
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLDELETEBUFFERSPROC(int n, uint[] buffers);
|
|
private PFNGLDELETEBUFFERSPROC glDeleteBuffers;
|
|
|
|
public void DeleteBuffers(int n, uint[] buffers)
|
|
{
|
|
glDeleteBuffers.Invoke(n, buffers);
|
|
DetectGLError();
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLGENBUFFERSPROC(int n, uint[] buffers);
|
|
private PFNGLGENBUFFERSPROC glGenBuffers;
|
|
|
|
public void GenBuffers(int n, uint[] buffers)
|
|
{
|
|
glGenBuffers.Invoke(n, buffers);
|
|
DetectGLError();
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate bool PFNGLISBUFFERPROC(uint buffer);
|
|
private PFNGLISBUFFERPROC glIsBuffer;
|
|
|
|
public bool IsBuffer(uint buffer)
|
|
{
|
|
return glIsBuffer.Invoke(buffer);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLBUFFERDATAPROC(BufferTargetARB target, uint size, IntPtr data, BufferUsageARB usage);
|
|
private PFNGLBUFFERDATAPROC glBufferData;
|
|
|
|
public void BufferData(BufferTargetARB target, uint size, IntPtr data, BufferUsageARB usage)
|
|
{
|
|
glBufferData.Invoke(target, size, data, usage);
|
|
DetectGLError();
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLBUFFERSUBDATAPROC(BufferTargetARB target, IntPtr offset, UIntPtr size, IntPtr data);
|
|
private PFNGLBUFFERSUBDATAPROC glBufferSubData;
|
|
|
|
public void BufferSubData(BufferTargetARB target, IntPtr offset, UIntPtr size, IntPtr data)
|
|
{
|
|
glBufferSubData.Invoke(target, offset, size, data);
|
|
DetectGLError();
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLGETBUFFERSUBDATAPROC(BufferTargetARB target, IntPtr offset, IntPtr size, out IntPtr data);
|
|
private PFNGLGETBUFFERSUBDATAPROC glGetBufferSubData;
|
|
|
|
public void GetBufferSubData(BufferTargetARB target, IntPtr offset, IntPtr size, out IntPtr data)
|
|
{
|
|
glGetBufferSubData.Invoke(target, offset, size, out data);
|
|
DetectGLError();
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate IntPtr PFNGLMAPBUFFERPROC(BufferTargetARB target, BufferAccessARB access);
|
|
private PFNGLMAPBUFFERPROC glMapBuffer;
|
|
|
|
public IntPtr MapBuffer(BufferTargetARB target, BufferAccessARB access)
|
|
{
|
|
return glMapBuffer.Invoke(target, access);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate bool PFNGLUNMAPBUFFERPROC(BufferTargetARB target);
|
|
private PFNGLUNMAPBUFFERPROC glUnmapBuffer;
|
|
|
|
public bool UnmapBuffer(BufferTargetARB target)
|
|
{
|
|
return glUnmapBuffer.Invoke(target);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLGETBUFFERPARAMETERIVPROC(BufferTargetARB target, int pname, out int parameters);
|
|
private PFNGLGETBUFFERPARAMETERIVPROC glGetBufferParameteriv;
|
|
|
|
public void GetBufferParameteriv(BufferTargetARB target, int pname, out int parameters)
|
|
{
|
|
glGetBufferParameteriv.Invoke(target, pname, out parameters);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLGETBUFFERPOINTERVPROC(BufferTargetARB target, int pname, out IntPtr parameters);
|
|
private PFNGLGETBUFFERPOINTERVPROC glGetBufferPointerv;
|
|
|
|
public void GetBufferPointerv(BufferTargetARB target, int pname, out IntPtr parameters)
|
|
{
|
|
glGetBufferPointerv.Invoke(target, pname, out parameters);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLBLENDEQUATIONSEPARATEPROC(BlendEquationModeEXT modeRGB, BlendEquationModeEXT modeAlpha);
|
|
private PFNGLBLENDEQUATIONSEPARATEPROC glBlendEquationSeparate;
|
|
|
|
public void BlendEquationSeparate(BlendEquationModeEXT modeRGB, BlendEquationModeEXT modeAlpha)
|
|
{
|
|
glBlendEquationSeparate.Invoke(modeRGB, modeAlpha);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLDRAWBUFFERSPROC(int n, int[] bufs);
|
|
private PFNGLDRAWBUFFERSPROC glDrawBuffers;
|
|
|
|
public void DrawBuffers(int n, int[] bufs)
|
|
{
|
|
glDrawBuffers.Invoke(n, bufs);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLSTENCILOPSEPARATEPROC(StencilFaceDirection face, StencilOp sfail, StencilOp dpfail, StencilOp dppass);
|
|
private PFNGLSTENCILOPSEPARATEPROC glStencilOpSeparate;
|
|
|
|
public void StencilOpSeparate(StencilFaceDirection face, StencilOp sfail, StencilOp dpfail, StencilOp dppass)
|
|
{
|
|
glStencilOpSeparate.Invoke(face, sfail, dpfail, dppass);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLSTENCILFUNCSEPARATEPROC(StencilFaceDirection face, StencilFunction func, int reference, uint mask);
|
|
private PFNGLSTENCILFUNCSEPARATEPROC glStencilFuncSeparate;
|
|
|
|
public void StencilFuncSeparate(StencilFaceDirection face, StencilFunction func, int reference, uint mask)
|
|
{
|
|
glStencilFuncSeparate.Invoke(face, func, reference, mask);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLSTENCILMASKSEPARATEPROC(StencilFaceDirection face, uint mask);
|
|
private PFNGLSTENCILMASKSEPARATEPROC glStencilMaskSeparate;
|
|
|
|
public void StencilMaskSeparate(StencilFaceDirection face, uint mask)
|
|
{
|
|
glStencilMaskSeparate.Invoke(face, mask);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLATTACHSHADERPROC(uint program, uint shader);
|
|
private PFNGLATTACHSHADERPROC glAttachShader;
|
|
|
|
public void AttachShader(uint program, uint shader)
|
|
{
|
|
glAttachShader.Invoke(program, shader);
|
|
DetectGLError();
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLBINDATTRIBLOCATIONPROC(uint program, uint index, sbyte[] name);
|
|
private PFNGLBINDATTRIBLOCATIONPROC glBindAttribLocation;
|
|
|
|
public void BindAttribLocation(uint program, uint index, sbyte[] name)
|
|
{
|
|
glBindAttribLocation.Invoke(program, index, name);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLCOMPILESHADERPROC(uint shader);
|
|
private PFNGLCOMPILESHADERPROC glCompileShader;
|
|
|
|
public void CompileShader(uint shader)
|
|
{
|
|
glCompileShader.Invoke(shader);
|
|
DetectGLError();
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate uint PFNGLCREATEPROGRAMPROC();
|
|
private PFNGLCREATEPROGRAMPROC glCreateProgram;
|
|
|
|
public uint CreateProgram()
|
|
{
|
|
uint handle = glCreateProgram.Invoke();
|
|
DetectGLError();
|
|
return handle;
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate uint PFNGLCREATESHADERPROC(ShaderType type);
|
|
private PFNGLCREATESHADERPROC glCreateShader;
|
|
|
|
public uint CreateShader(ShaderType type)
|
|
{
|
|
uint handle = glCreateShader.Invoke(type);
|
|
DetectGLError();
|
|
return handle;
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLDELETEPROGRAMPROC(uint program);
|
|
private PFNGLDELETEPROGRAMPROC glDeleteProgram;
|
|
|
|
public void DeleteProgram(uint program)
|
|
{
|
|
glDeleteProgram.Invoke(program);
|
|
DetectGLError();
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLDELETESHADERPROC(uint shader);
|
|
private PFNGLDELETESHADERPROC glDeleteShader;
|
|
|
|
public void DeleteShader(uint shader)
|
|
{
|
|
glDeleteShader.Invoke(shader);
|
|
DetectGLError();
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLDETACHSHADERPROC(uint program, uint shader);
|
|
private PFNGLDETACHSHADERPROC glDetachShader;
|
|
|
|
public void DetachShader(uint program, uint shader)
|
|
{
|
|
glDetachShader.Invoke(program, shader);
|
|
DetectGLError();
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLDISABLEVERTEXATTRIBARRAYPROC(uint index);
|
|
private PFNGLDISABLEVERTEXATTRIBARRAYPROC glDisableVertexAttribArray;
|
|
|
|
public void DisableVertexAttribArray(uint index)
|
|
{
|
|
glDisableVertexAttribArray.Invoke(index);
|
|
DetectGLError();
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLENABLEVERTEXATTRIBARRAYPROC(uint index);
|
|
private PFNGLENABLEVERTEXATTRIBARRAYPROC glEnableVertexAttribArray;
|
|
|
|
public void EnableVertexAttribArray(uint index)
|
|
{
|
|
glEnableVertexAttribArray.Invoke(index);
|
|
DetectGLError();
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLGETACTIVEATTRIBPROC(uint program, uint index, int bufSize, out int length, out int size, out AttributeType type, out sbyte name);
|
|
private PFNGLGETACTIVEATTRIBPROC glGetActiveAttrib;
|
|
|
|
public void GetActiveAttrib(uint program, uint index, int bufSize, out int length, out int size, out AttributeType type, out sbyte name)
|
|
{
|
|
glGetActiveAttrib.Invoke(program, index, bufSize, out length, out size, out type, out name);
|
|
DetectGLError();
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLGETACTIVEUNIFORMPROC(uint program, uint index, int bufSize, out int length, out int size, out AttributeType type, out sbyte name);
|
|
private PFNGLGETACTIVEUNIFORMPROC glGetActiveUniform;
|
|
|
|
public void GetActiveUniform(uint program, uint index, int bufSize, out int length, out int size, out AttributeType type, out sbyte name)
|
|
{
|
|
glGetActiveUniform.Invoke(program, index, bufSize, out length, out size, out type, out name);
|
|
DetectGLError();
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLGETATTACHEDSHADERSPROC(uint program, int maxCount, out int count, out uint shaders);
|
|
private PFNGLGETATTACHEDSHADERSPROC glGetAttachedShaders;
|
|
|
|
public void GetAttachedShaders(uint program, int maxCount, out int count, out uint shaders)
|
|
{
|
|
glGetAttachedShaders.Invoke(program, maxCount, out count, out shaders);
|
|
DetectGLError();
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate int PFNGLGETATTRIBLOCATIONPROC(uint program, string name);
|
|
private PFNGLGETATTRIBLOCATIONPROC glGetAttribLocation;
|
|
|
|
public int GetAttribLocation(uint program, string name)
|
|
{
|
|
int loc = glGetAttribLocation.Invoke(program, name);
|
|
DetectGLError();
|
|
return loc;
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLGETPROGRAMIVPROC(uint program, ProgramPropertyARB pname, out int parameters);
|
|
private PFNGLGETPROGRAMIVPROC glGetProgramiv;
|
|
|
|
public void GetProgramiv(uint program, ProgramPropertyARB pname, out int parameters)
|
|
{
|
|
glGetProgramiv.Invoke(program, pname, out parameters);
|
|
DetectGLError();
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLGETPROGRAMINFOLOGPROC(uint program, int bufSize, out int length, byte[] infoLog);
|
|
private PFNGLGETPROGRAMINFOLOGPROC glGetProgramInfoLog;
|
|
|
|
public void GetProgramInfoLog(uint program, int bufSize, out int length, byte[] infoLog)
|
|
{
|
|
glGetProgramInfoLog.Invoke(program, bufSize, out length, infoLog);
|
|
DetectGLError();
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLGETSHADERIVPROC(uint shader, ShaderParameterName pname, out int parameters);
|
|
private PFNGLGETSHADERIVPROC glGetShaderiv;
|
|
|
|
public void GetShaderiv(uint shader, ShaderParameterName pname, out int parameters)
|
|
{
|
|
glGetShaderiv.Invoke(shader, pname, out parameters);
|
|
DetectGLError();
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLGETSHADERINFOLOGPROC(uint shader, int bufSize, out int length, byte[] infoLog);
|
|
private PFNGLGETSHADERINFOLOGPROC glGetShaderInfoLog;
|
|
|
|
public void GetShaderInfoLog(uint shader, int bufSize, out int length, byte[] infoLog)
|
|
{
|
|
glGetShaderInfoLog.Invoke(shader, bufSize, out length, infoLog);
|
|
DetectGLError();
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLGETSHADERSOURCEPROC(uint shader, int bufSize, out int length, out sbyte source);
|
|
private PFNGLGETSHADERSOURCEPROC glGetShaderSource;
|
|
|
|
public void GetShaderSource(uint shader, int bufSize, out int length, out sbyte source)
|
|
{
|
|
glGetShaderSource.Invoke(shader, bufSize, out length, out source);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate int PFNGLGETUNIFORMLOCATIONPROC(uint program, string name);
|
|
private PFNGLGETUNIFORMLOCATIONPROC glGetUniformLocation;
|
|
|
|
public int GetUniformLocation(uint program, string name)
|
|
{
|
|
int loc = glGetUniformLocation.Invoke(program, name);
|
|
DetectGLError();
|
|
return loc;
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLGETUNIFORMFVPROC(uint program, int location, out float parameters);
|
|
private PFNGLGETUNIFORMFVPROC glGetUniformfv;
|
|
|
|
public void GetUniformfv(uint program, int location, out float parameters)
|
|
{
|
|
glGetUniformfv.Invoke(program, location, out parameters);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLGETUNIFORMIVPROC(uint program, int location, out int parameters);
|
|
private PFNGLGETUNIFORMIVPROC glGetUniformiv;
|
|
|
|
public void GetUniformiv(uint program, int location, out int parameters)
|
|
{
|
|
glGetUniformiv.Invoke(program, location, out parameters);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLGETVERTEXATTRIBDVPROC(uint index, int pname, out double parameters);
|
|
private PFNGLGETVERTEXATTRIBDVPROC glGetVertexAttribdv;
|
|
|
|
public void GetVertexAttribdv(uint index, int pname, out double parameters)
|
|
{
|
|
glGetVertexAttribdv.Invoke(index, pname, out parameters);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLGETVERTEXATTRIBFVPROC(uint index, int pname, out float parameters);
|
|
private PFNGLGETVERTEXATTRIBFVPROC glGetVertexAttribfv;
|
|
|
|
public void GetVertexAttribfv(uint index, int pname, out float parameters)
|
|
{
|
|
glGetVertexAttribfv.Invoke(index, pname, out parameters);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLGETVERTEXATTRIBIVPROC(uint index, int pname, out int parameters);
|
|
private PFNGLGETVERTEXATTRIBIVPROC glGetVertexAttribiv;
|
|
|
|
public void GetVertexAttribiv(uint index, int pname, out int parameters)
|
|
{
|
|
glGetVertexAttribiv.Invoke(index, pname, out parameters);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLGETVERTEXATTRIBPOINTERVPROC(uint index, int pname, out IntPtr pointer);
|
|
private PFNGLGETVERTEXATTRIBPOINTERVPROC glGetVertexAttribPointerv;
|
|
|
|
public void GetVertexAttribPointerv(uint index, int pname, out IntPtr pointer)
|
|
{
|
|
glGetVertexAttribPointerv.Invoke(index, pname, out pointer);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate bool PFNGLISPROGRAMPROC(uint program);
|
|
private PFNGLISPROGRAMPROC glIsProgram;
|
|
|
|
public bool IsProgram(uint program)
|
|
{
|
|
return glIsProgram.Invoke(program);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate bool PFNGLISSHADERPROC(uint shader);
|
|
private PFNGLISSHADERPROC glIsShader;
|
|
|
|
public bool IsShader(uint shader)
|
|
{
|
|
return glIsShader.Invoke(shader);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLLINKPROGRAMPROC(uint program);
|
|
private PFNGLLINKPROGRAMPROC glLinkProgram;
|
|
|
|
public void LinkProgram(uint program)
|
|
{
|
|
glLinkProgram.Invoke(program);
|
|
DetectGLError();
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLSHADERSOURCEPROC(uint shader, int count, string[] str, int[] length);
|
|
private PFNGLSHADERSOURCEPROC glShaderSource;
|
|
|
|
public void ShaderSource(uint shader, int count, string[] str, int[] length)
|
|
{
|
|
glShaderSource.Invoke(shader, count, str, length);
|
|
DetectGLError();
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLUSEPROGRAMPROC(uint program);
|
|
private PFNGLUSEPROGRAMPROC glUseProgram;
|
|
|
|
public void UseProgram(uint program)
|
|
{
|
|
glUseProgram.Invoke(program);
|
|
DetectGLError();
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLUNIFORM1FPROC(int location, float v0);
|
|
private PFNGLUNIFORM1FPROC glUniform1f;
|
|
|
|
public void Uniform1f(int location, float v0)
|
|
{
|
|
glUniform1f.Invoke(location, v0);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLUNIFORM2FPROC(int location, float v0, float v1);
|
|
private PFNGLUNIFORM2FPROC glUniform2f;
|
|
|
|
public void Uniform2f(int location, float v0, float v1)
|
|
{
|
|
glUniform2f.Invoke(location, v0, v1);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLUNIFORM3FPROC(int location, float v0, float v1, float v2);
|
|
private PFNGLUNIFORM3FPROC glUniform3f;
|
|
|
|
public void Uniform3f(int location, float v0, float v1, float v2)
|
|
{
|
|
glUniform3f.Invoke(location, v0, v1, v2);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLUNIFORM4FPROC(int location, float v0, float v1, float v2, float v3);
|
|
private PFNGLUNIFORM4FPROC glUniform4f;
|
|
|
|
public void Uniform4f(int location, float v0, float v1, float v2, float v3)
|
|
{
|
|
glUniform4f.Invoke(location, v0, v1, v2, v3);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLUNIFORM1IPROC(int location, int v0);
|
|
private PFNGLUNIFORM1IPROC glUniform1i;
|
|
|
|
public void Uniform1i(int location, int v0)
|
|
{
|
|
glUniform1i.Invoke(location, v0);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLUNIFORM2IPROC(int location, int v0, int v1);
|
|
private PFNGLUNIFORM2IPROC glUniform2i;
|
|
|
|
public void Uniform2i(int location, int v0, int v1)
|
|
{
|
|
glUniform2i.Invoke(location, v0, v1);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLUNIFORM3IPROC(int location, int v0, int v1, int v2);
|
|
private PFNGLUNIFORM3IPROC glUniform3i;
|
|
|
|
public void Uniform3i(int location, int v0, int v1, int v2)
|
|
{
|
|
glUniform3i.Invoke(location, v0, v1, v2);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLUNIFORM4IPROC(int location, int v0, int v1, int v2, int v3);
|
|
private PFNGLUNIFORM4IPROC glUniform4i;
|
|
|
|
public void Uniform4i(int location, int v0, int v1, int v2, int v3)
|
|
{
|
|
glUniform4i.Invoke(location, v0, v1, v2, v3);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLUNIFORM1FVPROC(int location, int count, float[] value);
|
|
private PFNGLUNIFORM1FVPROC glUniform1fv;
|
|
|
|
public void Uniform1fv(int location, int count, float[] value)
|
|
{
|
|
glUniform1fv.Invoke(location, count, value);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLUNIFORM2FVPROC(int location, int count, float[] value);
|
|
private PFNGLUNIFORM2FVPROC glUniform2fv;
|
|
|
|
public void Uniform2fv(int location, int count, float[] value)
|
|
{
|
|
glUniform2fv.Invoke(location, count, value);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLUNIFORM3FVPROC(int location, int count, float[] value);
|
|
private PFNGLUNIFORM3FVPROC glUniform3fv;
|
|
|
|
public void Uniform3fv(int location, int count, float[] value)
|
|
{
|
|
glUniform3fv.Invoke(location, count, value);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLUNIFORM4FVPROC(int location, int count, float[] value);
|
|
private PFNGLUNIFORM4FVPROC glUniform4fv;
|
|
|
|
public void Uniform4fv(int location, int count, float[] value)
|
|
{
|
|
glUniform4fv.Invoke(location, count, value);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLUNIFORM1IVPROC(int location, int count, int[] value);
|
|
private PFNGLUNIFORM1IVPROC glUniform1iv;
|
|
|
|
public void Uniform1iv(int location, int count, int[] value)
|
|
{
|
|
glUniform1iv.Invoke(location, count, value);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLUNIFORM2IVPROC(int location, int count, int[] value);
|
|
private PFNGLUNIFORM2IVPROC glUniform2iv;
|
|
|
|
public void Uniform2iv(int location, int count, int[] value)
|
|
{
|
|
glUniform2iv.Invoke(location, count, value);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLUNIFORM3IVPROC(int location, int count, int[] value);
|
|
private PFNGLUNIFORM3IVPROC glUniform3iv;
|
|
|
|
public void Uniform3iv(int location, int count, int[] value)
|
|
{
|
|
glUniform3iv.Invoke(location, count, value);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLUNIFORM4IVPROC(int location, int count, int[] value);
|
|
private PFNGLUNIFORM4IVPROC glUniform4iv;
|
|
|
|
public void Uniform4iv(int location, int count, int[] value)
|
|
{
|
|
glUniform4iv.Invoke(location, count, value);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLUNIFORMMATRIX2FVPROC(int location, int count, bool transpose, float[] value);
|
|
private PFNGLUNIFORMMATRIX2FVPROC glUniformMatrix2fv;
|
|
|
|
public void UniformMatrix2fv(int location, int count, bool transpose, float[] value)
|
|
{
|
|
glUniformMatrix2fv.Invoke(location, count, transpose, value);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLUNIFORMMATRIX3FVPROC(int location, int count, bool transpose, float[] value);
|
|
private PFNGLUNIFORMMATRIX3FVPROC glUniformMatrix3fv;
|
|
|
|
public void UniformMatrix3fv(int location, int count, bool transpose, float[] value)
|
|
{
|
|
glUniformMatrix3fv.Invoke(location, count, transpose, value);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLUNIFORMMATRIX4FVPROC(int location, int count, bool transpose, float[] value);
|
|
private PFNGLUNIFORMMATRIX4FVPROC glUniformMatrix4fv;
|
|
|
|
public void UniformMatrix4fv(int location, int count, bool transpose, float[] value)
|
|
{
|
|
glUniformMatrix4fv.Invoke(location, count, transpose, value);
|
|
DetectGLError();
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLVALIDATEPROGRAMPROC(uint program);
|
|
private PFNGLVALIDATEPROGRAMPROC glValidateProgram;
|
|
|
|
public void ValidateProgram(uint program)
|
|
{
|
|
glValidateProgram.Invoke(program);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLVERTEXATTRIB1DPROC(uint index, double x);
|
|
private PFNGLVERTEXATTRIB1DPROC glVertexAttrib1d;
|
|
|
|
public void VertexAttrib1d(uint index, double x)
|
|
{
|
|
glVertexAttrib1d.Invoke(index, x);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLVERTEXATTRIB1DVPROC(uint index, double[] v);
|
|
private PFNGLVERTEXATTRIB1DVPROC glVertexAttrib1dv;
|
|
|
|
public void VertexAttrib1dv(uint index, double[] v)
|
|
{
|
|
glVertexAttrib1dv.Invoke(index, v);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLVERTEXATTRIB1FPROC(uint index, float x);
|
|
private PFNGLVERTEXATTRIB1FPROC glVertexAttrib1f;
|
|
|
|
public void VertexAttrib1f(uint index, float x)
|
|
{
|
|
glVertexAttrib1f.Invoke(index, x);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLVERTEXATTRIB1FVPROC(uint index, float[] v);
|
|
private PFNGLVERTEXATTRIB1FVPROC glVertexAttrib1fv;
|
|
|
|
public void VertexAttrib1fv(uint index, float[] v)
|
|
{
|
|
glVertexAttrib1fv.Invoke(index, v);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLVERTEXATTRIB1SPROC(uint index, short x);
|
|
private PFNGLVERTEXATTRIB1SPROC glVertexAttrib1s;
|
|
|
|
public void VertexAttrib1s(uint index, short x)
|
|
{
|
|
glVertexAttrib1s.Invoke(index, x);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLVERTEXATTRIB1SVPROC(uint index, short[] v);
|
|
private PFNGLVERTEXATTRIB1SVPROC glVertexAttrib1sv;
|
|
|
|
public void VertexAttrib1sv(uint index, short[] v)
|
|
{
|
|
glVertexAttrib1sv.Invoke(index, v);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLVERTEXATTRIB2DPROC(uint index, double x, double y);
|
|
private PFNGLVERTEXATTRIB2DPROC glVertexAttrib2d;
|
|
|
|
public void VertexAttrib2d(uint index, double x, double y)
|
|
{
|
|
glVertexAttrib2d.Invoke(index, x, y);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLVERTEXATTRIB2DVPROC(uint index, double[] v);
|
|
private PFNGLVERTEXATTRIB2DVPROC glVertexAttrib2dv;
|
|
|
|
public void VertexAttrib2dv(uint index, double[] v)
|
|
{
|
|
glVertexAttrib2dv.Invoke(index, v);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLVERTEXATTRIB2FPROC(uint index, float x, float y);
|
|
private PFNGLVERTEXATTRIB2FPROC glVertexAttrib2f;
|
|
|
|
public void VertexAttrib2f(uint index, float x, float y)
|
|
{
|
|
glVertexAttrib2f.Invoke(index, x, y);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLVERTEXATTRIB2FVPROC(uint index, float[] v);
|
|
private PFNGLVERTEXATTRIB2FVPROC glVertexAttrib2fv;
|
|
|
|
public void VertexAttrib2fv(uint index, float[] v)
|
|
{
|
|
glVertexAttrib2fv.Invoke(index, v);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLVERTEXATTRIB2SPROC(uint index, short x, short y);
|
|
private PFNGLVERTEXATTRIB2SPROC glVertexAttrib2s;
|
|
|
|
public void VertexAttrib2s(uint index, short x, short y)
|
|
{
|
|
glVertexAttrib2s.Invoke(index, x, y);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLVERTEXATTRIB2SVPROC(uint index, short[] v);
|
|
private PFNGLVERTEXATTRIB2SVPROC glVertexAttrib2sv;
|
|
|
|
public void VertexAttrib2sv(uint index, short[] v)
|
|
{
|
|
glVertexAttrib2sv.Invoke(index, v);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLVERTEXATTRIB3DPROC(uint index, double x, double y, double z);
|
|
private PFNGLVERTEXATTRIB3DPROC glVertexAttrib3d;
|
|
|
|
public void VertexAttrib3d(uint index, double x, double y, double z)
|
|
{
|
|
glVertexAttrib3d.Invoke(index, x, y, z);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLVERTEXATTRIB3DVPROC(uint index, double[] v);
|
|
private PFNGLVERTEXATTRIB3DVPROC glVertexAttrib3dv;
|
|
|
|
public void VertexAttrib3dv(uint index, double[] v)
|
|
{
|
|
glVertexAttrib3dv.Invoke(index, v);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLVERTEXATTRIB3FPROC(uint index, float x, float y, float z);
|
|
private PFNGLVERTEXATTRIB3FPROC glVertexAttrib3f;
|
|
|
|
public void VertexAttrib3f(uint index, float x, float y, float z)
|
|
{
|
|
glVertexAttrib3f.Invoke(index, x, y, z);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLVERTEXATTRIB3FVPROC(uint index, float[] v);
|
|
private PFNGLVERTEXATTRIB3FVPROC glVertexAttrib3fv;
|
|
|
|
public void VertexAttrib3fv(uint index, float[] v)
|
|
{
|
|
glVertexAttrib3fv.Invoke(index, v);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLVERTEXATTRIB3SPROC(uint index, short x, short y, short z);
|
|
private PFNGLVERTEXATTRIB3SPROC glVertexAttrib3s;
|
|
|
|
public void VertexAttrib3s(uint index, short x, short y, short z)
|
|
{
|
|
glVertexAttrib3s.Invoke(index, x, y, z);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLVERTEXATTRIB3SVPROC(uint index, short[] v);
|
|
private PFNGLVERTEXATTRIB3SVPROC glVertexAttrib3sv;
|
|
|
|
public void VertexAttrib3sv(uint index, short[] v)
|
|
{
|
|
glVertexAttrib3sv.Invoke(index, v);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLVERTEXATTRIB4NBVPROC(uint index, sbyte[] v);
|
|
private PFNGLVERTEXATTRIB4NBVPROC glVertexAttrib4Nbv;
|
|
|
|
public void VertexAttrib4Nbv(uint index, sbyte[] v)
|
|
{
|
|
glVertexAttrib4Nbv.Invoke(index, v);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLVERTEXATTRIB4NIVPROC(uint index, int[] v);
|
|
private PFNGLVERTEXATTRIB4NIVPROC glVertexAttrib4Niv;
|
|
|
|
public void VertexAttrib4Niv(uint index, int[] v)
|
|
{
|
|
glVertexAttrib4Niv.Invoke(index, v);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLVERTEXATTRIB4NSVPROC(uint index, short[] v);
|
|
private PFNGLVERTEXATTRIB4NSVPROC glVertexAttrib4Nsv;
|
|
|
|
public void VertexAttrib4Nsv(uint index, short[] v)
|
|
{
|
|
glVertexAttrib4Nsv.Invoke(index, v);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLVERTEXATTRIB4NUBPROC(uint index, byte x, byte y, byte z, byte w);
|
|
private PFNGLVERTEXATTRIB4NUBPROC glVertexAttrib4Nub;
|
|
|
|
public void VertexAttrib4Nub(uint index, byte x, byte y, byte z, byte w)
|
|
{
|
|
glVertexAttrib4Nub.Invoke(index, x, y, z, w);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLVERTEXATTRIB4NUBVPROC(uint index, byte[] v);
|
|
private PFNGLVERTEXATTRIB4NUBVPROC glVertexAttrib4Nubv;
|
|
|
|
public void VertexAttrib4Nubv(uint index, byte[] v)
|
|
{
|
|
glVertexAttrib4Nubv.Invoke(index, v);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLVERTEXATTRIB4NUIVPROC(uint index, uint[] v);
|
|
private PFNGLVERTEXATTRIB4NUIVPROC glVertexAttrib4Nuiv;
|
|
|
|
public void VertexAttrib4Nuiv(uint index, uint[] v)
|
|
{
|
|
glVertexAttrib4Nuiv.Invoke(index, v);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLVERTEXATTRIB4NUSVPROC(uint index, ushort[] v);
|
|
private PFNGLVERTEXATTRIB4NUSVPROC glVertexAttrib4Nusv;
|
|
|
|
public void VertexAttrib4Nusv(uint index, ushort[] v)
|
|
{
|
|
glVertexAttrib4Nusv.Invoke(index, v);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLVERTEXATTRIB4BVPROC(uint index, sbyte[] v);
|
|
private PFNGLVERTEXATTRIB4BVPROC glVertexAttrib4bv;
|
|
|
|
public void VertexAttrib4bv(uint index, sbyte[] v)
|
|
{
|
|
glVertexAttrib4bv.Invoke(index, v);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLVERTEXATTRIB4DPROC(uint index, double x, double y, double z, double w);
|
|
private PFNGLVERTEXATTRIB4DPROC glVertexAttrib4d;
|
|
|
|
public void VertexAttrib4d(uint index, double x, double y, double z, double w)
|
|
{
|
|
glVertexAttrib4d.Invoke(index, x, y, z, w);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLVERTEXATTRIB4DVPROC(uint index, double[] v);
|
|
private PFNGLVERTEXATTRIB4DVPROC glVertexAttrib4dv;
|
|
|
|
public void VertexAttrib4dv(uint index, double[] v)
|
|
{
|
|
glVertexAttrib4dv.Invoke(index, v);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLVERTEXATTRIB4FPROC(uint index, float x, float y, float z, float w);
|
|
private PFNGLVERTEXATTRIB4FPROC glVertexAttrib4f;
|
|
|
|
public void VertexAttrib4f(uint index, float x, float y, float z, float w)
|
|
{
|
|
glVertexAttrib4f.Invoke(index, x, y, z, w);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLVERTEXATTRIB4FVPROC(uint index, float[] v);
|
|
private PFNGLVERTEXATTRIB4FVPROC glVertexAttrib4fv;
|
|
|
|
public void VertexAttrib4fv(uint index, float[] v)
|
|
{
|
|
glVertexAttrib4fv.Invoke(index, v);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLVERTEXATTRIB4IVPROC(uint index, int[] v);
|
|
private PFNGLVERTEXATTRIB4IVPROC glVertexAttrib4iv;
|
|
|
|
public void VertexAttrib4iv(uint index, int[] v)
|
|
{
|
|
glVertexAttrib4iv.Invoke(index, v);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLVERTEXATTRIB4SPROC(uint index, short x, short y, short z, short w);
|
|
private PFNGLVERTEXATTRIB4SPROC glVertexAttrib4s;
|
|
|
|
public void VertexAttrib4s(uint index, short x, short y, short z, short w)
|
|
{
|
|
glVertexAttrib4s.Invoke(index, x, y, z, w);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLVERTEXATTRIB4SVPROC(uint index, short[] v);
|
|
private PFNGLVERTEXATTRIB4SVPROC glVertexAttrib4sv;
|
|
|
|
public void VertexAttrib4sv(uint index, short[] v)
|
|
{
|
|
glVertexAttrib4sv.Invoke(index, v);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLVERTEXATTRIB4UBVPROC(uint index, byte[] v);
|
|
private PFNGLVERTEXATTRIB4UBVPROC glVertexAttrib4ubv;
|
|
|
|
public void VertexAttrib4ubv(uint index, byte[] v)
|
|
{
|
|
glVertexAttrib4ubv.Invoke(index, v);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLVERTEXATTRIB4UIVPROC(uint index, uint[] v);
|
|
private PFNGLVERTEXATTRIB4UIVPROC glVertexAttrib4uiv;
|
|
|
|
public void VertexAttrib4uiv(uint index, uint[] v)
|
|
{
|
|
glVertexAttrib4uiv.Invoke(index, v);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLVERTEXATTRIB4USVPROC(uint index, ushort[] v);
|
|
private PFNGLVERTEXATTRIB4USVPROC glVertexAttrib4usv;
|
|
|
|
public void VertexAttrib4usv(uint index, ushort[] v)
|
|
{
|
|
glVertexAttrib4usv.Invoke(index, v);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLVERTEXATTRIBPOINTERPROC(uint index, int size, VertexAttribPointerType type, bool normalized, uint stride, IntPtr pointer);
|
|
private PFNGLVERTEXATTRIBPOINTERPROC glVertexAttribPointer;
|
|
|
|
public void VertexAttribPointer(uint index, int size, VertexAttribPointerType type, bool normalized, uint stride, IntPtr pointer)
|
|
{
|
|
glVertexAttribPointer.Invoke(index, size, type, normalized, stride, pointer);
|
|
DetectGLError();
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLUNIFORMMATRIX2X3FVPROC(int location, int count, bool transpose, float[] value);
|
|
private PFNGLUNIFORMMATRIX2X3FVPROC glUniformMatrix2x3fv;
|
|
|
|
public void UniformMatrix2x3fv(int location, int count, bool transpose, float[] value)
|
|
{
|
|
glUniformMatrix2x3fv.Invoke(location, count, transpose, value);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLUNIFORMMATRIX3X2FVPROC(int location, int count, bool transpose, float[] value);
|
|
private PFNGLUNIFORMMATRIX3X2FVPROC glUniformMatrix3x2fv;
|
|
|
|
public void UniformMatrix3x2fv(int location, int count, bool transpose, float[] value)
|
|
{
|
|
glUniformMatrix3x2fv.Invoke(location, count, transpose, value);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLUNIFORMMATRIX2X4FVPROC(int location, int count, bool transpose, float[] value);
|
|
private PFNGLUNIFORMMATRIX2X4FVPROC glUniformMatrix2x4fv;
|
|
|
|
public void UniformMatrix2x4fv(int location, int count, bool transpose, float[] value)
|
|
{
|
|
glUniformMatrix2x4fv.Invoke(location, count, transpose, value);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLUNIFORMMATRIX4X2FVPROC(int location, int count, bool transpose, float[] value);
|
|
private PFNGLUNIFORMMATRIX4X2FVPROC glUniformMatrix4x2fv;
|
|
|
|
public void UniformMatrix4x2fv(int location, int count, bool transpose, float[] value)
|
|
{
|
|
glUniformMatrix4x2fv.Invoke(location, count, transpose, value);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLUNIFORMMATRIX3X4FVPROC(int location, int count, bool transpose, float[] value);
|
|
private PFNGLUNIFORMMATRIX3X4FVPROC glUniformMatrix3x4fv;
|
|
|
|
public void UniformMatrix3x4fv(int location, int count, bool transpose, float[] value)
|
|
{
|
|
glUniformMatrix3x4fv.Invoke(location, count, transpose, value);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLUNIFORMMATRIX4X3FVPROC(int location, int count, bool transpose, float[] value);
|
|
private PFNGLUNIFORMMATRIX4X3FVPROC glUniformMatrix4x3fv;
|
|
|
|
public void UniformMatrix4x3fv(int location, int count, bool transpose, float[] value)
|
|
{
|
|
glUniformMatrix4x3fv.Invoke(location, count, transpose, value);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLCOLORMASKIPROC(uint index, bool r, bool g, bool b, bool a);
|
|
private PFNGLCOLORMASKIPROC glColorMaski;
|
|
|
|
public void ColorMaski(uint index, bool r, bool g, bool b, bool a)
|
|
{
|
|
glColorMaski.Invoke(index, r, g, b, a);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLGETBOOLEANI_VPROC(BufferTargetARB target, uint index, out bool data);
|
|
private PFNGLGETBOOLEANI_VPROC glGetBooleani_v;
|
|
|
|
public void GetBooleani_v(BufferTargetARB target, uint index, out bool data)
|
|
{
|
|
glGetBooleani_v.Invoke(target, index, out data);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLGETINTEGERI_VPROC(TypeEnum target, uint index, out int data);
|
|
private PFNGLGETINTEGERI_VPROC glGetIntegeri_v;
|
|
|
|
public void GetIntegeri_v(TypeEnum target, uint index, out int data)
|
|
{
|
|
glGetIntegeri_v.Invoke(target, index, out data);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLENABLEIPROC(EnableCap target, uint index);
|
|
private PFNGLENABLEIPROC glEnablei;
|
|
|
|
public void Enablei(EnableCap target, uint index)
|
|
{
|
|
glEnablei.Invoke(target, index);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLDISABLEIPROC(EnableCap target, uint index);
|
|
private PFNGLDISABLEIPROC glDisablei;
|
|
|
|
public void Disablei(EnableCap target, uint index)
|
|
{
|
|
glDisablei.Invoke(target, index);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate bool PFNGLISENABLEDIPROC(EnableCap target, uint index);
|
|
private PFNGLISENABLEDIPROC glIsEnabledi;
|
|
|
|
public bool IsEnabledi(EnableCap target, uint index)
|
|
{
|
|
return glIsEnabledi.Invoke(target, index);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLBEGINTRANSFORMFEEDBACKPROC(PrimitiveType primitiveMode);
|
|
private PFNGLBEGINTRANSFORMFEEDBACKPROC glBeginTransformFeedback;
|
|
|
|
public void BeginTransformFeedback(PrimitiveType primitiveMode)
|
|
{
|
|
glBeginTransformFeedback.Invoke(primitiveMode);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLENDTRANSFORMFEEDBACKPROC();
|
|
private PFNGLENDTRANSFORMFEEDBACKPROC glEndTransformFeedback;
|
|
|
|
public void EndTransformFeedback()
|
|
{
|
|
glEndTransformFeedback.Invoke();
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLBINDBUFFERRANGEPROC(BufferTargetARB target, uint index, uint buffer, IntPtr offset, IntPtr size);
|
|
private PFNGLBINDBUFFERRANGEPROC glBindBufferRange;
|
|
|
|
public void BindBufferRange(BufferTargetARB target, uint index, uint buffer, IntPtr offset, IntPtr size)
|
|
{
|
|
glBindBufferRange.Invoke(target, index, buffer, offset, size);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLBINDBUFFERBASEPROC(BufferTargetARB target, uint index, uint buffer);
|
|
private PFNGLBINDBUFFERBASEPROC glBindBufferBase;
|
|
|
|
public void BindBufferBase(BufferTargetARB target, uint index, uint buffer)
|
|
{
|
|
glBindBufferBase.Invoke(target, index, buffer);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLTRANSFORMFEEDBACKVARYINGSPROC(uint program, int count, sbyte varyings, int bufferMode);
|
|
private PFNGLTRANSFORMFEEDBACKVARYINGSPROC glTransformFeedbackVaryings;
|
|
|
|
public void TransformFeedbackVaryings(uint program, int count, sbyte varyings, int bufferMode)
|
|
{
|
|
glTransformFeedbackVaryings.Invoke(program, count, varyings, bufferMode);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLGETTRANSFORMFEEDBACKVARYINGPROC(uint program, uint index, int bufSize, out int length, out int size, out int type, out sbyte name);
|
|
private PFNGLGETTRANSFORMFEEDBACKVARYINGPROC glGetTransformFeedbackVarying;
|
|
|
|
public void GetTransformFeedbackVarying(uint program, uint index, int bufSize, out int length, out int size, out int type, out sbyte name)
|
|
{
|
|
glGetTransformFeedbackVarying.Invoke(program, index, bufSize, out length, out size, out type, out name);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLCLAMPCOLORPROC(int target, int clamp);
|
|
private PFNGLCLAMPCOLORPROC glClampColor;
|
|
|
|
public void ClampColor(int target, int clamp)
|
|
{
|
|
glClampColor.Invoke(target, clamp);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLBEGINCONDITIONALRENDERPROC(uint id, TypeEnum mode);
|
|
private PFNGLBEGINCONDITIONALRENDERPROC glBeginConditionalRender;
|
|
|
|
public void BeginConditionalRender(uint id, TypeEnum mode)
|
|
{
|
|
glBeginConditionalRender.Invoke(id, mode);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLENDCONDITIONALRENDERPROC();
|
|
private PFNGLENDCONDITIONALRENDERPROC glEndConditionalRender;
|
|
|
|
public void EndConditionalRender()
|
|
{
|
|
glEndConditionalRender.Invoke();
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLVERTEXATTRIBIPOINTERPROC(uint index, int size, VertexAttribPointerType type, int stride, IntPtr pointer);
|
|
private PFNGLVERTEXATTRIBIPOINTERPROC glVertexAttribIPointer;
|
|
|
|
public void VertexAttribIPointer(uint index, int size, VertexAttribPointerType type, int stride, IntPtr pointer)
|
|
{
|
|
glVertexAttribIPointer.Invoke(index, size, type, stride, pointer);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLGETVERTEXATTRIBIIVPROC(uint index, VertexAttribEnum pname, out int parameters);
|
|
private PFNGLGETVERTEXATTRIBIIVPROC glGetVertexAttribIiv;
|
|
|
|
public void GetVertexAttribIiv(uint index, VertexAttribEnum pname, out int parameters)
|
|
{
|
|
glGetVertexAttribIiv.Invoke(index, pname, out parameters);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLGETVERTEXATTRIBIUIVPROC(uint index, VertexAttribEnum pname, out uint parameters);
|
|
private PFNGLGETVERTEXATTRIBIUIVPROC glGetVertexAttribIuiv;
|
|
|
|
public void GetVertexAttribIuiv(uint index, VertexAttribEnum pname, out uint parameters)
|
|
{
|
|
glGetVertexAttribIuiv.Invoke(index, pname, out parameters);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLVERTEXATTRIBI1IPROC(uint index, int x);
|
|
private PFNGLVERTEXATTRIBI1IPROC glVertexAttribI1i;
|
|
|
|
public void VertexAttribI1i(uint index, int x)
|
|
{
|
|
glVertexAttribI1i.Invoke(index, x);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLVERTEXATTRIBI2IPROC(uint index, int x, int y);
|
|
private PFNGLVERTEXATTRIBI2IPROC glVertexAttribI2i;
|
|
|
|
public void VertexAttribI2i(uint index, int x, int y)
|
|
{
|
|
glVertexAttribI2i.Invoke(index, x, y);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLVERTEXATTRIBI3IPROC(uint index, int x, int y, int z);
|
|
private PFNGLVERTEXATTRIBI3IPROC glVertexAttribI3i;
|
|
|
|
public void VertexAttribI3i(uint index, int x, int y, int z)
|
|
{
|
|
glVertexAttribI3i.Invoke(index, x, y, z);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLVERTEXATTRIBI4IPROC(uint index, int x, int y, int z, int w);
|
|
private PFNGLVERTEXATTRIBI4IPROC glVertexAttribI4i;
|
|
|
|
public void VertexAttribI4i(uint index, int x, int y, int z, int w)
|
|
{
|
|
glVertexAttribI4i.Invoke(index, x, y, z, w);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLVERTEXATTRIBI1UIPROC(uint index, uint x);
|
|
private PFNGLVERTEXATTRIBI1UIPROC glVertexAttribI1ui;
|
|
|
|
public void VertexAttribI1ui(uint index, uint x)
|
|
{
|
|
glVertexAttribI1ui.Invoke(index, x);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLVERTEXATTRIBI2UIPROC(uint index, uint x, uint y);
|
|
private PFNGLVERTEXATTRIBI2UIPROC glVertexAttribI2ui;
|
|
|
|
public void VertexAttribI2ui(uint index, uint x, uint y)
|
|
{
|
|
glVertexAttribI2ui.Invoke(index, x, y);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLVERTEXATTRIBI3UIPROC(uint index, uint x, uint y, uint z);
|
|
private PFNGLVERTEXATTRIBI3UIPROC glVertexAttribI3ui;
|
|
|
|
public void VertexAttribI3ui(uint index, uint x, uint y, uint z)
|
|
{
|
|
glVertexAttribI3ui.Invoke(index, x, y, z);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLVERTEXATTRIBI4UIPROC(uint index, uint x, uint y, uint z, uint w);
|
|
private PFNGLVERTEXATTRIBI4UIPROC glVertexAttribI4ui;
|
|
|
|
public void VertexAttribI4ui(uint index, uint x, uint y, uint z, uint w)
|
|
{
|
|
glVertexAttribI4ui.Invoke(index, x, y, z, w);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLVERTEXATTRIBI1IVPROC(uint index, int[] v);
|
|
private PFNGLVERTEXATTRIBI1IVPROC glVertexAttribI1iv;
|
|
|
|
public void VertexAttribI1iv(uint index, int[] v)
|
|
{
|
|
glVertexAttribI1iv.Invoke(index, v);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLVERTEXATTRIBI2IVPROC(uint index, int[] v);
|
|
private PFNGLVERTEXATTRIBI2IVPROC glVertexAttribI2iv;
|
|
|
|
public void VertexAttribI2iv(uint index, int[] v)
|
|
{
|
|
glVertexAttribI2iv.Invoke(index, v);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLVERTEXATTRIBI3IVPROC(uint index, int[] v);
|
|
private PFNGLVERTEXATTRIBI3IVPROC glVertexAttribI3iv;
|
|
|
|
public void VertexAttribI3iv(uint index, int[] v)
|
|
{
|
|
glVertexAttribI3iv.Invoke(index, v);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLVERTEXATTRIBI4IVPROC(uint index, int[] v);
|
|
private PFNGLVERTEXATTRIBI4IVPROC glVertexAttribI4iv;
|
|
|
|
public void VertexAttribI4iv(uint index, int[] v)
|
|
{
|
|
glVertexAttribI4iv.Invoke(index, v);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLVERTEXATTRIBI1UIVPROC(uint index, uint[] v);
|
|
private PFNGLVERTEXATTRIBI1UIVPROC glVertexAttribI1uiv;
|
|
|
|
public void VertexAttribI1uiv(uint index, uint[] v)
|
|
{
|
|
glVertexAttribI1uiv.Invoke(index, v);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLVERTEXATTRIBI2UIVPROC(uint index, uint[] v);
|
|
private PFNGLVERTEXATTRIBI2UIVPROC glVertexAttribI2uiv;
|
|
|
|
public void VertexAttribI2uiv(uint index, uint[] v)
|
|
{
|
|
glVertexAttribI2uiv.Invoke(index, v);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLVERTEXATTRIBI3UIVPROC(uint index, uint[] v);
|
|
private PFNGLVERTEXATTRIBI3UIVPROC glVertexAttribI3uiv;
|
|
|
|
public void VertexAttribI3uiv(uint index, uint[] v)
|
|
{
|
|
glVertexAttribI3uiv.Invoke(index, v);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLVERTEXATTRIBI4UIVPROC(uint index, uint[] v);
|
|
private PFNGLVERTEXATTRIBI4UIVPROC glVertexAttribI4uiv;
|
|
|
|
public void VertexAttribI4uiv(uint index, uint[] v)
|
|
{
|
|
glVertexAttribI4uiv.Invoke(index, v);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLVERTEXATTRIBI4BVPROC(uint index, sbyte[] v);
|
|
private PFNGLVERTEXATTRIBI4BVPROC glVertexAttribI4bv;
|
|
|
|
public void VertexAttribI4bv(uint index, sbyte[] v)
|
|
{
|
|
glVertexAttribI4bv.Invoke(index, v);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLVERTEXATTRIBI4SVPROC(uint index, short[] v);
|
|
private PFNGLVERTEXATTRIBI4SVPROC glVertexAttribI4sv;
|
|
|
|
public void VertexAttribI4sv(uint index, short[] v)
|
|
{
|
|
glVertexAttribI4sv.Invoke(index, v);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLVERTEXATTRIBI4UBVPROC(uint index, byte[] v);
|
|
private PFNGLVERTEXATTRIBI4UBVPROC glVertexAttribI4ubv;
|
|
|
|
public void VertexAttribI4ubv(uint index, byte[] v)
|
|
{
|
|
glVertexAttribI4ubv.Invoke(index, v);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLVERTEXATTRIBI4USVPROC(uint index, ushort[] v);
|
|
private PFNGLVERTEXATTRIBI4USVPROC glVertexAttribI4usv;
|
|
|
|
public void VertexAttribI4usv(uint index, ushort[] v)
|
|
{
|
|
glVertexAttribI4usv.Invoke(index, v);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLGETUNIFORMUIVPROC(uint program, int location, out uint parameters);
|
|
private PFNGLGETUNIFORMUIVPROC glGetUniformuiv;
|
|
|
|
public void GetUniformuiv(uint program, int location, out uint parameters)
|
|
{
|
|
glGetUniformuiv.Invoke(program, location, out parameters);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLBINDFRAGDATALOCATIONPROC(uint program, uint color, sbyte[] name);
|
|
private PFNGLBINDFRAGDATALOCATIONPROC glBindFragDataLocation;
|
|
|
|
public void BindFragDataLocation(uint program, uint color, sbyte[] name)
|
|
{
|
|
glBindFragDataLocation.Invoke(program, color, name);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate int PFNGLGETFRAGDATALOCATIONPROC(uint program, sbyte[] name);
|
|
private PFNGLGETFRAGDATALOCATIONPROC glGetFragDataLocation;
|
|
|
|
public int GetFragDataLocation(uint program, sbyte[] name)
|
|
{
|
|
return glGetFragDataLocation.Invoke(program, name);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLUNIFORM1UIPROC(int location, uint v0);
|
|
private PFNGLUNIFORM1UIPROC glUniform1ui;
|
|
|
|
public void Uniform1ui(int location, uint v0)
|
|
{
|
|
glUniform1ui.Invoke(location, v0);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLUNIFORM2UIPROC(int location, uint v0, uint v1);
|
|
private PFNGLUNIFORM2UIPROC glUniform2ui;
|
|
|
|
public void Uniform2ui(int location, uint v0, uint v1)
|
|
{
|
|
glUniform2ui.Invoke(location, v0, v1);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLUNIFORM3UIPROC(int location, uint v0, uint v1, uint v2);
|
|
private PFNGLUNIFORM3UIPROC glUniform3ui;
|
|
|
|
public void Uniform3ui(int location, uint v0, uint v1, uint v2)
|
|
{
|
|
glUniform3ui.Invoke(location, v0, v1, v2);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLUNIFORM4UIPROC(int location, uint v0, uint v1, uint v2, uint v3);
|
|
private PFNGLUNIFORM4UIPROC glUniform4ui;
|
|
|
|
public void Uniform4ui(int location, uint v0, uint v1, uint v2, uint v3)
|
|
{
|
|
glUniform4ui.Invoke(location, v0, v1, v2, v3);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLUNIFORM1UIVPROC(int location, int count, uint[] value);
|
|
private PFNGLUNIFORM1UIVPROC glUniform1uiv;
|
|
|
|
public void Uniform1uiv(int location, int count, uint[] value)
|
|
{
|
|
glUniform1uiv.Invoke(location, count, value);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLUNIFORM2UIVPROC(int location, int count, uint[] value);
|
|
private PFNGLUNIFORM2UIVPROC glUniform2uiv;
|
|
|
|
public void Uniform2uiv(int location, int count, uint[] value)
|
|
{
|
|
glUniform2uiv.Invoke(location, count, value);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLUNIFORM3UIVPROC(int location, int count, uint[] value);
|
|
private PFNGLUNIFORM3UIVPROC glUniform3uiv;
|
|
|
|
public void Uniform3uiv(int location, int count, uint[] value)
|
|
{
|
|
glUniform3uiv.Invoke(location, count, value);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLUNIFORM4UIVPROC(int location, int count, uint[] value);
|
|
private PFNGLUNIFORM4UIVPROC glUniform4uiv;
|
|
|
|
public void Uniform4uiv(int location, int count, uint[] value)
|
|
{
|
|
glUniform4uiv.Invoke(location, count, value);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLTEXPARAMETERIIVPROC(TextureTarget target, TextureParameterName pname, int[] parameters);
|
|
private PFNGLTEXPARAMETERIIVPROC glTexParameterIiv;
|
|
|
|
public void TexParameterIiv(TextureTarget target, TextureParameterName pname, int[] parameters)
|
|
{
|
|
glTexParameterIiv.Invoke(target, pname, parameters);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLTEXPARAMETERIUIVPROC(TextureTarget target, TextureParameterName pname, uint[] parameters);
|
|
private PFNGLTEXPARAMETERIUIVPROC glTexParameterIuiv;
|
|
|
|
public void TexParameterIuiv(TextureTarget target, TextureParameterName pname, uint[] parameters)
|
|
{
|
|
glTexParameterIuiv.Invoke(target, pname, parameters);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLGETTEXPARAMETERIIVPROC(TextureTarget target, GetTextureParameter pname, out int parameters);
|
|
private PFNGLGETTEXPARAMETERIIVPROC glGetTexParameterIiv;
|
|
|
|
public void GetTexParameterIiv(TextureTarget target, GetTextureParameter pname, out int parameters)
|
|
{
|
|
glGetTexParameterIiv.Invoke(target, pname, out parameters);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLGETTEXPARAMETERIUIVPROC(TextureTarget target, GetTextureParameter pname, out uint parameters);
|
|
private PFNGLGETTEXPARAMETERIUIVPROC glGetTexParameterIuiv;
|
|
|
|
public void GetTexParameterIuiv(TextureTarget target, GetTextureParameter pname, out uint parameters)
|
|
{
|
|
glGetTexParameterIuiv.Invoke(target, pname, out parameters);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLCLEARBUFFERIVPROC(Buffer buffer, int drawbuffer, int[] value);
|
|
private PFNGLCLEARBUFFERIVPROC glClearBufferiv;
|
|
|
|
public void ClearBufferiv(Buffer buffer, int drawbuffer, int[] value)
|
|
{
|
|
glClearBufferiv.Invoke(buffer, drawbuffer, value);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLCLEARBUFFERUIVPROC(Buffer buffer, int drawbuffer, uint[] value);
|
|
private PFNGLCLEARBUFFERUIVPROC glClearBufferuiv;
|
|
|
|
public void ClearBufferuiv(Buffer buffer, int drawbuffer, uint[] value)
|
|
{
|
|
glClearBufferuiv.Invoke(buffer, drawbuffer, value);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLCLEARBUFFERFVPROC(Buffer buffer, int drawbuffer, float[] value);
|
|
private PFNGLCLEARBUFFERFVPROC glClearBufferfv;
|
|
|
|
public void ClearBufferfv(Buffer buffer, int drawbuffer, float[] value)
|
|
{
|
|
glClearBufferfv.Invoke(buffer, drawbuffer, value);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLCLEARBUFFERFIPROC(Buffer buffer, int drawbuffer, float depth, int stencil);
|
|
private PFNGLCLEARBUFFERFIPROC glClearBufferfi;
|
|
|
|
public void ClearBufferfi(Buffer buffer, int drawbuffer, float depth, int stencil)
|
|
{
|
|
glClearBufferfi.Invoke(buffer, drawbuffer, depth, stencil);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate IntPtr PFNGLGETSTRINGIPROC(StringName name, uint index);
|
|
private PFNGLGETSTRINGIPROC glGetStringi;
|
|
|
|
public IntPtr GetStringi(StringName name, uint index)
|
|
{
|
|
return glGetStringi.Invoke(name, index);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate bool PFNGLISRENDERBUFFERPROC(uint renderbuffer);
|
|
private PFNGLISRENDERBUFFERPROC glIsRenderbuffer;
|
|
|
|
public bool IsRenderbuffer(uint renderbuffer)
|
|
{
|
|
return glIsRenderbuffer.Invoke(renderbuffer);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLBINDRENDERBUFFERPROC(RenderbufferTarget target, uint renderbuffer);
|
|
private PFNGLBINDRENDERBUFFERPROC glBindRenderbuffer;
|
|
|
|
public void BindRenderbuffer(RenderbufferTarget target, uint renderbuffer)
|
|
{
|
|
glBindRenderbuffer.Invoke(target, renderbuffer);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLDELETERENDERBUFFERSPROC(int n, uint[] renderbuffers);
|
|
private PFNGLDELETERENDERBUFFERSPROC glDeleteRenderbuffers;
|
|
|
|
public void DeleteRenderbuffers(int n, uint[] renderbuffers)
|
|
{
|
|
glDeleteRenderbuffers.Invoke(n, renderbuffers);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLGENRENDERBUFFERSPROC(int n, out uint renderbuffers);
|
|
private PFNGLGENRENDERBUFFERSPROC glGenRenderbuffers;
|
|
|
|
public void GenRenderbuffers(int n, out uint renderbuffers)
|
|
{
|
|
glGenRenderbuffers.Invoke(n, out renderbuffers);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLRENDERBUFFERSTORAGEPROC(RenderbufferTarget target, InternalFormat internalformat, int width, int height);
|
|
private PFNGLRENDERBUFFERSTORAGEPROC glRenderbufferStorage;
|
|
|
|
public void RenderbufferStorage(RenderbufferTarget target, InternalFormat internalformat, int width, int height)
|
|
{
|
|
glRenderbufferStorage.Invoke(target, internalformat, width, height);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLGETRENDERBUFFERPARAMETERIVPROC(RenderbufferTarget target, RenderbufferParameterName pname, out int parameters);
|
|
private PFNGLGETRENDERBUFFERPARAMETERIVPROC glGetRenderbufferParameteriv;
|
|
|
|
public void GetRenderbufferParameteriv(RenderbufferTarget target, RenderbufferParameterName pname, out int parameters)
|
|
{
|
|
glGetRenderbufferParameteriv.Invoke(target, pname, out parameters);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate bool PFNGLISFRAMEBUFFERPROC(uint framebuffer);
|
|
private PFNGLISFRAMEBUFFERPROC glIsFramebuffer;
|
|
|
|
public bool IsFramebuffer(uint framebuffer)
|
|
{
|
|
return glIsFramebuffer.Invoke(framebuffer);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLBINDFRAMEBUFFERPROC(FramebufferTarget target, uint framebuffer);
|
|
private PFNGLBINDFRAMEBUFFERPROC glBindFramebuffer;
|
|
|
|
public void BindFramebuffer(FramebufferTarget target, uint framebuffer)
|
|
{
|
|
glBindFramebuffer.Invoke(target, framebuffer);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLDELETEFRAMEBUFFERSPROC(int n, uint[] framebuffers);
|
|
private PFNGLDELETEFRAMEBUFFERSPROC glDeleteFramebuffers;
|
|
|
|
public void DeleteFramebuffers(int n, uint[] framebuffers)
|
|
{
|
|
glDeleteFramebuffers.Invoke(n, framebuffers);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLGENFRAMEBUFFERSPROC(int n, out uint framebuffers);
|
|
private PFNGLGENFRAMEBUFFERSPROC glGenFramebuffers;
|
|
|
|
public void GenFramebuffers(int n, out uint framebuffers)
|
|
{
|
|
glGenFramebuffers.Invoke(n, out framebuffers);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate FramebufferStatus PFNGLCHECKFRAMEBUFFERSTATUSPROC(FramebufferTarget target);
|
|
private PFNGLCHECKFRAMEBUFFERSTATUSPROC glCheckFramebufferStatus;
|
|
|
|
public FramebufferStatus CheckFramebufferStatus(FramebufferTarget target)
|
|
{
|
|
return glCheckFramebufferStatus.Invoke(target);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLFRAMEBUFFERTEXTURE1DPROC(FramebufferTarget target, FramebufferAttachment attachment, TextureTarget textarget, uint texture, int level);
|
|
private PFNGLFRAMEBUFFERTEXTURE1DPROC glFramebufferTexture1D;
|
|
|
|
public void FramebufferTexture1D(FramebufferTarget target, FramebufferAttachment attachment, TextureTarget textarget, uint texture, int level)
|
|
{
|
|
glFramebufferTexture1D.Invoke(target, attachment, textarget, texture, level);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLFRAMEBUFFERTEXTURE2DPROC(FramebufferTarget target, FramebufferAttachment attachment, TextureTarget textarget, uint texture, int level);
|
|
private PFNGLFRAMEBUFFERTEXTURE2DPROC glFramebufferTexture2D;
|
|
|
|
public void FramebufferTexture2D(FramebufferTarget target, FramebufferAttachment attachment, TextureTarget textarget, uint texture, int level)
|
|
{
|
|
glFramebufferTexture2D.Invoke(target, attachment, textarget, texture, level);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLFRAMEBUFFERTEXTURE3DPROC(FramebufferTarget target, FramebufferAttachment attachment, TextureTarget textarget, uint texture, int level, int zoffset);
|
|
private PFNGLFRAMEBUFFERTEXTURE3DPROC glFramebufferTexture3D;
|
|
|
|
public void FramebufferTexture3D(FramebufferTarget target, FramebufferAttachment attachment, TextureTarget textarget, uint texture, int level, int zoffset)
|
|
{
|
|
glFramebufferTexture3D.Invoke(target, attachment, textarget, texture, level, zoffset);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLFRAMEBUFFERRENDERBUFFERPROC(FramebufferTarget target, FramebufferAttachment attachment, RenderbufferTarget renderbuffertarget, uint renderbuffer);
|
|
private PFNGLFRAMEBUFFERRENDERBUFFERPROC glFramebufferRenderbuffer;
|
|
|
|
public void FramebufferRenderbuffer(FramebufferTarget target, FramebufferAttachment attachment, RenderbufferTarget renderbuffertarget, uint renderbuffer)
|
|
{
|
|
glFramebufferRenderbuffer.Invoke(target, attachment, renderbuffertarget, renderbuffer);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC(FramebufferTarget target, FramebufferAttachment attachment, FramebufferAttachmentParameterName pname, out int parameters);
|
|
private PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC glGetFramebufferAttachmentParameteriv;
|
|
|
|
public void GetFramebufferAttachmentParameteriv(FramebufferTarget target, FramebufferAttachment attachment, FramebufferAttachmentParameterName pname, out int parameters)
|
|
{
|
|
glGetFramebufferAttachmentParameteriv.Invoke(target, attachment, pname, out parameters);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLGENERATEMIPMAPPROC(TextureTarget target);
|
|
private PFNGLGENERATEMIPMAPPROC glGenerateMipmap;
|
|
|
|
public void GenerateMipmap(TextureTarget target)
|
|
{
|
|
glGenerateMipmap.Invoke(target);
|
|
DetectGLError();
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLBLITFRAMEBUFFERPROC(int srcX0, int srcY0, int srcX1, int srcY1, int dstX0, int dstY0, int dstX1, int dstY1, ClearBufferMask mask, BlitFramebufferFilter filter);
|
|
private PFNGLBLITFRAMEBUFFERPROC glBlitFramebuffer;
|
|
|
|
public void BlitFramebuffer(int srcX0, int srcY0, int srcX1, int srcY1, int dstX0, int dstY0, int dstX1, int dstY1, ClearBufferMask mask, BlitFramebufferFilter filter)
|
|
{
|
|
glBlitFramebuffer.Invoke(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC(RenderbufferTarget target, int samples, InternalFormat internalformat, int width, int height);
|
|
private PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC glRenderbufferStorageMultisample;
|
|
|
|
public void RenderbufferStorageMultisample(RenderbufferTarget target, int samples, InternalFormat internalformat, int width, int height)
|
|
{
|
|
glRenderbufferStorageMultisample.Invoke(target, samples, internalformat, width, height);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLFRAMEBUFFERTEXTURELAYERPROC(FramebufferTarget target, FramebufferAttachment attachment, uint texture, int level, int layer);
|
|
private PFNGLFRAMEBUFFERTEXTURELAYERPROC glFramebufferTextureLayer;
|
|
|
|
public void FramebufferTextureLayer(FramebufferTarget target, FramebufferAttachment attachment, uint texture, int level, int layer)
|
|
{
|
|
glFramebufferTextureLayer.Invoke(target, attachment, texture, level, layer);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate IntPtr PFNGLMAPBUFFERRANGEPROC(BufferTargetARB target, IntPtr offset, IntPtr length, MapBufferAccessMask access);
|
|
private PFNGLMAPBUFFERRANGEPROC glMapBufferRange;
|
|
|
|
public IntPtr MapBufferRange(BufferTargetARB target, IntPtr offset, IntPtr length, MapBufferAccessMask access)
|
|
{
|
|
return glMapBufferRange.Invoke(target, offset, length, access);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLFLUSHMAPPEDBUFFERRANGEPROC(BufferTargetARB target, IntPtr offset, IntPtr length);
|
|
private PFNGLFLUSHMAPPEDBUFFERRANGEPROC glFlushMappedBufferRange;
|
|
|
|
public void FlushMappedBufferRange(BufferTargetARB target, IntPtr offset, IntPtr length)
|
|
{
|
|
glFlushMappedBufferRange.Invoke(target, offset, length);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLBINDVERTEXARRAYPROC(uint array);
|
|
private PFNGLBINDVERTEXARRAYPROC glBindVertexArray;
|
|
|
|
public void BindVertexArray(uint array)
|
|
{
|
|
glBindVertexArray.Invoke(array);
|
|
DetectGLError();
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLDELETEVERTEXARRAYSPROC(int n, uint[] arrays);
|
|
private PFNGLDELETEVERTEXARRAYSPROC glDeleteVertexArrays;
|
|
|
|
public void DeleteVertexArrays(int n, uint[] arrays)
|
|
{
|
|
glDeleteVertexArrays.Invoke(n, arrays);
|
|
DetectGLError();
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLGENVERTEXARRAYSPROC(int n, uint[] arrays);
|
|
private PFNGLGENVERTEXARRAYSPROC glGenVertexArrays;
|
|
|
|
public void GenVertexArrays(int n, uint[] arrays)
|
|
{
|
|
glGenVertexArrays.Invoke(n, arrays);
|
|
DetectGLError();
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate bool PFNGLISVERTEXARRAYPROC(uint array);
|
|
private PFNGLISVERTEXARRAYPROC glIsVertexArray;
|
|
|
|
public bool IsVertexArray(uint array)
|
|
{
|
|
return glIsVertexArray.Invoke(array);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLDRAWARRAYSINSTANCEDPROC(PrimitiveType mode, int first, int count, int instancecount);
|
|
private PFNGLDRAWARRAYSINSTANCEDPROC glDrawArraysInstanced;
|
|
|
|
public void DrawArraysInstanced(PrimitiveType mode, int first, int count, int instancecount)
|
|
{
|
|
glDrawArraysInstanced.Invoke(mode, first, count, instancecount);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLDRAWELEMENTSINSTANCEDPROC(PrimitiveType mode, int count, DrawElementsType type, IntPtr indices, int instancecount);
|
|
private PFNGLDRAWELEMENTSINSTANCEDPROC glDrawElementsInstanced;
|
|
|
|
public void DrawElementsInstanced(PrimitiveType mode, int count, DrawElementsType type, IntPtr indices, int instancecount)
|
|
{
|
|
glDrawElementsInstanced.Invoke(mode, count, type, indices, instancecount);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLTEXBUFFERPROC(TextureTarget target, InternalFormat internalformat, uint buffer);
|
|
private PFNGLTEXBUFFERPROC glTexBuffer;
|
|
|
|
public void TexBuffer(TextureTarget target, InternalFormat internalformat, uint buffer)
|
|
{
|
|
glTexBuffer.Invoke(target, internalformat, buffer);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLPRIMITIVERESTARTINDEXPROC(uint index);
|
|
private PFNGLPRIMITIVERESTARTINDEXPROC glPrimitiveRestartIndex;
|
|
|
|
public void PrimitiveRestartIndex(uint index)
|
|
{
|
|
glPrimitiveRestartIndex.Invoke(index);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLCOPYBUFFERSUBDATAPROC(CopyBufferSubDataTarget readTarget, CopyBufferSubDataTarget writeTarget, IntPtr readOffset, IntPtr writeOffset, IntPtr size);
|
|
private PFNGLCOPYBUFFERSUBDATAPROC glCopyBufferSubData;
|
|
|
|
public void CopyBufferSubData(CopyBufferSubDataTarget readTarget, CopyBufferSubDataTarget writeTarget, IntPtr readOffset, IntPtr writeOffset, IntPtr size)
|
|
{
|
|
glCopyBufferSubData.Invoke(readTarget, writeTarget, readOffset, writeOffset, size);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLGETUNIFORMINDICESPROC(uint program, int uniformCount, sbyte uniformNames, out uint uniformIndices);
|
|
private PFNGLGETUNIFORMINDICESPROC glGetUniformIndices;
|
|
|
|
public void GetUniformIndices(uint program, int uniformCount, sbyte uniformNames, out uint uniformIndices)
|
|
{
|
|
glGetUniformIndices.Invoke(program, uniformCount, uniformNames, out uniformIndices);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLGETACTIVEUNIFORMSIVPROC(uint program, int uniformCount, uint[] uniformIndices, UniformPName pname, out int parameters);
|
|
private PFNGLGETACTIVEUNIFORMSIVPROC glGetActiveUniformsiv;
|
|
|
|
public void GetActiveUniformsiv(uint program, int uniformCount, uint[] uniformIndices, UniformPName pname, out int parameters)
|
|
{
|
|
glGetActiveUniformsiv.Invoke(program, uniformCount, uniformIndices, pname, out parameters);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLGETACTIVEUNIFORMNAMEPROC(uint program, uint uniformIndex, int bufSize, out int length, out sbyte uniformName);
|
|
private PFNGLGETACTIVEUNIFORMNAMEPROC glGetActiveUniformName;
|
|
|
|
public void GetActiveUniformName(uint program, uint uniformIndex, int bufSize, out int length, out sbyte uniformName)
|
|
{
|
|
glGetActiveUniformName.Invoke(program, uniformIndex, bufSize, out length, out uniformName);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate uint PFNGLGETUNIFORMBLOCKINDEXPROC(uint program, sbyte[] uniformBlockName);
|
|
private PFNGLGETUNIFORMBLOCKINDEXPROC glGetUniformBlockIndex;
|
|
|
|
public uint GetUniformBlockIndex(uint program, sbyte[] uniformBlockName)
|
|
{
|
|
return glGetUniformBlockIndex.Invoke(program, uniformBlockName);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLGETACTIVEUNIFORMBLOCKIVPROC(uint program, uint uniformBlockIndex, UniformBlockPName pname, out int parameters);
|
|
private PFNGLGETACTIVEUNIFORMBLOCKIVPROC glGetActiveUniformBlockiv;
|
|
|
|
public void GetActiveUniformBlockiv(uint program, uint uniformBlockIndex, UniformBlockPName pname, out int parameters)
|
|
{
|
|
glGetActiveUniformBlockiv.Invoke(program, uniformBlockIndex, pname, out parameters);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC(uint program, uint uniformBlockIndex, int bufSize, out int length, out sbyte uniformBlockName);
|
|
private PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC glGetActiveUniformBlockName;
|
|
|
|
public void GetActiveUniformBlockName(uint program, uint uniformBlockIndex, int bufSize, out int length, out sbyte uniformBlockName)
|
|
{
|
|
glGetActiveUniformBlockName.Invoke(program, uniformBlockIndex, bufSize, out length, out uniformBlockName);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLUNIFORMBLOCKBINDINGPROC(uint program, uint uniformBlockIndex, uint uniformBlockBinding);
|
|
private PFNGLUNIFORMBLOCKBINDINGPROC glUniformBlockBinding;
|
|
|
|
public void UniformBlockBinding(uint program, uint uniformBlockIndex, uint uniformBlockBinding)
|
|
{
|
|
glUniformBlockBinding.Invoke(program, uniformBlockIndex, uniformBlockBinding);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLDRAWELEMENTSBASEVERTEXPROC(PrimitiveType mode, int count, DrawElementsType type, IntPtr indices, int basevertex);
|
|
private PFNGLDRAWELEMENTSBASEVERTEXPROC glDrawElementsBaseVertex;
|
|
|
|
public void DrawElementsBaseVertex(PrimitiveType mode, int count, DrawElementsType type, IntPtr indices, int basevertex)
|
|
{
|
|
glDrawElementsBaseVertex.Invoke(mode, count, type, indices, basevertex);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC(PrimitiveType mode, uint start, uint end, int count, DrawElementsType type, IntPtr indices, int basevertex);
|
|
private PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC glDrawRangeElementsBaseVertex;
|
|
|
|
public void DrawRangeElementsBaseVertex(PrimitiveType mode, uint start, uint end, int count, DrawElementsType type, IntPtr indices, int basevertex)
|
|
{
|
|
glDrawRangeElementsBaseVertex.Invoke(mode, start, end, count, type, indices, basevertex);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC(PrimitiveType mode, int count, DrawElementsType type, IntPtr indices, int instancecount, int basevertex);
|
|
private PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC glDrawElementsInstancedBaseVertex;
|
|
|
|
public void DrawElementsInstancedBaseVertex(PrimitiveType mode, int count, DrawElementsType type, IntPtr indices, int instancecount, int basevertex)
|
|
{
|
|
glDrawElementsInstancedBaseVertex.Invoke(mode, count, type, indices, instancecount, basevertex);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC(PrimitiveType mode, int[] count, DrawElementsType type, int[] indices, int drawcount, int[] basevertex);
|
|
private PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC glMultiDrawElementsBaseVertex;
|
|
|
|
public void MultiDrawElementsBaseVertex(PrimitiveType mode, int[] count, DrawElementsType type, int[] indices, int drawcount, int[] basevertex)
|
|
{
|
|
glMultiDrawElementsBaseVertex.Invoke(mode, count, type, indices, drawcount, basevertex);
|
|
DetectGLError();
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLPROVOKINGVERTEXPROC(VertexProvokingMode mode);
|
|
private PFNGLPROVOKINGVERTEXPROC glProvokingVertex;
|
|
|
|
public void ProvokingVertex(VertexProvokingMode mode)
|
|
{
|
|
glProvokingVertex.Invoke(mode);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate IntPtr PFNGLFENCESYNCPROC(SyncCondition condition, uint flags);
|
|
private PFNGLFENCESYNCPROC glFenceSync;
|
|
|
|
public IntPtr FenceSync(SyncCondition condition, uint flags)
|
|
{
|
|
return glFenceSync.Invoke(condition, flags);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate bool PFNGLISSYNCPROC(IntPtr sync);
|
|
private PFNGLISSYNCPROC glIsSync;
|
|
|
|
public bool IsSync(IntPtr sync)
|
|
{
|
|
return glIsSync.Invoke(sync);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLDELETESYNCPROC(IntPtr sync);
|
|
private PFNGLDELETESYNCPROC glDeleteSync;
|
|
|
|
public void DeleteSync(IntPtr sync)
|
|
{
|
|
glDeleteSync.Invoke(sync);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate SyncStatus PFNGLCLIENTWAITSYNCPROC(IntPtr sync, SyncObjectMask flags, ulong timeout);
|
|
private PFNGLCLIENTWAITSYNCPROC glClientWaitSync;
|
|
|
|
public SyncStatus ClientWaitSync(IntPtr sync, SyncObjectMask flags, ulong timeout)
|
|
{
|
|
return glClientWaitSync.Invoke(sync, flags, timeout);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLWAITSYNCPROC(IntPtr sync, uint flags, ulong timeout);
|
|
private PFNGLWAITSYNCPROC glWaitSync;
|
|
|
|
public void WaitSync(IntPtr sync, uint flags, ulong timeout)
|
|
{
|
|
glWaitSync.Invoke(sync, flags, timeout);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLGETINTEGER64VPROC(GetPName pname, out long data);
|
|
private PFNGLGETINTEGER64VPROC glGetInteger64v;
|
|
|
|
public void GetInteger64v(GetPName pname, out long data)
|
|
{
|
|
glGetInteger64v.Invoke(pname, out data);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLGETSYNCIVPROC(IntPtr sync, SyncParameterName pname, int bufSize, out int length, out int values);
|
|
private PFNGLGETSYNCIVPROC glGetSynciv;
|
|
|
|
public void GetSynciv(IntPtr sync, SyncParameterName pname, int bufSize, out int length, out int values)
|
|
{
|
|
glGetSynciv.Invoke(sync, pname, bufSize, out length, out values);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLGETINTEGER64I_VPROC(TypeEnum target, uint index, out long data);
|
|
private PFNGLGETINTEGER64I_VPROC glGetInteger64i_v;
|
|
|
|
public void GetInteger64i_v(TypeEnum target, uint index, out long data)
|
|
{
|
|
glGetInteger64i_v.Invoke(target, index, out data);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLGETBUFFERPARAMETERI64VPROC(BufferTargetARB target, int pname, out long parameters);
|
|
private PFNGLGETBUFFERPARAMETERI64VPROC glGetBufferParameteri64v;
|
|
|
|
public void GetBufferParameteri64v(BufferTargetARB target, int pname, out long parameters)
|
|
{
|
|
glGetBufferParameteri64v.Invoke(target, pname, out parameters);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLFRAMEBUFFERTEXTUREPROC(FramebufferTarget target, FramebufferAttachment attachment, uint texture, int level);
|
|
private PFNGLFRAMEBUFFERTEXTUREPROC glFramebufferTexture;
|
|
|
|
public void FramebufferTexture(FramebufferTarget target, FramebufferAttachment attachment, uint texture, int level)
|
|
{
|
|
glFramebufferTexture.Invoke(target, attachment, texture, level);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLTEXIMAGE2DMULTISAMPLEPROC(TextureTarget target, int samples, InternalFormat internalformat, int width, int height, bool fixedsamplelocations);
|
|
private PFNGLTEXIMAGE2DMULTISAMPLEPROC glTexImage2DMultisample;
|
|
|
|
public void TexImage2DMultisample(TextureTarget target, int samples, InternalFormat internalformat, int width, int height, bool fixedsamplelocations)
|
|
{
|
|
glTexImage2DMultisample.Invoke(target, samples, internalformat, width, height, fixedsamplelocations);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLTEXIMAGE3DMULTISAMPLEPROC(TextureTarget target, int samples, InternalFormat internalformat, int width, int height, int depth, bool fixedsamplelocations);
|
|
private PFNGLTEXIMAGE3DMULTISAMPLEPROC glTexImage3DMultisample;
|
|
|
|
public void TexImage3DMultisample(TextureTarget target, int samples, InternalFormat internalformat, int width, int height, int depth, bool fixedsamplelocations)
|
|
{
|
|
glTexImage3DMultisample.Invoke(target, samples, internalformat, width, height, depth, fixedsamplelocations);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLGETMULTISAMPLEFVPROC(int pname, uint index, out float val);
|
|
private PFNGLGETMULTISAMPLEFVPROC glGetMultisamplefv;
|
|
|
|
public void GetMultisamplefv(int pname, uint index, out float val)
|
|
{
|
|
glGetMultisamplefv.Invoke(pname, index, out val);
|
|
}
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
|
private delegate void PFNGLSAMPLEMASKIPROC(uint maskNumber, uint mask);
|
|
private PFNGLSAMPLEMASKIPROC glSampleMaski;
|
|
|
|
public void SampleMaski(uint maskNumber, uint mask)
|
|
{
|
|
glSampleMaski.Invoke(maskNumber, mask);
|
|
}
|
|
#endregion
|
|
|
|
public GLContext(IntPtr windowHandle)
|
|
{
|
|
GetProcAddressHandler loader = SDL.SDL_GL_GetProcAddress;
|
|
Handle = SDL.SDL_GL_CreateContext(windowHandle);
|
|
if (Handle == null) {
|
|
throw new FrameworkSDLException();
|
|
}
|
|
|
|
#region OpenGLDelegateAssignment
|
|
glCullFace = Marshal.GetDelegateForFunctionPointer<PFNGLCULLFACEPROC>(loader.Invoke("glCullFace"));
|
|
glFrontFace = Marshal.GetDelegateForFunctionPointer<PFNGLFRONTFACEPROC>(loader.Invoke("glFrontFace"));
|
|
glHint = Marshal.GetDelegateForFunctionPointer<PFNGLHINTPROC>(loader.Invoke("glHint"));
|
|
glLineWidth = Marshal.GetDelegateForFunctionPointer<PFNGLLINEWIDTHPROC>(loader.Invoke("glLineWidth"));
|
|
glPointSize = Marshal.GetDelegateForFunctionPointer<PFNGLPOINTSIZEPROC>(loader.Invoke("glPointSize"));
|
|
glPolygonMode = Marshal.GetDelegateForFunctionPointer<PFNGLPOLYGONMODEPROC>(loader.Invoke("glPolygonMode"));
|
|
glScissor = Marshal.GetDelegateForFunctionPointer<PFNGLSCISSORPROC>(loader.Invoke("glScissor"));
|
|
glTexParameterf = Marshal.GetDelegateForFunctionPointer<PFNGLTEXPARAMETERFPROC>(loader.Invoke("glTexParameterf"));
|
|
glTexParameterfv = Marshal.GetDelegateForFunctionPointer<PFNGLTEXPARAMETERFVPROC>(loader.Invoke("glTexParameterfv"));
|
|
glTexParameteri = Marshal.GetDelegateForFunctionPointer<PFNGLTEXPARAMETERIPROC>(loader.Invoke("glTexParameteri"));
|
|
glTexParameteriv = Marshal.GetDelegateForFunctionPointer<PFNGLTEXPARAMETERIVPROC>(loader.Invoke("glTexParameteriv"));
|
|
glTexImage1D = Marshal.GetDelegateForFunctionPointer<PFNGLTEXIMAGE1DPROC>(loader.Invoke("glTexImage1D"));
|
|
glTexImage2D = Marshal.GetDelegateForFunctionPointer<PFNGLTEXIMAGE2DPROC>(loader.Invoke("glTexImage2D"));
|
|
glDrawBuffer = Marshal.GetDelegateForFunctionPointer<PFNGLDRAWBUFFERPROC>(loader.Invoke("glDrawBuffer"));
|
|
glClear = Marshal.GetDelegateForFunctionPointer<PFNGLCLEARPROC>(loader.Invoke("glClear"));
|
|
glClearColor = Marshal.GetDelegateForFunctionPointer<PFNGLCLEARCOLORPROC>(loader.Invoke("glClearColor"));
|
|
glClearStencil = Marshal.GetDelegateForFunctionPointer<PFNGLCLEARSTENCILPROC>(loader.Invoke("glClearStencil"));
|
|
glClearDepth = Marshal.GetDelegateForFunctionPointer<PFNGLCLEARDEPTHPROC>(loader.Invoke("glClearDepth"));
|
|
glStencilMask = Marshal.GetDelegateForFunctionPointer<PFNGLSTENCILMASKPROC>(loader.Invoke("glStencilMask"));
|
|
glColorMask = Marshal.GetDelegateForFunctionPointer<PFNGLCOLORMASKPROC>(loader.Invoke("glColorMask"));
|
|
glDepthMask = Marshal.GetDelegateForFunctionPointer<PFNGLDEPTHMASKPROC>(loader.Invoke("glDepthMask"));
|
|
glDisable = Marshal.GetDelegateForFunctionPointer<PFNGLDISABLEPROC>(loader.Invoke("glDisable"));
|
|
glEnable = Marshal.GetDelegateForFunctionPointer<PFNGLENABLEPROC>(loader.Invoke("glEnable"));
|
|
glFinish = Marshal.GetDelegateForFunctionPointer<PFNGLFINISHPROC>(loader.Invoke("glFinish"));
|
|
glFlush = Marshal.GetDelegateForFunctionPointer<PFNGLFLUSHPROC>(loader.Invoke("glFlush"));
|
|
glBlendFunc = Marshal.GetDelegateForFunctionPointer<PFNGLBLENDFUNCPROC>(loader.Invoke("glBlendFunc"));
|
|
glLogicOp = Marshal.GetDelegateForFunctionPointer<PFNGLLOGICOPPROC>(loader.Invoke("glLogicOp"));
|
|
glStencilFunc = Marshal.GetDelegateForFunctionPointer<PFNGLSTENCILFUNCPROC>(loader.Invoke("glStencilFunc"));
|
|
glStencilOp = Marshal.GetDelegateForFunctionPointer<PFNGLSTENCILOPPROC>(loader.Invoke("glStencilOp"));
|
|
glDepthFunc = Marshal.GetDelegateForFunctionPointer<PFNGLDEPTHFUNCPROC>(loader.Invoke("glDepthFunc"));
|
|
glPixelStoref = Marshal.GetDelegateForFunctionPointer<PFNGLPIXELSTOREFPROC>(loader.Invoke("glPixelStoref"));
|
|
glPixelStorei = Marshal.GetDelegateForFunctionPointer<PFNGLPIXELSTOREIPROC>(loader.Invoke("glPixelStorei"));
|
|
glReadBuffer = Marshal.GetDelegateForFunctionPointer<PFNGLREADBUFFERPROC>(loader.Invoke("glReadBuffer"));
|
|
glReadPixels = Marshal.GetDelegateForFunctionPointer<PFNGLREADPIXELSPROC>(loader.Invoke("glReadPixels"));
|
|
glGetBooleanv = Marshal.GetDelegateForFunctionPointer<PFNGLGETBOOLEANVPROC>(loader.Invoke("glGetBooleanv"));
|
|
glGetDoublev = Marshal.GetDelegateForFunctionPointer<PFNGLGETDOUBLEVPROC>(loader.Invoke("glGetDoublev"));
|
|
glGetError = Marshal.GetDelegateForFunctionPointer<PFNGLGETERRORPROC>(loader.Invoke("glGetError"));
|
|
glGetFloatv = Marshal.GetDelegateForFunctionPointer<PFNGLGETFLOATVPROC>(loader.Invoke("glGetFloatv"));
|
|
glGetIntegerv = Marshal.GetDelegateForFunctionPointer<PFNGLGETINTEGERVPROC>(loader.Invoke("glGetIntegerv"));
|
|
glGetString = Marshal.GetDelegateForFunctionPointer<PFNGLGETSTRINGPROC>(loader.Invoke("glGetString"));
|
|
glGetTexImage = Marshal.GetDelegateForFunctionPointer<PFNGLGETTEXIMAGEPROC>(loader.Invoke("glGetTexImage"));
|
|
glGetTexParameterfv = Marshal.GetDelegateForFunctionPointer<PFNGLGETTEXPARAMETERFVPROC>(loader.Invoke("glGetTexParameterfv"));
|
|
glGetTexParameteriv = Marshal.GetDelegateForFunctionPointer<PFNGLGETTEXPARAMETERIVPROC>(loader.Invoke("glGetTexParameteriv"));
|
|
glGetTexLevelParameterfv = Marshal.GetDelegateForFunctionPointer<PFNGLGETTEXLEVELPARAMETERFVPROC>(loader.Invoke("glGetTexLevelParameterfv"));
|
|
glGetTexLevelParameteriv = Marshal.GetDelegateForFunctionPointer<PFNGLGETTEXLEVELPARAMETERIVPROC>(loader.Invoke("glGetTexLevelParameteriv"));
|
|
glIsEnabled = Marshal.GetDelegateForFunctionPointer<PFNGLISENABLEDPROC>(loader.Invoke("glIsEnabled"));
|
|
glDepthRange = Marshal.GetDelegateForFunctionPointer<PFNGLDEPTHRANGEPROC>(loader.Invoke("glDepthRange"));
|
|
glViewport = Marshal.GetDelegateForFunctionPointer<PFNGLVIEWPORTPROC>(loader.Invoke("glViewport"));
|
|
glDrawArrays = Marshal.GetDelegateForFunctionPointer<PFNGLDRAWARRAYSPROC>(loader.Invoke("glDrawArrays"));
|
|
glDrawElements = Marshal.GetDelegateForFunctionPointer<PFNGLDRAWELEMENTSPROC>(loader.Invoke("glDrawElements"));
|
|
glPolygonOffset = Marshal.GetDelegateForFunctionPointer<PFNGLPOLYGONOFFSETPROC>(loader.Invoke("glPolygonOffset"));
|
|
glCopyTexImage1D = Marshal.GetDelegateForFunctionPointer<PFNGLCOPYTEXIMAGE1DPROC>(loader.Invoke("glCopyTexImage1D"));
|
|
glCopyTexImage2D = Marshal.GetDelegateForFunctionPointer<PFNGLCOPYTEXIMAGE2DPROC>(loader.Invoke("glCopyTexImage2D"));
|
|
glCopyTexSubImage1D = Marshal.GetDelegateForFunctionPointer<PFNGLCOPYTEXSUBIMAGE1DPROC>(loader.Invoke("glCopyTexSubImage1D"));
|
|
glCopyTexSubImage2D = Marshal.GetDelegateForFunctionPointer<PFNGLCOPYTEXSUBIMAGE2DPROC>(loader.Invoke("glCopyTexSubImage2D"));
|
|
glTexSubImage1D = Marshal.GetDelegateForFunctionPointer<PFNGLTEXSUBIMAGE1DPROC>(loader.Invoke("glTexSubImage1D"));
|
|
glTexSubImage2D = Marshal.GetDelegateForFunctionPointer<PFNGLTEXSUBIMAGE2DPROC>(loader.Invoke("glTexSubImage2D"));
|
|
glBindTexture = Marshal.GetDelegateForFunctionPointer<PFNGLBINDTEXTUREPROC>(loader.Invoke("glBindTexture"));
|
|
glDeleteTextures = Marshal.GetDelegateForFunctionPointer<PFNGLDELETETEXTURESPROC>(loader.Invoke("glDeleteTextures"));
|
|
glGenTextures = Marshal.GetDelegateForFunctionPointer<PFNGLGENTEXTURESPROC>(loader.Invoke("glGenTextures"));
|
|
glIsTexture = Marshal.GetDelegateForFunctionPointer<PFNGLISTEXTUREPROC>(loader.Invoke("glIsTexture"));
|
|
glDrawRangeElements = Marshal.GetDelegateForFunctionPointer<PFNGLDRAWRANGEELEMENTSPROC>(loader.Invoke("glDrawRangeElements"));
|
|
glTexImage3D = Marshal.GetDelegateForFunctionPointer<PFNGLTEXIMAGE3DPROC>(loader.Invoke("glTexImage3D"));
|
|
glTexSubImage3D = Marshal.GetDelegateForFunctionPointer<PFNGLTEXSUBIMAGE3DPROC>(loader.Invoke("glTexSubImage3D"));
|
|
glCopyTexSubImage3D = Marshal.GetDelegateForFunctionPointer<PFNGLCOPYTEXSUBIMAGE3DPROC>(loader.Invoke("glCopyTexSubImage3D"));
|
|
glActiveTexture = Marshal.GetDelegateForFunctionPointer<PFNGLACTIVETEXTUREPROC>(loader.Invoke("glActiveTexture"));
|
|
glSampleCoverage = Marshal.GetDelegateForFunctionPointer<PFNGLSAMPLECOVERAGEPROC>(loader.Invoke("glSampleCoverage"));
|
|
glCompressedTexImage3D = Marshal.GetDelegateForFunctionPointer<PFNGLCOMPRESSEDTEXIMAGE3DPROC>(loader.Invoke("glCompressedTexImage3D"));
|
|
glCompressedTexImage2D = Marshal.GetDelegateForFunctionPointer<PFNGLCOMPRESSEDTEXIMAGE2DPROC>(loader.Invoke("glCompressedTexImage2D"));
|
|
glCompressedTexImage1D = Marshal.GetDelegateForFunctionPointer<PFNGLCOMPRESSEDTEXIMAGE1DPROC>(loader.Invoke("glCompressedTexImage1D"));
|
|
glCompressedTexSubImage3D = Marshal.GetDelegateForFunctionPointer<PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC>(loader.Invoke("glCompressedTexSubImage3D"));
|
|
glCompressedTexSubImage2D = Marshal.GetDelegateForFunctionPointer<PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC>(loader.Invoke("glCompressedTexSubImage2D"));
|
|
glCompressedTexSubImage1D = Marshal.GetDelegateForFunctionPointer<PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC>(loader.Invoke("glCompressedTexSubImage1D"));
|
|
glGetCompressedTexImage = Marshal.GetDelegateForFunctionPointer<PFNGLGETCOMPRESSEDTEXIMAGEPROC>(loader.Invoke("glGetCompressedTexImage"));
|
|
glBlendFuncSeparate = Marshal.GetDelegateForFunctionPointer<PFNGLBLENDFUNCSEPARATEPROC>(loader.Invoke("glBlendFuncSeparate"));
|
|
glMultiDrawArrays = Marshal.GetDelegateForFunctionPointer<PFNGLMULTIDRAWARRAYSPROC>(loader.Invoke("glMultiDrawArrays"));
|
|
glMultiDrawElements = Marshal.GetDelegateForFunctionPointer<PFNGLMULTIDRAWELEMENTSPROC>(loader.Invoke("glMultiDrawElements"));
|
|
glPointParameterf = Marshal.GetDelegateForFunctionPointer<PFNGLPOINTPARAMETERFPROC>(loader.Invoke("glPointParameterf"));
|
|
glPointParameterfv = Marshal.GetDelegateForFunctionPointer<PFNGLPOINTPARAMETERFVPROC>(loader.Invoke("glPointParameterfv"));
|
|
glPointParameteri = Marshal.GetDelegateForFunctionPointer<PFNGLPOINTPARAMETERIPROC>(loader.Invoke("glPointParameteri"));
|
|
glPointParameteriv = Marshal.GetDelegateForFunctionPointer<PFNGLPOINTPARAMETERIVPROC>(loader.Invoke("glPointParameteriv"));
|
|
glVertexAttribP4uiv = Marshal.GetDelegateForFunctionPointer<PFNGLVERTEXATTRIBP4UIVPROC>(loader.Invoke("glVertexAttribP4uiv"));
|
|
glVertexAttribP4ui = Marshal.GetDelegateForFunctionPointer<PFNGLVERTEXATTRIBP4UIPROC>(loader.Invoke("glVertexAttribP4ui"));
|
|
glVertexAttribP3uiv = Marshal.GetDelegateForFunctionPointer<PFNGLVERTEXATTRIBP3UIVPROC>(loader.Invoke("glVertexAttribP3uiv"));
|
|
glVertexAttribP3ui = Marshal.GetDelegateForFunctionPointer<PFNGLVERTEXATTRIBP3UIPROC>(loader.Invoke("glVertexAttribP3ui"));
|
|
glVertexAttribP2uiv = Marshal.GetDelegateForFunctionPointer<PFNGLVERTEXATTRIBP2UIVPROC>(loader.Invoke("glVertexAttribP2uiv"));
|
|
glVertexAttribP2ui = Marshal.GetDelegateForFunctionPointer<PFNGLVERTEXATTRIBP2UIPROC>(loader.Invoke("glVertexAttribP2ui"));
|
|
glVertexAttribP1uiv = Marshal.GetDelegateForFunctionPointer<PFNGLVERTEXATTRIBP1UIVPROC>(loader.Invoke("glVertexAttribP1uiv"));
|
|
glVertexAttribP1ui = Marshal.GetDelegateForFunctionPointer<PFNGLVERTEXATTRIBP1UIPROC>(loader.Invoke("glVertexAttribP1ui"));
|
|
glVertexAttribDivisor = Marshal.GetDelegateForFunctionPointer<PFNGLVERTEXATTRIBDIVISORPROC>(loader.Invoke("glVertexAttribDivisor"));
|
|
glGetQueryObjectui64v = Marshal.GetDelegateForFunctionPointer<PFNGLGETQUERYOBJECTUI64VPROC>(loader.Invoke("glGetQueryObjectui64v"));
|
|
glGetQueryObjecti64v = Marshal.GetDelegateForFunctionPointer<PFNGLGETQUERYOBJECTI64VPROC>(loader.Invoke("glGetQueryObjecti64v"));
|
|
glQueryCounter = Marshal.GetDelegateForFunctionPointer<PFNGLQUERYCOUNTERPROC>(loader.Invoke("glQueryCounter"));
|
|
glGetSamplerParameterIuiv = Marshal.GetDelegateForFunctionPointer<PFNGLGETSAMPLERPARAMETERIUIVPROC>(loader.Invoke("glGetSamplerParameterIuiv"));
|
|
glGetSamplerParameterfv = Marshal.GetDelegateForFunctionPointer<PFNGLGETSAMPLERPARAMETERFVPROC>(loader.Invoke("glGetSamplerParameterfv"));
|
|
glGetSamplerParameterIiv = Marshal.GetDelegateForFunctionPointer<PFNGLGETSAMPLERPARAMETERIIVPROC>(loader.Invoke("glGetSamplerParameterIiv"));
|
|
glGetSamplerParameteriv = Marshal.GetDelegateForFunctionPointer<PFNGLGETSAMPLERPARAMETERIVPROC>(loader.Invoke("glGetSamplerParameteriv"));
|
|
glSamplerParameterIuiv = Marshal.GetDelegateForFunctionPointer<PFNGLSAMPLERPARAMETERIUIVPROC>(loader.Invoke("glSamplerParameterIuiv"));
|
|
glSamplerParameterIiv = Marshal.GetDelegateForFunctionPointer<PFNGLSAMPLERPARAMETERIIVPROC>(loader.Invoke("glSamplerParameterIiv"));
|
|
glSamplerParameterfv = Marshal.GetDelegateForFunctionPointer<PFNGLSAMPLERPARAMETERFVPROC>(loader.Invoke("glSamplerParameterfv"));
|
|
glSamplerParameterf = Marshal.GetDelegateForFunctionPointer<PFNGLSAMPLERPARAMETERFPROC>(loader.Invoke("glSamplerParameterf"));
|
|
glSamplerParameteriv = Marshal.GetDelegateForFunctionPointer<PFNGLSAMPLERPARAMETERIVPROC>(loader.Invoke("glSamplerParameteriv"));
|
|
glSamplerParameteri = Marshal.GetDelegateForFunctionPointer<PFNGLSAMPLERPARAMETERIPROC>(loader.Invoke("glSamplerParameteri"));
|
|
glBindSampler = Marshal.GetDelegateForFunctionPointer<PFNGLBINDSAMPLERPROC>(loader.Invoke("glBindSampler"));
|
|
glIsSampler = Marshal.GetDelegateForFunctionPointer<PFNGLISSAMPLERPROC>(loader.Invoke("glIsSampler"));
|
|
glDeleteSamplers = Marshal.GetDelegateForFunctionPointer<PFNGLDELETESAMPLERSPROC>(loader.Invoke("glDeleteSamplers"));
|
|
glGenSamplers = Marshal.GetDelegateForFunctionPointer<PFNGLGENSAMPLERSPROC>(loader.Invoke("glGenSamplers"));
|
|
glGetFragDataIndex = Marshal.GetDelegateForFunctionPointer<PFNGLGETFRAGDATAINDEXPROC>(loader.Invoke("glGetFragDataIndex"));
|
|
glBindFragDataLocationIndexed = Marshal.GetDelegateForFunctionPointer<PFNGLBINDFRAGDATALOCATIONINDEXEDPROC>(loader.Invoke("glBindFragDataLocationIndexed"));
|
|
glBlendColor = Marshal.GetDelegateForFunctionPointer<PFNGLBLENDCOLORPROC>(loader.Invoke("glBlendColor"));
|
|
glBlendEquation = Marshal.GetDelegateForFunctionPointer<PFNGLBLENDEQUATIONPROC>(loader.Invoke("glBlendEquation"));
|
|
glGenQueries = Marshal.GetDelegateForFunctionPointer<PFNGLGENQUERIESPROC>(loader.Invoke("glGenQueries"));
|
|
glDeleteQueries = Marshal.GetDelegateForFunctionPointer<PFNGLDELETEQUERIESPROC>(loader.Invoke("glDeleteQueries"));
|
|
glIsQuery = Marshal.GetDelegateForFunctionPointer<PFNGLISQUERYPROC>(loader.Invoke("glIsQuery"));
|
|
glBeginQuery = Marshal.GetDelegateForFunctionPointer<PFNGLBEGINQUERYPROC>(loader.Invoke("glBeginQuery"));
|
|
glEndQuery = Marshal.GetDelegateForFunctionPointer<PFNGLENDQUERYPROC>(loader.Invoke("glEndQuery"));
|
|
glGetQueryiv = Marshal.GetDelegateForFunctionPointer<PFNGLGETQUERYIVPROC>(loader.Invoke("glGetQueryiv"));
|
|
glGetQueryObjectiv = Marshal.GetDelegateForFunctionPointer<PFNGLGETQUERYOBJECTIVPROC>(loader.Invoke("glGetQueryObjectiv"));
|
|
glGetQueryObjectuiv = Marshal.GetDelegateForFunctionPointer<PFNGLGETQUERYOBJECTUIVPROC>(loader.Invoke("glGetQueryObjectuiv"));
|
|
glBindBuffer = Marshal.GetDelegateForFunctionPointer<PFNGLBINDBUFFERPROC>(loader.Invoke("glBindBuffer"));
|
|
glDeleteBuffers = Marshal.GetDelegateForFunctionPointer<PFNGLDELETEBUFFERSPROC>(loader.Invoke("glDeleteBuffers"));
|
|
glGenBuffers = Marshal.GetDelegateForFunctionPointer<PFNGLGENBUFFERSPROC>(loader.Invoke("glGenBuffers"));
|
|
glIsBuffer = Marshal.GetDelegateForFunctionPointer<PFNGLISBUFFERPROC>(loader.Invoke("glIsBuffer"));
|
|
glBufferData = Marshal.GetDelegateForFunctionPointer<PFNGLBUFFERDATAPROC>(loader.Invoke("glBufferData"));
|
|
glBufferSubData = Marshal.GetDelegateForFunctionPointer<PFNGLBUFFERSUBDATAPROC>(loader.Invoke("glBufferSubData"));
|
|
glGetBufferSubData = Marshal.GetDelegateForFunctionPointer<PFNGLGETBUFFERSUBDATAPROC>(loader.Invoke("glGetBufferSubData"));
|
|
glMapBuffer = Marshal.GetDelegateForFunctionPointer<PFNGLMAPBUFFERPROC>(loader.Invoke("glMapBuffer"));
|
|
glUnmapBuffer = Marshal.GetDelegateForFunctionPointer<PFNGLUNMAPBUFFERPROC>(loader.Invoke("glUnmapBuffer"));
|
|
glGetBufferParameteriv = Marshal.GetDelegateForFunctionPointer<PFNGLGETBUFFERPARAMETERIVPROC>(loader.Invoke("glGetBufferParameteriv"));
|
|
glGetBufferPointerv = Marshal.GetDelegateForFunctionPointer<PFNGLGETBUFFERPOINTERVPROC>(loader.Invoke("glGetBufferPointerv"));
|
|
glBlendEquationSeparate = Marshal.GetDelegateForFunctionPointer<PFNGLBLENDEQUATIONSEPARATEPROC>(loader.Invoke("glBlendEquationSeparate"));
|
|
glDrawBuffers = Marshal.GetDelegateForFunctionPointer<PFNGLDRAWBUFFERSPROC>(loader.Invoke("glDrawBuffers"));
|
|
glStencilOpSeparate = Marshal.GetDelegateForFunctionPointer<PFNGLSTENCILOPSEPARATEPROC>(loader.Invoke("glStencilOpSeparate"));
|
|
glStencilFuncSeparate = Marshal.GetDelegateForFunctionPointer<PFNGLSTENCILFUNCSEPARATEPROC>(loader.Invoke("glStencilFuncSeparate"));
|
|
glStencilMaskSeparate = Marshal.GetDelegateForFunctionPointer<PFNGLSTENCILMASKSEPARATEPROC>(loader.Invoke("glStencilMaskSeparate"));
|
|
glAttachShader = Marshal.GetDelegateForFunctionPointer<PFNGLATTACHSHADERPROC>(loader.Invoke("glAttachShader"));
|
|
glBindAttribLocation = Marshal.GetDelegateForFunctionPointer<PFNGLBINDATTRIBLOCATIONPROC>(loader.Invoke("glBindAttribLocation"));
|
|
glCompileShader = Marshal.GetDelegateForFunctionPointer<PFNGLCOMPILESHADERPROC>(loader.Invoke("glCompileShader"));
|
|
glCreateProgram = Marshal.GetDelegateForFunctionPointer<PFNGLCREATEPROGRAMPROC>(loader.Invoke("glCreateProgram"));
|
|
glCreateShader = Marshal.GetDelegateForFunctionPointer<PFNGLCREATESHADERPROC>(loader.Invoke("glCreateShader"));
|
|
glDeleteProgram = Marshal.GetDelegateForFunctionPointer<PFNGLDELETEPROGRAMPROC>(loader.Invoke("glDeleteProgram"));
|
|
glDeleteShader = Marshal.GetDelegateForFunctionPointer<PFNGLDELETESHADERPROC>(loader.Invoke("glDeleteShader"));
|
|
glDetachShader = Marshal.GetDelegateForFunctionPointer<PFNGLDETACHSHADERPROC>(loader.Invoke("glDetachShader"));
|
|
glDisableVertexAttribArray = Marshal.GetDelegateForFunctionPointer<PFNGLDISABLEVERTEXATTRIBARRAYPROC>(loader.Invoke("glDisableVertexAttribArray"));
|
|
glEnableVertexAttribArray = Marshal.GetDelegateForFunctionPointer<PFNGLENABLEVERTEXATTRIBARRAYPROC>(loader.Invoke("glEnableVertexAttribArray"));
|
|
glGetActiveAttrib = Marshal.GetDelegateForFunctionPointer<PFNGLGETACTIVEATTRIBPROC>(loader.Invoke("glGetActiveAttrib"));
|
|
glGetActiveUniform = Marshal.GetDelegateForFunctionPointer<PFNGLGETACTIVEUNIFORMPROC>(loader.Invoke("glGetActiveUniform"));
|
|
glGetAttachedShaders = Marshal.GetDelegateForFunctionPointer<PFNGLGETATTACHEDSHADERSPROC>(loader.Invoke("glGetAttachedShaders"));
|
|
glGetAttribLocation = Marshal.GetDelegateForFunctionPointer<PFNGLGETATTRIBLOCATIONPROC>(loader.Invoke("glGetAttribLocation"));
|
|
glGetProgramiv = Marshal.GetDelegateForFunctionPointer<PFNGLGETPROGRAMIVPROC>(loader.Invoke("glGetProgramiv"));
|
|
glGetProgramInfoLog = Marshal.GetDelegateForFunctionPointer<PFNGLGETPROGRAMINFOLOGPROC>(loader.Invoke("glGetProgramInfoLog"));
|
|
glGetShaderiv = Marshal.GetDelegateForFunctionPointer<PFNGLGETSHADERIVPROC>(loader.Invoke("glGetShaderiv"));
|
|
glGetShaderInfoLog = Marshal.GetDelegateForFunctionPointer<PFNGLGETSHADERINFOLOGPROC>(loader.Invoke("glGetShaderInfoLog"));
|
|
glGetShaderSource = Marshal.GetDelegateForFunctionPointer<PFNGLGETSHADERSOURCEPROC>(loader.Invoke("glGetShaderSource"));
|
|
glGetUniformLocation = Marshal.GetDelegateForFunctionPointer<PFNGLGETUNIFORMLOCATIONPROC>(loader.Invoke("glGetUniformLocation"));
|
|
glGetUniformfv = Marshal.GetDelegateForFunctionPointer<PFNGLGETUNIFORMFVPROC>(loader.Invoke("glGetUniformfv"));
|
|
glGetUniformiv = Marshal.GetDelegateForFunctionPointer<PFNGLGETUNIFORMIVPROC>(loader.Invoke("glGetUniformiv"));
|
|
glGetVertexAttribdv = Marshal.GetDelegateForFunctionPointer<PFNGLGETVERTEXATTRIBDVPROC>(loader.Invoke("glGetVertexAttribdv"));
|
|
glGetVertexAttribfv = Marshal.GetDelegateForFunctionPointer<PFNGLGETVERTEXATTRIBFVPROC>(loader.Invoke("glGetVertexAttribfv"));
|
|
glGetVertexAttribiv = Marshal.GetDelegateForFunctionPointer<PFNGLGETVERTEXATTRIBIVPROC>(loader.Invoke("glGetVertexAttribiv"));
|
|
glGetVertexAttribPointerv = Marshal.GetDelegateForFunctionPointer<PFNGLGETVERTEXATTRIBPOINTERVPROC>(loader.Invoke("glGetVertexAttribPointerv"));
|
|
glIsProgram = Marshal.GetDelegateForFunctionPointer<PFNGLISPROGRAMPROC>(loader.Invoke("glIsProgram"));
|
|
glIsShader = Marshal.GetDelegateForFunctionPointer<PFNGLISSHADERPROC>(loader.Invoke("glIsShader"));
|
|
glLinkProgram = Marshal.GetDelegateForFunctionPointer<PFNGLLINKPROGRAMPROC>(loader.Invoke("glLinkProgram"));
|
|
glShaderSource = Marshal.GetDelegateForFunctionPointer<PFNGLSHADERSOURCEPROC>(loader.Invoke("glShaderSource"));
|
|
glUseProgram = Marshal.GetDelegateForFunctionPointer<PFNGLUSEPROGRAMPROC>(loader.Invoke("glUseProgram"));
|
|
glUniform1f = Marshal.GetDelegateForFunctionPointer<PFNGLUNIFORM1FPROC>(loader.Invoke("glUniform1f"));
|
|
glUniform2f = Marshal.GetDelegateForFunctionPointer<PFNGLUNIFORM2FPROC>(loader.Invoke("glUniform2f"));
|
|
glUniform3f = Marshal.GetDelegateForFunctionPointer<PFNGLUNIFORM3FPROC>(loader.Invoke("glUniform3f"));
|
|
glUniform4f = Marshal.GetDelegateForFunctionPointer<PFNGLUNIFORM4FPROC>(loader.Invoke("glUniform4f"));
|
|
glUniform1i = Marshal.GetDelegateForFunctionPointer<PFNGLUNIFORM1IPROC>(loader.Invoke("glUniform1i"));
|
|
glUniform2i = Marshal.GetDelegateForFunctionPointer<PFNGLUNIFORM2IPROC>(loader.Invoke("glUniform2i"));
|
|
glUniform3i = Marshal.GetDelegateForFunctionPointer<PFNGLUNIFORM3IPROC>(loader.Invoke("glUniform3i"));
|
|
glUniform4i = Marshal.GetDelegateForFunctionPointer<PFNGLUNIFORM4IPROC>(loader.Invoke("glUniform4i"));
|
|
glUniform1fv = Marshal.GetDelegateForFunctionPointer<PFNGLUNIFORM1FVPROC>(loader.Invoke("glUniform1fv"));
|
|
glUniform2fv = Marshal.GetDelegateForFunctionPointer<PFNGLUNIFORM2FVPROC>(loader.Invoke("glUniform2fv"));
|
|
glUniform3fv = Marshal.GetDelegateForFunctionPointer<PFNGLUNIFORM3FVPROC>(loader.Invoke("glUniform3fv"));
|
|
glUniform4fv = Marshal.GetDelegateForFunctionPointer<PFNGLUNIFORM4FVPROC>(loader.Invoke("glUniform4fv"));
|
|
glUniform1iv = Marshal.GetDelegateForFunctionPointer<PFNGLUNIFORM1IVPROC>(loader.Invoke("glUniform1iv"));
|
|
glUniform2iv = Marshal.GetDelegateForFunctionPointer<PFNGLUNIFORM2IVPROC>(loader.Invoke("glUniform2iv"));
|
|
glUniform3iv = Marshal.GetDelegateForFunctionPointer<PFNGLUNIFORM3IVPROC>(loader.Invoke("glUniform3iv"));
|
|
glUniform4iv = Marshal.GetDelegateForFunctionPointer<PFNGLUNIFORM4IVPROC>(loader.Invoke("glUniform4iv"));
|
|
glUniformMatrix2fv = Marshal.GetDelegateForFunctionPointer<PFNGLUNIFORMMATRIX2FVPROC>(loader.Invoke("glUniformMatrix2fv"));
|
|
glUniformMatrix3fv = Marshal.GetDelegateForFunctionPointer<PFNGLUNIFORMMATRIX3FVPROC>(loader.Invoke("glUniformMatrix3fv"));
|
|
glUniformMatrix4fv = Marshal.GetDelegateForFunctionPointer<PFNGLUNIFORMMATRIX4FVPROC>(loader.Invoke("glUniformMatrix4fv"));
|
|
glValidateProgram = Marshal.GetDelegateForFunctionPointer<PFNGLVALIDATEPROGRAMPROC>(loader.Invoke("glValidateProgram"));
|
|
glVertexAttrib1d = Marshal.GetDelegateForFunctionPointer<PFNGLVERTEXATTRIB1DPROC>(loader.Invoke("glVertexAttrib1d"));
|
|
glVertexAttrib1dv = Marshal.GetDelegateForFunctionPointer<PFNGLVERTEXATTRIB1DVPROC>(loader.Invoke("glVertexAttrib1dv"));
|
|
glVertexAttrib1f = Marshal.GetDelegateForFunctionPointer<PFNGLVERTEXATTRIB1FPROC>(loader.Invoke("glVertexAttrib1f"));
|
|
glVertexAttrib1fv = Marshal.GetDelegateForFunctionPointer<PFNGLVERTEXATTRIB1FVPROC>(loader.Invoke("glVertexAttrib1fv"));
|
|
glVertexAttrib1s = Marshal.GetDelegateForFunctionPointer<PFNGLVERTEXATTRIB1SPROC>(loader.Invoke("glVertexAttrib1s"));
|
|
glVertexAttrib1sv = Marshal.GetDelegateForFunctionPointer<PFNGLVERTEXATTRIB1SVPROC>(loader.Invoke("glVertexAttrib1sv"));
|
|
glVertexAttrib2d = Marshal.GetDelegateForFunctionPointer<PFNGLVERTEXATTRIB2DPROC>(loader.Invoke("glVertexAttrib2d"));
|
|
glVertexAttrib2dv = Marshal.GetDelegateForFunctionPointer<PFNGLVERTEXATTRIB2DVPROC>(loader.Invoke("glVertexAttrib2dv"));
|
|
glVertexAttrib2f = Marshal.GetDelegateForFunctionPointer<PFNGLVERTEXATTRIB2FPROC>(loader.Invoke("glVertexAttrib2f"));
|
|
glVertexAttrib2fv = Marshal.GetDelegateForFunctionPointer<PFNGLVERTEXATTRIB2FVPROC>(loader.Invoke("glVertexAttrib2fv"));
|
|
glVertexAttrib2s = Marshal.GetDelegateForFunctionPointer<PFNGLVERTEXATTRIB2SPROC>(loader.Invoke("glVertexAttrib2s"));
|
|
glVertexAttrib2sv = Marshal.GetDelegateForFunctionPointer<PFNGLVERTEXATTRIB2SVPROC>(loader.Invoke("glVertexAttrib2sv"));
|
|
glVertexAttrib3d = Marshal.GetDelegateForFunctionPointer<PFNGLVERTEXATTRIB3DPROC>(loader.Invoke("glVertexAttrib3d"));
|
|
glVertexAttrib3dv = Marshal.GetDelegateForFunctionPointer<PFNGLVERTEXATTRIB3DVPROC>(loader.Invoke("glVertexAttrib3dv"));
|
|
glVertexAttrib3f = Marshal.GetDelegateForFunctionPointer<PFNGLVERTEXATTRIB3FPROC>(loader.Invoke("glVertexAttrib3f"));
|
|
glVertexAttrib3fv = Marshal.GetDelegateForFunctionPointer<PFNGLVERTEXATTRIB3FVPROC>(loader.Invoke("glVertexAttrib3fv"));
|
|
glVertexAttrib3s = Marshal.GetDelegateForFunctionPointer<PFNGLVERTEXATTRIB3SPROC>(loader.Invoke("glVertexAttrib3s"));
|
|
glVertexAttrib3sv = Marshal.GetDelegateForFunctionPointer<PFNGLVERTEXATTRIB3SVPROC>(loader.Invoke("glVertexAttrib3sv"));
|
|
glVertexAttrib4Nbv = Marshal.GetDelegateForFunctionPointer<PFNGLVERTEXATTRIB4NBVPROC>(loader.Invoke("glVertexAttrib4Nbv"));
|
|
glVertexAttrib4Niv = Marshal.GetDelegateForFunctionPointer<PFNGLVERTEXATTRIB4NIVPROC>(loader.Invoke("glVertexAttrib4Niv"));
|
|
glVertexAttrib4Nsv = Marshal.GetDelegateForFunctionPointer<PFNGLVERTEXATTRIB4NSVPROC>(loader.Invoke("glVertexAttrib4Nsv"));
|
|
glVertexAttrib4Nub = Marshal.GetDelegateForFunctionPointer<PFNGLVERTEXATTRIB4NUBPROC>(loader.Invoke("glVertexAttrib4Nub"));
|
|
glVertexAttrib4Nubv = Marshal.GetDelegateForFunctionPointer<PFNGLVERTEXATTRIB4NUBVPROC>(loader.Invoke("glVertexAttrib4Nubv"));
|
|
glVertexAttrib4Nuiv = Marshal.GetDelegateForFunctionPointer<PFNGLVERTEXATTRIB4NUIVPROC>(loader.Invoke("glVertexAttrib4Nuiv"));
|
|
glVertexAttrib4Nusv = Marshal.GetDelegateForFunctionPointer<PFNGLVERTEXATTRIB4NUSVPROC>(loader.Invoke("glVertexAttrib4Nusv"));
|
|
glVertexAttrib4bv = Marshal.GetDelegateForFunctionPointer<PFNGLVERTEXATTRIB4BVPROC>(loader.Invoke("glVertexAttrib4bv"));
|
|
glVertexAttrib4d = Marshal.GetDelegateForFunctionPointer<PFNGLVERTEXATTRIB4DPROC>(loader.Invoke("glVertexAttrib4d"));
|
|
glVertexAttrib4dv = Marshal.GetDelegateForFunctionPointer<PFNGLVERTEXATTRIB4DVPROC>(loader.Invoke("glVertexAttrib4dv"));
|
|
glVertexAttrib4f = Marshal.GetDelegateForFunctionPointer<PFNGLVERTEXATTRIB4FPROC>(loader.Invoke("glVertexAttrib4f"));
|
|
glVertexAttrib4fv = Marshal.GetDelegateForFunctionPointer<PFNGLVERTEXATTRIB4FVPROC>(loader.Invoke("glVertexAttrib4fv"));
|
|
glVertexAttrib4iv = Marshal.GetDelegateForFunctionPointer<PFNGLVERTEXATTRIB4IVPROC>(loader.Invoke("glVertexAttrib4iv"));
|
|
glVertexAttrib4s = Marshal.GetDelegateForFunctionPointer<PFNGLVERTEXATTRIB4SPROC>(loader.Invoke("glVertexAttrib4s"));
|
|
glVertexAttrib4sv = Marshal.GetDelegateForFunctionPointer<PFNGLVERTEXATTRIB4SVPROC>(loader.Invoke("glVertexAttrib4sv"));
|
|
glVertexAttrib4ubv = Marshal.GetDelegateForFunctionPointer<PFNGLVERTEXATTRIB4UBVPROC>(loader.Invoke("glVertexAttrib4ubv"));
|
|
glVertexAttrib4uiv = Marshal.GetDelegateForFunctionPointer<PFNGLVERTEXATTRIB4UIVPROC>(loader.Invoke("glVertexAttrib4uiv"));
|
|
glVertexAttrib4usv = Marshal.GetDelegateForFunctionPointer<PFNGLVERTEXATTRIB4USVPROC>(loader.Invoke("glVertexAttrib4usv"));
|
|
glVertexAttribPointer = Marshal.GetDelegateForFunctionPointer<PFNGLVERTEXATTRIBPOINTERPROC>(loader.Invoke("glVertexAttribPointer"));
|
|
glUniformMatrix2x3fv = Marshal.GetDelegateForFunctionPointer<PFNGLUNIFORMMATRIX2X3FVPROC>(loader.Invoke("glUniformMatrix2x3fv"));
|
|
glUniformMatrix3x2fv = Marshal.GetDelegateForFunctionPointer<PFNGLUNIFORMMATRIX3X2FVPROC>(loader.Invoke("glUniformMatrix3x2fv"));
|
|
glUniformMatrix2x4fv = Marshal.GetDelegateForFunctionPointer<PFNGLUNIFORMMATRIX2X4FVPROC>(loader.Invoke("glUniformMatrix2x4fv"));
|
|
glUniformMatrix4x2fv = Marshal.GetDelegateForFunctionPointer<PFNGLUNIFORMMATRIX4X2FVPROC>(loader.Invoke("glUniformMatrix4x2fv"));
|
|
glUniformMatrix3x4fv = Marshal.GetDelegateForFunctionPointer<PFNGLUNIFORMMATRIX3X4FVPROC>(loader.Invoke("glUniformMatrix3x4fv"));
|
|
glUniformMatrix4x3fv = Marshal.GetDelegateForFunctionPointer<PFNGLUNIFORMMATRIX4X3FVPROC>(loader.Invoke("glUniformMatrix4x3fv"));
|
|
glColorMaski = Marshal.GetDelegateForFunctionPointer<PFNGLCOLORMASKIPROC>(loader.Invoke("glColorMaski"));
|
|
glGetBooleani_v = Marshal.GetDelegateForFunctionPointer<PFNGLGETBOOLEANI_VPROC>(loader.Invoke("glGetBooleani_v"));
|
|
glGetIntegeri_v = Marshal.GetDelegateForFunctionPointer<PFNGLGETINTEGERI_VPROC>(loader.Invoke("glGetIntegeri_v"));
|
|
glEnablei = Marshal.GetDelegateForFunctionPointer<PFNGLENABLEIPROC>(loader.Invoke("glEnablei"));
|
|
glDisablei = Marshal.GetDelegateForFunctionPointer<PFNGLDISABLEIPROC>(loader.Invoke("glDisablei"));
|
|
glIsEnabledi = Marshal.GetDelegateForFunctionPointer<PFNGLISENABLEDIPROC>(loader.Invoke("glIsEnabledi"));
|
|
glBeginTransformFeedback = Marshal.GetDelegateForFunctionPointer<PFNGLBEGINTRANSFORMFEEDBACKPROC>(loader.Invoke("glBeginTransformFeedback"));
|
|
glEndTransformFeedback = Marshal.GetDelegateForFunctionPointer<PFNGLENDTRANSFORMFEEDBACKPROC>(loader.Invoke("glEndTransformFeedback"));
|
|
glBindBufferRange = Marshal.GetDelegateForFunctionPointer<PFNGLBINDBUFFERRANGEPROC>(loader.Invoke("glBindBufferRange"));
|
|
glBindBufferBase = Marshal.GetDelegateForFunctionPointer<PFNGLBINDBUFFERBASEPROC>(loader.Invoke("glBindBufferBase"));
|
|
glTransformFeedbackVaryings = Marshal.GetDelegateForFunctionPointer<PFNGLTRANSFORMFEEDBACKVARYINGSPROC>(loader.Invoke("glTransformFeedbackVaryings"));
|
|
glGetTransformFeedbackVarying = Marshal.GetDelegateForFunctionPointer<PFNGLGETTRANSFORMFEEDBACKVARYINGPROC>(loader.Invoke("glGetTransformFeedbackVarying"));
|
|
glClampColor = Marshal.GetDelegateForFunctionPointer<PFNGLCLAMPCOLORPROC>(loader.Invoke("glClampColor"));
|
|
glBeginConditionalRender = Marshal.GetDelegateForFunctionPointer<PFNGLBEGINCONDITIONALRENDERPROC>(loader.Invoke("glBeginConditionalRender"));
|
|
glEndConditionalRender = Marshal.GetDelegateForFunctionPointer<PFNGLENDCONDITIONALRENDERPROC>(loader.Invoke("glEndConditionalRender"));
|
|
glVertexAttribIPointer = Marshal.GetDelegateForFunctionPointer<PFNGLVERTEXATTRIBIPOINTERPROC>(loader.Invoke("glVertexAttribIPointer"));
|
|
glGetVertexAttribIiv = Marshal.GetDelegateForFunctionPointer<PFNGLGETVERTEXATTRIBIIVPROC>(loader.Invoke("glGetVertexAttribIiv"));
|
|
glGetVertexAttribIuiv = Marshal.GetDelegateForFunctionPointer<PFNGLGETVERTEXATTRIBIUIVPROC>(loader.Invoke("glGetVertexAttribIuiv"));
|
|
glVertexAttribI1i = Marshal.GetDelegateForFunctionPointer<PFNGLVERTEXATTRIBI1IPROC>(loader.Invoke("glVertexAttribI1i"));
|
|
glVertexAttribI2i = Marshal.GetDelegateForFunctionPointer<PFNGLVERTEXATTRIBI2IPROC>(loader.Invoke("glVertexAttribI2i"));
|
|
glVertexAttribI3i = Marshal.GetDelegateForFunctionPointer<PFNGLVERTEXATTRIBI3IPROC>(loader.Invoke("glVertexAttribI3i"));
|
|
glVertexAttribI4i = Marshal.GetDelegateForFunctionPointer<PFNGLVERTEXATTRIBI4IPROC>(loader.Invoke("glVertexAttribI4i"));
|
|
glVertexAttribI1ui = Marshal.GetDelegateForFunctionPointer<PFNGLVERTEXATTRIBI1UIPROC>(loader.Invoke("glVertexAttribI1ui"));
|
|
glVertexAttribI2ui = Marshal.GetDelegateForFunctionPointer<PFNGLVERTEXATTRIBI2UIPROC>(loader.Invoke("glVertexAttribI2ui"));
|
|
glVertexAttribI3ui = Marshal.GetDelegateForFunctionPointer<PFNGLVERTEXATTRIBI3UIPROC>(loader.Invoke("glVertexAttribI3ui"));
|
|
glVertexAttribI4ui = Marshal.GetDelegateForFunctionPointer<PFNGLVERTEXATTRIBI4UIPROC>(loader.Invoke("glVertexAttribI4ui"));
|
|
glVertexAttribI1iv = Marshal.GetDelegateForFunctionPointer<PFNGLVERTEXATTRIBI1IVPROC>(loader.Invoke("glVertexAttribI1iv"));
|
|
glVertexAttribI2iv = Marshal.GetDelegateForFunctionPointer<PFNGLVERTEXATTRIBI2IVPROC>(loader.Invoke("glVertexAttribI2iv"));
|
|
glVertexAttribI3iv = Marshal.GetDelegateForFunctionPointer<PFNGLVERTEXATTRIBI3IVPROC>(loader.Invoke("glVertexAttribI3iv"));
|
|
glVertexAttribI4iv = Marshal.GetDelegateForFunctionPointer<PFNGLVERTEXATTRIBI4IVPROC>(loader.Invoke("glVertexAttribI4iv"));
|
|
glVertexAttribI1uiv = Marshal.GetDelegateForFunctionPointer<PFNGLVERTEXATTRIBI1UIVPROC>(loader.Invoke("glVertexAttribI1uiv"));
|
|
glVertexAttribI2uiv = Marshal.GetDelegateForFunctionPointer<PFNGLVERTEXATTRIBI2UIVPROC>(loader.Invoke("glVertexAttribI2uiv"));
|
|
glVertexAttribI3uiv = Marshal.GetDelegateForFunctionPointer<PFNGLVERTEXATTRIBI3UIVPROC>(loader.Invoke("glVertexAttribI3uiv"));
|
|
glVertexAttribI4uiv = Marshal.GetDelegateForFunctionPointer<PFNGLVERTEXATTRIBI4UIVPROC>(loader.Invoke("glVertexAttribI4uiv"));
|
|
glVertexAttribI4bv = Marshal.GetDelegateForFunctionPointer<PFNGLVERTEXATTRIBI4BVPROC>(loader.Invoke("glVertexAttribI4bv"));
|
|
glVertexAttribI4sv = Marshal.GetDelegateForFunctionPointer<PFNGLVERTEXATTRIBI4SVPROC>(loader.Invoke("glVertexAttribI4sv"));
|
|
glVertexAttribI4ubv = Marshal.GetDelegateForFunctionPointer<PFNGLVERTEXATTRIBI4UBVPROC>(loader.Invoke("glVertexAttribI4ubv"));
|
|
glVertexAttribI4usv = Marshal.GetDelegateForFunctionPointer<PFNGLVERTEXATTRIBI4USVPROC>(loader.Invoke("glVertexAttribI4usv"));
|
|
glGetUniformuiv = Marshal.GetDelegateForFunctionPointer<PFNGLGETUNIFORMUIVPROC>(loader.Invoke("glGetUniformuiv"));
|
|
glBindFragDataLocation = Marshal.GetDelegateForFunctionPointer<PFNGLBINDFRAGDATALOCATIONPROC>(loader.Invoke("glBindFragDataLocation"));
|
|
glGetFragDataLocation = Marshal.GetDelegateForFunctionPointer<PFNGLGETFRAGDATALOCATIONPROC>(loader.Invoke("glGetFragDataLocation"));
|
|
glUniform1ui = Marshal.GetDelegateForFunctionPointer<PFNGLUNIFORM1UIPROC>(loader.Invoke("glUniform1ui"));
|
|
glUniform2ui = Marshal.GetDelegateForFunctionPointer<PFNGLUNIFORM2UIPROC>(loader.Invoke("glUniform2ui"));
|
|
glUniform3ui = Marshal.GetDelegateForFunctionPointer<PFNGLUNIFORM3UIPROC>(loader.Invoke("glUniform3ui"));
|
|
glUniform4ui = Marshal.GetDelegateForFunctionPointer<PFNGLUNIFORM4UIPROC>(loader.Invoke("glUniform4ui"));
|
|
glUniform1uiv = Marshal.GetDelegateForFunctionPointer<PFNGLUNIFORM1UIVPROC>(loader.Invoke("glUniform1uiv"));
|
|
glUniform2uiv = Marshal.GetDelegateForFunctionPointer<PFNGLUNIFORM2UIVPROC>(loader.Invoke("glUniform2uiv"));
|
|
glUniform3uiv = Marshal.GetDelegateForFunctionPointer<PFNGLUNIFORM3UIVPROC>(loader.Invoke("glUniform3uiv"));
|
|
glUniform4uiv = Marshal.GetDelegateForFunctionPointer<PFNGLUNIFORM4UIVPROC>(loader.Invoke("glUniform4uiv"));
|
|
glTexParameterIiv = Marshal.GetDelegateForFunctionPointer<PFNGLTEXPARAMETERIIVPROC>(loader.Invoke("glTexParameterIiv"));
|
|
glTexParameterIuiv = Marshal.GetDelegateForFunctionPointer<PFNGLTEXPARAMETERIUIVPROC>(loader.Invoke("glTexParameterIuiv"));
|
|
glGetTexParameterIiv = Marshal.GetDelegateForFunctionPointer<PFNGLGETTEXPARAMETERIIVPROC>(loader.Invoke("glGetTexParameterIiv"));
|
|
glGetTexParameterIuiv = Marshal.GetDelegateForFunctionPointer<PFNGLGETTEXPARAMETERIUIVPROC>(loader.Invoke("glGetTexParameterIuiv"));
|
|
glClearBufferiv = Marshal.GetDelegateForFunctionPointer<PFNGLCLEARBUFFERIVPROC>(loader.Invoke("glClearBufferiv"));
|
|
glClearBufferuiv = Marshal.GetDelegateForFunctionPointer<PFNGLCLEARBUFFERUIVPROC>(loader.Invoke("glClearBufferuiv"));
|
|
glClearBufferfv = Marshal.GetDelegateForFunctionPointer<PFNGLCLEARBUFFERFVPROC>(loader.Invoke("glClearBufferfv"));
|
|
glClearBufferfi = Marshal.GetDelegateForFunctionPointer<PFNGLCLEARBUFFERFIPROC>(loader.Invoke("glClearBufferfi"));
|
|
glGetStringi = Marshal.GetDelegateForFunctionPointer<PFNGLGETSTRINGIPROC>(loader.Invoke("glGetStringi"));
|
|
glIsRenderbuffer = Marshal.GetDelegateForFunctionPointer<PFNGLISRENDERBUFFERPROC>(loader.Invoke("glIsRenderbuffer"));
|
|
glBindRenderbuffer = Marshal.GetDelegateForFunctionPointer<PFNGLBINDRENDERBUFFERPROC>(loader.Invoke("glBindRenderbuffer"));
|
|
glDeleteRenderbuffers = Marshal.GetDelegateForFunctionPointer<PFNGLDELETERENDERBUFFERSPROC>(loader.Invoke("glDeleteRenderbuffers"));
|
|
glGenRenderbuffers = Marshal.GetDelegateForFunctionPointer<PFNGLGENRENDERBUFFERSPROC>(loader.Invoke("glGenRenderbuffers"));
|
|
glRenderbufferStorage = Marshal.GetDelegateForFunctionPointer<PFNGLRENDERBUFFERSTORAGEPROC>(loader.Invoke("glRenderbufferStorage"));
|
|
glGetRenderbufferParameteriv = Marshal.GetDelegateForFunctionPointer<PFNGLGETRENDERBUFFERPARAMETERIVPROC>(loader.Invoke("glGetRenderbufferParameteriv"));
|
|
glIsFramebuffer = Marshal.GetDelegateForFunctionPointer<PFNGLISFRAMEBUFFERPROC>(loader.Invoke("glIsFramebuffer"));
|
|
glBindFramebuffer = Marshal.GetDelegateForFunctionPointer<PFNGLBINDFRAMEBUFFERPROC>(loader.Invoke("glBindFramebuffer"));
|
|
glDeleteFramebuffers = Marshal.GetDelegateForFunctionPointer<PFNGLDELETEFRAMEBUFFERSPROC>(loader.Invoke("glDeleteFramebuffers"));
|
|
glGenFramebuffers = Marshal.GetDelegateForFunctionPointer<PFNGLGENFRAMEBUFFERSPROC>(loader.Invoke("glGenFramebuffers"));
|
|
glCheckFramebufferStatus = Marshal.GetDelegateForFunctionPointer<PFNGLCHECKFRAMEBUFFERSTATUSPROC>(loader.Invoke("glCheckFramebufferStatus"));
|
|
glFramebufferTexture1D = Marshal.GetDelegateForFunctionPointer<PFNGLFRAMEBUFFERTEXTURE1DPROC>(loader.Invoke("glFramebufferTexture1D"));
|
|
glFramebufferTexture2D = Marshal.GetDelegateForFunctionPointer<PFNGLFRAMEBUFFERTEXTURE2DPROC>(loader.Invoke("glFramebufferTexture2D"));
|
|
glFramebufferTexture3D = Marshal.GetDelegateForFunctionPointer<PFNGLFRAMEBUFFERTEXTURE3DPROC>(loader.Invoke("glFramebufferTexture3D"));
|
|
glFramebufferRenderbuffer = Marshal.GetDelegateForFunctionPointer<PFNGLFRAMEBUFFERRENDERBUFFERPROC>(loader.Invoke("glFramebufferRenderbuffer"));
|
|
glGetFramebufferAttachmentParameteriv = Marshal.GetDelegateForFunctionPointer<PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC>(loader.Invoke("glGetFramebufferAttachmentParameteriv"));
|
|
glGenerateMipmap = Marshal.GetDelegateForFunctionPointer<PFNGLGENERATEMIPMAPPROC>(loader.Invoke("glGenerateMipmap"));
|
|
glBlitFramebuffer = Marshal.GetDelegateForFunctionPointer<PFNGLBLITFRAMEBUFFERPROC>(loader.Invoke("glBlitFramebuffer"));
|
|
glRenderbufferStorageMultisample = Marshal.GetDelegateForFunctionPointer<PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC>(loader.Invoke("glRenderbufferStorageMultisample"));
|
|
glFramebufferTextureLayer = Marshal.GetDelegateForFunctionPointer<PFNGLFRAMEBUFFERTEXTURELAYERPROC>(loader.Invoke("glFramebufferTextureLayer"));
|
|
glMapBufferRange = Marshal.GetDelegateForFunctionPointer<PFNGLMAPBUFFERRANGEPROC>(loader.Invoke("glMapBufferRange"));
|
|
glFlushMappedBufferRange = Marshal.GetDelegateForFunctionPointer<PFNGLFLUSHMAPPEDBUFFERRANGEPROC>(loader.Invoke("glFlushMappedBufferRange"));
|
|
glBindVertexArray = Marshal.GetDelegateForFunctionPointer<PFNGLBINDVERTEXARRAYPROC>(loader.Invoke("glBindVertexArray"));
|
|
glDeleteVertexArrays = Marshal.GetDelegateForFunctionPointer<PFNGLDELETEVERTEXARRAYSPROC>(loader.Invoke("glDeleteVertexArrays"));
|
|
glGenVertexArrays = Marshal.GetDelegateForFunctionPointer<PFNGLGENVERTEXARRAYSPROC>(loader.Invoke("glGenVertexArrays"));
|
|
glIsVertexArray = Marshal.GetDelegateForFunctionPointer<PFNGLISVERTEXARRAYPROC>(loader.Invoke("glIsVertexArray"));
|
|
glDrawArraysInstanced = Marshal.GetDelegateForFunctionPointer<PFNGLDRAWARRAYSINSTANCEDPROC>(loader.Invoke("glDrawArraysInstanced"));
|
|
glDrawElementsInstanced = Marshal.GetDelegateForFunctionPointer<PFNGLDRAWELEMENTSINSTANCEDPROC>(loader.Invoke("glDrawElementsInstanced"));
|
|
glTexBuffer = Marshal.GetDelegateForFunctionPointer<PFNGLTEXBUFFERPROC>(loader.Invoke("glTexBuffer"));
|
|
glPrimitiveRestartIndex = Marshal.GetDelegateForFunctionPointer<PFNGLPRIMITIVERESTARTINDEXPROC>(loader.Invoke("glPrimitiveRestartIndex"));
|
|
glCopyBufferSubData = Marshal.GetDelegateForFunctionPointer<PFNGLCOPYBUFFERSUBDATAPROC>(loader.Invoke("glCopyBufferSubData"));
|
|
glGetUniformIndices = Marshal.GetDelegateForFunctionPointer<PFNGLGETUNIFORMINDICESPROC>(loader.Invoke("glGetUniformIndices"));
|
|
glGetActiveUniformsiv = Marshal.GetDelegateForFunctionPointer<PFNGLGETACTIVEUNIFORMSIVPROC>(loader.Invoke("glGetActiveUniformsiv"));
|
|
glGetActiveUniformName = Marshal.GetDelegateForFunctionPointer<PFNGLGETACTIVEUNIFORMNAMEPROC>(loader.Invoke("glGetActiveUniformName"));
|
|
glGetUniformBlockIndex = Marshal.GetDelegateForFunctionPointer<PFNGLGETUNIFORMBLOCKINDEXPROC>(loader.Invoke("glGetUniformBlockIndex"));
|
|
glGetActiveUniformBlockiv = Marshal.GetDelegateForFunctionPointer<PFNGLGETACTIVEUNIFORMBLOCKIVPROC>(loader.Invoke("glGetActiveUniformBlockiv"));
|
|
glGetActiveUniformBlockName = Marshal.GetDelegateForFunctionPointer<PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC>(loader.Invoke("glGetActiveUniformBlockName"));
|
|
glUniformBlockBinding = Marshal.GetDelegateForFunctionPointer<PFNGLUNIFORMBLOCKBINDINGPROC>(loader.Invoke("glUniformBlockBinding"));
|
|
glDrawElementsBaseVertex = Marshal.GetDelegateForFunctionPointer<PFNGLDRAWELEMENTSBASEVERTEXPROC>(loader.Invoke("glDrawElementsBaseVertex"));
|
|
glDrawRangeElementsBaseVertex = Marshal.GetDelegateForFunctionPointer<PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC>(loader.Invoke("glDrawRangeElementsBaseVertex"));
|
|
glDrawElementsInstancedBaseVertex = Marshal.GetDelegateForFunctionPointer<PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC>(loader.Invoke("glDrawElementsInstancedBaseVertex"));
|
|
glMultiDrawElementsBaseVertex = Marshal.GetDelegateForFunctionPointer<PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC>(loader.Invoke("glMultiDrawElementsBaseVertex"));
|
|
glProvokingVertex = Marshal.GetDelegateForFunctionPointer<PFNGLPROVOKINGVERTEXPROC>(loader.Invoke("glProvokingVertex"));
|
|
glFenceSync = Marshal.GetDelegateForFunctionPointer<PFNGLFENCESYNCPROC>(loader.Invoke("glFenceSync"));
|
|
glIsSync = Marshal.GetDelegateForFunctionPointer<PFNGLISSYNCPROC>(loader.Invoke("glIsSync"));
|
|
glDeleteSync = Marshal.GetDelegateForFunctionPointer<PFNGLDELETESYNCPROC>(loader.Invoke("glDeleteSync"));
|
|
glClientWaitSync = Marshal.GetDelegateForFunctionPointer<PFNGLCLIENTWAITSYNCPROC>(loader.Invoke("glClientWaitSync"));
|
|
glWaitSync = Marshal.GetDelegateForFunctionPointer<PFNGLWAITSYNCPROC>(loader.Invoke("glWaitSync"));
|
|
glGetInteger64v = Marshal.GetDelegateForFunctionPointer<PFNGLGETINTEGER64VPROC>(loader.Invoke("glGetInteger64v"));
|
|
glGetSynciv = Marshal.GetDelegateForFunctionPointer<PFNGLGETSYNCIVPROC>(loader.Invoke("glGetSynciv"));
|
|
glGetInteger64i_v = Marshal.GetDelegateForFunctionPointer<PFNGLGETINTEGER64I_VPROC>(loader.Invoke("glGetInteger64i_v"));
|
|
glGetBufferParameteri64v = Marshal.GetDelegateForFunctionPointer<PFNGLGETBUFFERPARAMETERI64VPROC>(loader.Invoke("glGetBufferParameteri64v"));
|
|
glFramebufferTexture = Marshal.GetDelegateForFunctionPointer<PFNGLFRAMEBUFFERTEXTUREPROC>(loader.Invoke("glFramebufferTexture"));
|
|
glTexImage2DMultisample = Marshal.GetDelegateForFunctionPointer<PFNGLTEXIMAGE2DMULTISAMPLEPROC>(loader.Invoke("glTexImage2DMultisample"));
|
|
glTexImage3DMultisample = Marshal.GetDelegateForFunctionPointer<PFNGLTEXIMAGE3DMULTISAMPLEPROC>(loader.Invoke("glTexImage3DMultisample"));
|
|
glGetMultisamplefv = Marshal.GetDelegateForFunctionPointer<PFNGLGETMULTISAMPLEFVPROC>(loader.Invoke("glGetMultisamplefv"));
|
|
glSampleMaski = Marshal.GetDelegateForFunctionPointer<PFNGLSAMPLEMASKIPROC>(loader.Invoke("glSampleMaski"));
|
|
#endregion
|
|
}
|
|
|
|
/// <summary>
|
|
/// Checks for any issues in this OpenGL Context and throws an exception if it detects one.
|
|
/// May throw OpenGLException.
|
|
/// </summary>
|
|
public void DetectGLError() {
|
|
OpenGL.ErrorCode code = GetError();
|
|
if (code != OpenGL.ErrorCode.NoError) {
|
|
throw new OpenGLErrorException(code);
|
|
}
|
|
}
|
|
|
|
public void GetViewport(out int x, out int y, out int width, out int height) {
|
|
int[] viewport = new int[4];
|
|
GetIntegerv(GetPName.Viewport, viewport);
|
|
x = viewport[0];
|
|
y = viewport[1];
|
|
width = viewport[2];
|
|
height = viewport[3];
|
|
}
|
|
|
|
protected virtual void Dispose(bool disposing)
|
|
{
|
|
if (!disposed)
|
|
{
|
|
if (disposing)
|
|
{
|
|
}
|
|
SDL.SDL_GL_DeleteContext(Handle);
|
|
disposed = true;
|
|
}
|
|
}
|
|
|
|
~GLContext()
|
|
{
|
|
Dispose(disposing: false);
|
|
}
|
|
|
|
public void Dispose()
|
|
{
|
|
Dispose(disposing: true);
|
|
GC.SuppressFinalize(this);
|
|
}
|
|
}
|
|
} |