split up some gl method overloads which stray from the spec a bit too much
"stray from the spec" meaning changing parameters, adding return values, and/or doing other little things to help the caller out before calling the actual gl function
This commit is contained in:
parent
97e575d7df
commit
d2b3d75ec8
137
PortableGL/GL20ConvenienceHelpers.cs
Normal file
137
PortableGL/GL20ConvenienceHelpers.cs
Normal file
|
@ -0,0 +1,137 @@
|
||||||
|
using System;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
namespace PortableGL
|
||||||
|
{
|
||||||
|
public abstract partial class GL20
|
||||||
|
{
|
||||||
|
public void glDeleteBuffers(int buffer)
|
||||||
|
{
|
||||||
|
glDeleteBuffers(1, ref buffer);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void glDeleteFramebuffers(int framebuffer)
|
||||||
|
{
|
||||||
|
glDeleteFramebuffers(1, ref framebuffer);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void glDeleteRenderbuffers(int renderbuffer)
|
||||||
|
{
|
||||||
|
glDeleteRenderbuffers(1, ref renderbuffer);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void glDeleteTextures(int texture)
|
||||||
|
{
|
||||||
|
glDeleteTextures(1, ref texture);
|
||||||
|
}
|
||||||
|
|
||||||
|
public int glGenBuffers()
|
||||||
|
{
|
||||||
|
int buffer = 0;
|
||||||
|
glGenBuffers(1, ref buffer);
|
||||||
|
return buffer;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int glGenFramebuffers()
|
||||||
|
{
|
||||||
|
int framebuffer = 0;
|
||||||
|
glGenFramebuffers(1, ref framebuffer);
|
||||||
|
return framebuffer;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int glGenRenderbuffers()
|
||||||
|
{
|
||||||
|
int renderbuffer = 0;
|
||||||
|
glGenRenderbuffers(1, ref renderbuffer);
|
||||||
|
return renderbuffer;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int glGenTextures()
|
||||||
|
{
|
||||||
|
int texture = 0;
|
||||||
|
glGenTextures(1, ref texture);
|
||||||
|
return texture;
|
||||||
|
}
|
||||||
|
|
||||||
|
public string glGetActiveAttrib(int program, int index, out int size, out int type)
|
||||||
|
{
|
||||||
|
int length = glGetProgramiv(program, GL_ACTIVE_ATTRIBUTE_MAX_LENGTH);
|
||||||
|
StringBuilder sb = new StringBuilder(length == 0 ? 1 : length);
|
||||||
|
glGetActiveAttrib(program, index, sb.Capacity, out length, out size, out type, sb);
|
||||||
|
return sb.ToString();
|
||||||
|
}
|
||||||
|
|
||||||
|
public string glGetActiveUniform(int program, int index, out int size, out int type)
|
||||||
|
{
|
||||||
|
int length = glGetProgramiv(program, GL_ACTIVE_UNIFORM_MAX_LENGTH);
|
||||||
|
StringBuilder sb = new StringBuilder(length == 0 ? 1 : length);
|
||||||
|
glGetActiveUniform(program, index, sb.Capacity, out length, out size, out type, sb);
|
||||||
|
return sb.ToString();
|
||||||
|
}
|
||||||
|
|
||||||
|
public string glGetProgramInfoLog(int program)
|
||||||
|
{
|
||||||
|
int length = glGetProgramiv(program, GL_INFO_LOG_LENGTH);
|
||||||
|
if (length == 0)
|
||||||
|
return String.Empty;
|
||||||
|
StringBuilder sb = new StringBuilder(length);
|
||||||
|
glGetProgramInfoLog(program, sb.Capacity, out length, sb);
|
||||||
|
return sb.ToString();
|
||||||
|
}
|
||||||
|
|
||||||
|
public int glGetProgramiv(int shader, int pname)
|
||||||
|
{
|
||||||
|
int parameter = 0;
|
||||||
|
glGetProgramiv(shader, pname, ref parameter);
|
||||||
|
return parameter;
|
||||||
|
}
|
||||||
|
|
||||||
|
public string glGetShaderInfoLog(int shader)
|
||||||
|
{
|
||||||
|
int length = glGetShaderiv(shader, GL_INFO_LOG_LENGTH);
|
||||||
|
if (length == 0)
|
||||||
|
return String.Empty;
|
||||||
|
StringBuilder sb = new StringBuilder(length);
|
||||||
|
glGetShaderInfoLog(shader, sb.Capacity, out length, sb);
|
||||||
|
return sb.ToString();
|
||||||
|
}
|
||||||
|
|
||||||
|
public string glGetShaderSource(int shader)
|
||||||
|
{
|
||||||
|
int length = glGetShaderiv(shader, GL_SHADER_SOURCE_LENGTH);
|
||||||
|
if (length == 0)
|
||||||
|
return String.Empty;
|
||||||
|
StringBuilder sb = new StringBuilder(length);
|
||||||
|
glGetShaderSource(shader, sb.Capacity, out length, sb);
|
||||||
|
return sb.ToString();
|
||||||
|
}
|
||||||
|
|
||||||
|
public int glGetShaderiv(int shader, int pname)
|
||||||
|
{
|
||||||
|
int parameter = 0;
|
||||||
|
glGetShaderiv(shader, pname, ref parameter);
|
||||||
|
return parameter;
|
||||||
|
}
|
||||||
|
|
||||||
|
public float glGetTexParameterfv(int target, int pname)
|
||||||
|
{
|
||||||
|
float parameter = 0.0f;
|
||||||
|
glGetTexParameterfv(target, pname, ref parameter);
|
||||||
|
return parameter;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int glGetTexParameteriv(int target, int pname)
|
||||||
|
{
|
||||||
|
int parameter = 0;
|
||||||
|
glGetTexParameteriv(target, pname, ref parameter);
|
||||||
|
return parameter;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void glShaderSource(int shader, string str)
|
||||||
|
{
|
||||||
|
glShaderSource(shader, 1, new string[] { str }, new int[] { str.Length });
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -53,11 +53,6 @@ namespace PortableGL
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void glDeleteBuffers(int buffer)
|
|
||||||
{
|
|
||||||
glDeleteBuffers(1, ref buffer);
|
|
||||||
}
|
|
||||||
|
|
||||||
public unsafe void glDeleteFramebuffers(int n, int[] framebuffers)
|
public unsafe void glDeleteFramebuffers(int n, int[] framebuffers)
|
||||||
{
|
{
|
||||||
fixed (void* ptr = framebuffers)
|
fixed (void* ptr = framebuffers)
|
||||||
|
@ -74,11 +69,6 @@ namespace PortableGL
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void glDeleteFramebuffers(int framebuffer)
|
|
||||||
{
|
|
||||||
glDeleteFramebuffers(1, ref framebuffer);
|
|
||||||
}
|
|
||||||
|
|
||||||
public unsafe void glDeleteRenderbuffers(int n, int[] renderbuffers)
|
public unsafe void glDeleteRenderbuffers(int n, int[] renderbuffers)
|
||||||
{
|
{
|
||||||
fixed (void* ptr = renderbuffers)
|
fixed (void* ptr = renderbuffers)
|
||||||
|
@ -95,11 +85,6 @@ namespace PortableGL
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void glDeleteRenderbuffers(int renderbuffer)
|
|
||||||
{
|
|
||||||
glDeleteRenderbuffers(1, ref renderbuffer);
|
|
||||||
}
|
|
||||||
|
|
||||||
public unsafe void glDeleteTextures(int n, int[] textures)
|
public unsafe void glDeleteTextures(int n, int[] textures)
|
||||||
{
|
{
|
||||||
fixed (void* ptr = textures)
|
fixed (void* ptr = textures)
|
||||||
|
@ -116,11 +101,6 @@ namespace PortableGL
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void glDeleteTextures(int texture)
|
|
||||||
{
|
|
||||||
glDeleteTextures(1, ref texture);
|
|
||||||
}
|
|
||||||
|
|
||||||
public unsafe void glDrawElements<T>(int mode, int count, int type, T[] indices) where T : struct
|
public unsafe void glDrawElements<T>(int mode, int count, int type, T[] indices) where T : struct
|
||||||
{
|
{
|
||||||
fixed (void *ptr = indices)
|
fixed (void *ptr = indices)
|
||||||
|
@ -145,13 +125,6 @@ namespace PortableGL
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public int glGenBuffers()
|
|
||||||
{
|
|
||||||
int buffer = 0;
|
|
||||||
glGenBuffers(1, ref buffer);
|
|
||||||
return buffer;
|
|
||||||
}
|
|
||||||
|
|
||||||
public unsafe void glGenFramebuffers(int n, int[] framebuffers)
|
public unsafe void glGenFramebuffers(int n, int[] framebuffers)
|
||||||
{
|
{
|
||||||
fixed (void *ptr = framebuffers)
|
fixed (void *ptr = framebuffers)
|
||||||
|
@ -168,13 +141,6 @@ namespace PortableGL
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public int glGenFramebuffers()
|
|
||||||
{
|
|
||||||
int framebuffer = 0;
|
|
||||||
glGenFramebuffers(1, ref framebuffer);
|
|
||||||
return framebuffer;
|
|
||||||
}
|
|
||||||
|
|
||||||
public unsafe void glGenRenderbuffers(int n, int[] renderbuffers)
|
public unsafe void glGenRenderbuffers(int n, int[] renderbuffers)
|
||||||
{
|
{
|
||||||
fixed (void *ptr = renderbuffers)
|
fixed (void *ptr = renderbuffers)
|
||||||
|
@ -191,13 +157,6 @@ namespace PortableGL
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public int glGenRenderbuffers()
|
|
||||||
{
|
|
||||||
int renderbuffer = 0;
|
|
||||||
glGenRenderbuffers(1, ref renderbuffer);
|
|
||||||
return renderbuffer;
|
|
||||||
}
|
|
||||||
|
|
||||||
public unsafe void glGenTextures(int n, int[] textures)
|
public unsafe void glGenTextures(int n, int[] textures)
|
||||||
{
|
{
|
||||||
fixed (void *ptr = textures)
|
fixed (void *ptr = textures)
|
||||||
|
@ -214,13 +173,6 @@ namespace PortableGL
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public int glGenTextures()
|
|
||||||
{
|
|
||||||
int texture = 0;
|
|
||||||
glGenTextures(1, ref texture);
|
|
||||||
return texture;
|
|
||||||
}
|
|
||||||
|
|
||||||
public unsafe void glGetBooleanv(int pname, bool[] parameters)
|
public unsafe void glGetBooleanv(int pname, bool[] parameters)
|
||||||
{
|
{
|
||||||
fixed (void *ptr = parameters)
|
fixed (void *ptr = parameters)
|
||||||
|
@ -266,14 +218,6 @@ namespace PortableGL
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public string glGetActiveAttrib(int program, int index, out int size, out int type)
|
|
||||||
{
|
|
||||||
int length = glGetProgramiv(program, GL_ACTIVE_ATTRIBUTE_MAX_LENGTH);
|
|
||||||
StringBuilder sb = new StringBuilder(length == 0 ? 1 : length);
|
|
||||||
glGetActiveAttrib(program, index, sb.Capacity, out length, out size, out type, sb);
|
|
||||||
return sb.ToString();
|
|
||||||
}
|
|
||||||
|
|
||||||
public unsafe void glGetActiveUniform(int program, int index, int bufSize, out int length, out int size, out int type, StringBuilder name)
|
public unsafe void glGetActiveUniform(int program, int index, int bufSize, out int length, out int size, out int type, StringBuilder name)
|
||||||
{
|
{
|
||||||
fixed (int* lengthPtr = &length,
|
fixed (int* lengthPtr = &length,
|
||||||
|
@ -287,14 +231,6 @@ namespace PortableGL
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public string glGetActiveUniform(int program, int index, out int size, out int type)
|
|
||||||
{
|
|
||||||
int length = glGetProgramiv(program, GL_ACTIVE_UNIFORM_MAX_LENGTH);
|
|
||||||
StringBuilder sb = new StringBuilder(length == 0 ? 1 : length);
|
|
||||||
glGetActiveUniform(program, index, sb.Capacity, out length, out size, out type, sb);
|
|
||||||
return sb.ToString();
|
|
||||||
}
|
|
||||||
|
|
||||||
public unsafe void glGetAttachedShaders(int program, int maxCount, out int count, int[] shaders)
|
public unsafe void glGetAttachedShaders(int program, int maxCount, out int count, int[] shaders)
|
||||||
{
|
{
|
||||||
fixed (int* countPtr = &count,
|
fixed (int* countPtr = &count,
|
||||||
|
@ -330,16 +266,6 @@ namespace PortableGL
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public string glGetProgramInfoLog(int program)
|
|
||||||
{
|
|
||||||
int length = glGetProgramiv(program, GL_INFO_LOG_LENGTH);
|
|
||||||
if (length == 0)
|
|
||||||
return String.Empty;
|
|
||||||
StringBuilder sb = new StringBuilder(length);
|
|
||||||
glGetProgramInfoLog(program, sb.Capacity, out length, sb);
|
|
||||||
return sb.ToString();
|
|
||||||
}
|
|
||||||
|
|
||||||
public unsafe void glGetProgramiv(int program, int pname, int[] parameters)
|
public unsafe void glGetProgramiv(int program, int pname, int[] parameters)
|
||||||
{
|
{
|
||||||
fixed (void *ptr = parameters)
|
fixed (void *ptr = parameters)
|
||||||
|
@ -356,13 +282,6 @@ namespace PortableGL
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public int glGetProgramiv(int shader, int pname)
|
|
||||||
{
|
|
||||||
int parameter = 0;
|
|
||||||
glGetProgramiv(shader, pname, ref parameter);
|
|
||||||
return parameter;
|
|
||||||
}
|
|
||||||
|
|
||||||
public unsafe void glGetRenderbufferParameteriv(int target, int pname, int[] parameters)
|
public unsafe void glGetRenderbufferParameteriv(int target, int pname, int[] parameters)
|
||||||
{
|
{
|
||||||
fixed (void *ptr = parameters)
|
fixed (void *ptr = parameters)
|
||||||
|
@ -380,16 +299,6 @@ namespace PortableGL
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public string glGetShaderInfoLog(int shader)
|
|
||||||
{
|
|
||||||
int length = glGetShaderiv(shader, GL_INFO_LOG_LENGTH);
|
|
||||||
if (length == 0)
|
|
||||||
return String.Empty;
|
|
||||||
StringBuilder sb = new StringBuilder(length);
|
|
||||||
glGetShaderInfoLog(shader, sb.Capacity, out length, sb);
|
|
||||||
return sb.ToString();
|
|
||||||
}
|
|
||||||
|
|
||||||
public unsafe void glGetShaderPrecisionFormat(int shaderType, int precisionType, int[] range, out int precision)
|
public unsafe void glGetShaderPrecisionFormat(int shaderType, int precisionType, int[] range, out int precision)
|
||||||
{
|
{
|
||||||
fixed (void* rangePtr = range)
|
fixed (void* rangePtr = range)
|
||||||
|
@ -409,16 +318,6 @@ namespace PortableGL
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public string glGetShaderSource(int shader)
|
|
||||||
{
|
|
||||||
int length = glGetShaderiv(shader, GL_SHADER_SOURCE_LENGTH);
|
|
||||||
if (length == 0)
|
|
||||||
return String.Empty;
|
|
||||||
StringBuilder sb = new StringBuilder(length);
|
|
||||||
glGetShaderSource(shader, sb.Capacity, out length, sb);
|
|
||||||
return sb.ToString();
|
|
||||||
}
|
|
||||||
|
|
||||||
public unsafe void glGetShaderiv(int shader, int pname, int[] parameters)
|
public unsafe void glGetShaderiv(int shader, int pname, int[] parameters)
|
||||||
{
|
{
|
||||||
fixed (void *ptr = parameters)
|
fixed (void *ptr = parameters)
|
||||||
|
@ -435,13 +334,6 @@ namespace PortableGL
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public int glGetShaderiv(int shader, int pname)
|
|
||||||
{
|
|
||||||
int parameter = 0;
|
|
||||||
glGetShaderiv(shader, pname, ref parameter);
|
|
||||||
return parameter;
|
|
||||||
}
|
|
||||||
|
|
||||||
public unsafe void glGetTexParameterfv(int target, int pname, float[] parameters)
|
public unsafe void glGetTexParameterfv(int target, int pname, float[] parameters)
|
||||||
{
|
{
|
||||||
fixed (void *ptr = parameters)
|
fixed (void *ptr = parameters)
|
||||||
|
@ -458,13 +350,6 @@ namespace PortableGL
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public float glGetTexParameterfv(int target, int pname)
|
|
||||||
{
|
|
||||||
float parameter = 0.0f;
|
|
||||||
glGetTexParameterfv(target, pname, ref parameter);
|
|
||||||
return parameter;
|
|
||||||
}
|
|
||||||
|
|
||||||
public unsafe void glGetTexParameteriv(int target, int pname, int[] parameters)
|
public unsafe void glGetTexParameteriv(int target, int pname, int[] parameters)
|
||||||
{
|
{
|
||||||
fixed (void *ptr = parameters)
|
fixed (void *ptr = parameters)
|
||||||
|
@ -481,13 +366,6 @@ namespace PortableGL
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public int glGetTexParameteriv(int target, int pname)
|
|
||||||
{
|
|
||||||
int parameter = 0;
|
|
||||||
glGetTexParameteriv(target, pname, ref parameter);
|
|
||||||
return parameter;
|
|
||||||
}
|
|
||||||
|
|
||||||
public unsafe void glGetUniformfv(int program, int location, float[] parameters)
|
public unsafe void glGetUniformfv(int program, int location, float[] parameters)
|
||||||
{
|
{
|
||||||
fixed (void *ptr = parameters)
|
fixed (void *ptr = parameters)
|
||||||
|
@ -577,11 +455,6 @@ namespace PortableGL
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void glShaderSource(int shader, string str)
|
|
||||||
{
|
|
||||||
glShaderSource(shader, 1, new string[] { str }, new int[] { str.Length });
|
|
||||||
}
|
|
||||||
|
|
||||||
public unsafe void glTexImage2D<T>(int target, int level, int internalformat, int width, int height, int border, int format, int type, T[] data) where T : struct
|
public unsafe void glTexImage2D<T>(int target, int level, int internalformat, int width, int height, int border, int format, int type, T[] data) where T : struct
|
||||||
{
|
{
|
||||||
fixed (void *ptr = data)
|
fixed (void *ptr = data)
|
||||||
|
|
Reference in a new issue