update function loading
This commit is contained in:
parent
233d23e3a1
commit
a67814cc89
@ -14,68 +14,6 @@ else
|
||||
|
||||
public import glenum;
|
||||
|
||||
__gshared bool FUNCS_LOADED = false;
|
||||
|
||||
version(linux)
|
||||
{
|
||||
alias GLLoadFunc = glXGetProcAddressARB;
|
||||
}
|
||||
else static assert(false, "GL function loader alias not set for platform");
|
||||
|
||||
bool
|
||||
GLLoadFuncs()
|
||||
{
|
||||
glDeleteRenderbuffers = cast(typeof(glDeleteRenderbuffers))GLLoadFunc(cast(u8*)"glDeleteRenderbuffers".ptr);
|
||||
glGenRenderbuffers = cast(typeof(glGenRenderbuffers))GLLoadFunc(cast(u8*)"glGenRenderbuffers".ptr);
|
||||
glGenVertexArrays = cast(typeof(glGenVertexArrays))GLLoadFunc(cast(u8*)"glGenVertexArrays".ptr);
|
||||
glDeleteVertexArrays = cast(typeof(glDeleteVertexArrays))GLLoadFunc(cast(u8*)"glDeleteVertexArrays".ptr);
|
||||
glGenBuffers = cast(typeof(glGenBuffers))GLLoadFunc(cast(u8*)"glGenBuffers".ptr);
|
||||
glCompileShader = cast(typeof(glCompileShader))GLLoadFunc(cast(u8*)"glCompileShader".ptr);
|
||||
glUseProgram = cast(typeof(glUseProgram))GLLoadFunc(cast(u8*)"glUseProgram".ptr);
|
||||
glValidateProgram = cast(typeof(glValidateProgram))GLLoadFunc(cast(u8*)"glValidateProgram".ptr);
|
||||
glBindBufferBase = cast(typeof(glBindBufferBase))GLLoadFunc(cast(u8*)"glBindBufferBase".ptr);
|
||||
glGetUniformBlockIndex = cast(typeof(glGetUniformBlockIndex))GLLoadFunc(cast(u8*)"glGetUniformBlockIndex".ptr);
|
||||
glEnableVertexAttribArray = cast(typeof(glEnableVertexAttribArray))GLLoadFunc(cast(u8*)"glEnableVertexAttribArray".ptr);
|
||||
glDisableVertexAttribArray = cast(typeof(glDisableVertexAttribArray))GLLoadFunc(cast(u8*)"glDisableVertexAttribArray".ptr);
|
||||
glBlendFuncSeparate = cast(typeof(glBlendFuncSeparate))GLLoadFunc(cast(u8*)"glBlendFuncSeparate".ptr);
|
||||
glBindVertexArray = cast(typeof(glBindVertexArray))GLLoadFunc(cast(u8*)"glBindVertexArray".ptr);
|
||||
glBindBuffer = cast(typeof(glBindBuffer))GLLoadFunc(cast(u8*)"glBindBuffer".ptr);
|
||||
glBufferData = cast(typeof(glBufferData))GLLoadFunc(cast(u8*)"glBufferData".ptr);
|
||||
glBufferSubData = cast(typeof(glBufferSubData))GLLoadFunc(cast(u8*)"glBufferSubData".ptr);
|
||||
glVertexAttribDivisor = cast(typeof(glVertexAttribDivisor))GLLoadFunc(cast(u8*)"glVertexAttribDivisor".ptr);
|
||||
glVertexAttribPointer = cast(typeof(glVertexAttribPointer))GLLoadFunc(cast(u8*)"glVertexAttribPointer".ptr);
|
||||
glDrawArraysInstanced = cast(typeof(glDrawArraysInstanced))GLLoadFunc(cast(u8*)"glDrawArraysInstanced".ptr);
|
||||
glDrawElementsInstanced = cast(typeof(glDrawElementsInstanced))GLLoadFunc(cast(u8*)"glDrawElementsInstanced".ptr);
|
||||
glGetUniformLocation = cast(typeof(glGetUniformLocation))GLLoadFunc(cast(u8*)"glGetUniformLocation".ptr);
|
||||
glUniform1f = cast(typeof(glUniform1f))GLLoadFunc(cast(u8*)"glUniform1f".ptr);
|
||||
glUniform2f = cast(typeof(glUniform2f))GLLoadFunc(cast(u8*)"glUniform2f".ptr);
|
||||
glUniform3f = cast(typeof(glUniform3f))GLLoadFunc(cast(u8*)"glUniform3f".ptr);
|
||||
glUniform4f = cast(typeof(glUniform4f))GLLoadFunc(cast(u8*)"glUniform4f".ptr);
|
||||
glUniform1i = cast(typeof(glUniform1i))GLLoadFunc(cast(u8*)"glUniform1i".ptr);
|
||||
glUniform2i = cast(typeof(glUniform2i))GLLoadFunc(cast(u8*)"glUniform2i".ptr);
|
||||
glUniform3i = cast(typeof(glUniform3i))GLLoadFunc(cast(u8*)"glUniform3i".ptr);
|
||||
glUniform4i = cast(typeof(glUniform4i))GLLoadFunc(cast(u8*)"glUniform4i".ptr);
|
||||
glCreateProgram = cast(typeof(glCreateProgram))GLLoadFunc(cast(u8*)"glCreateProgram".ptr);
|
||||
glCreateShader = cast(typeof(glCreateShader))GLLoadFunc(cast(u8*)"glCreateShader".ptr);
|
||||
glDeleteFramebuffers = cast(typeof(glDeleteFramebuffers))GLLoadFunc(cast(u8*)"glDeleteFramebuffers".ptr);
|
||||
glDeleteProgram = cast(typeof(glDeleteProgram))GLLoadFunc(cast(u8*)"glDeleteProgram".ptr);
|
||||
glDeleteShader = cast(typeof(glDeleteShader))GLLoadFunc(cast(u8*)"glDeleteShader".ptr);
|
||||
glShaderSource = cast(typeof(glShaderSource))GLLoadFunc(cast(u8*)"glShaderSource".ptr);
|
||||
glGetProgramiv = cast(typeof(glGetProgramiv))GLLoadFunc(cast(u8*)"glGetProgramiv".ptr);
|
||||
glGetProgramInfoLog = cast(typeof(glGetProgramInfoLog))GLLoadFunc(cast(u8*)"glGetProgramInfoLog".ptr);
|
||||
glGetShaderiv = cast(typeof(glGetShaderiv))GLLoadFunc(cast(u8*)"glGetShaderiv".ptr);
|
||||
glGetShaderInfoLog = cast(typeof(glGetShaderInfoLog))GLLoadFunc(cast(u8*)"glGetShaderInfoLog".ptr);
|
||||
glAttachShader = cast(typeof(glAttachShader))GLLoadFunc(cast(u8*)"glAttachShader".ptr);
|
||||
glLinkProgram = cast(typeof(glLinkProgram))GLLoadFunc(cast(u8*)"glLinkProgram".ptr);
|
||||
|
||||
static if(!__traits(compiles, { glActiveTexture(0x84C0); }))
|
||||
{
|
||||
glActiveTexture = cast(typeof(glActiveTexture))GLLoadFunc(cast(u8*)"glActiveTexture".ptr);
|
||||
}
|
||||
|
||||
return glDeleteRenderbuffers != null;
|
||||
}
|
||||
|
||||
u32
|
||||
GLCreateShader(GLEnum shader_type, string[] shader_src)
|
||||
{
|
||||
|
||||
@ -52,3 +52,57 @@ static if(!__traits(compiles, { glActiveTexture(0x84C0); }))
|
||||
{
|
||||
PFNGLACTIVETEXTUREPROC glActiveTexture;
|
||||
}
|
||||
|
||||
bool
|
||||
GLLoadFuncs()
|
||||
{
|
||||
glDeleteRenderbuffers = cast(typeof(glDeleteRenderbuffers))RGFW_getProcAddress_OpenGL(cast(u8*)"glDeleteRenderbuffers".ptr);
|
||||
glGenRenderbuffers = cast(typeof(glGenRenderbuffers))RGFW_getProcAddress_OpenGL(cast(u8*)"glGenRenderbuffers".ptr);
|
||||
glGenVertexArrays = cast(typeof(glGenVertexArrays))RGFW_getProcAddress_OpenGL(cast(u8*)"glGenVertexArrays".ptr);
|
||||
glDeleteVertexArrays = cast(typeof(glDeleteVertexArrays))RGFW_getProcAddress_OpenGL(cast(u8*)"glDeleteVertexArrays".ptr);
|
||||
glGenBuffers = cast(typeof(glGenBuffers))RGFW_getProcAddress_OpenGL(cast(u8*)"glGenBuffers".ptr);
|
||||
glCompileShader = cast(typeof(glCompileShader))RGFW_getProcAddress_OpenGL(cast(u8*)"glCompileShader".ptr);
|
||||
glUseProgram = cast(typeof(glUseProgram))RGFW_getProcAddress_OpenGL(cast(u8*)"glUseProgram".ptr);
|
||||
glValidateProgram = cast(typeof(glValidateProgram))RGFW_getProcAddress_OpenGL(cast(u8*)"glValidateProgram".ptr);
|
||||
glBindBufferBase = cast(typeof(glBindBufferBase))RGFW_getProcAddress_OpenGL(cast(u8*)"glBindBufferBase".ptr);
|
||||
glGetUniformBlockIndex = cast(typeof(glGetUniformBlockIndex))RGFW_getProcAddress_OpenGL(cast(u8*)"glGetUniformBlockIndex".ptr);
|
||||
glEnableVertexAttribArray = cast(typeof(glEnableVertexAttribArray))RGFW_getProcAddress_OpenGL(cast(u8*)"glEnableVertexAttribArray".ptr);
|
||||
glDisableVertexAttribArray = cast(typeof(glDisableVertexAttribArray))RGFW_getProcAddress_OpenGL(cast(u8*)"glDisableVertexAttribArray".ptr);
|
||||
glBlendFuncSeparate = cast(typeof(glBlendFuncSeparate))RGFW_getProcAddress_OpenGL(cast(u8*)"glBlendFuncSeparate".ptr);
|
||||
glBindVertexArray = cast(typeof(glBindVertexArray))RGFW_getProcAddress_OpenGL(cast(u8*)"glBindVertexArray".ptr);
|
||||
glBindBuffer = cast(typeof(glBindBuffer))RGFW_getProcAddress_OpenGL(cast(u8*)"glBindBuffer".ptr);
|
||||
glBufferData = cast(typeof(glBufferData))RGFW_getProcAddress_OpenGL(cast(u8*)"glBufferData".ptr);
|
||||
glBufferSubData = cast(typeof(glBufferSubData))RGFW_getProcAddress_OpenGL(cast(u8*)"glBufferSubData".ptr);
|
||||
glVertexAttribDivisor = cast(typeof(glVertexAttribDivisor))RGFW_getProcAddress_OpenGL(cast(u8*)"glVertexAttribDivisor".ptr);
|
||||
glVertexAttribPointer = cast(typeof(glVertexAttribPointer))RGFW_getProcAddress_OpenGL(cast(u8*)"glVertexAttribPointer".ptr);
|
||||
glDrawArraysInstanced = cast(typeof(glDrawArraysInstanced))RGFW_getProcAddress_OpenGL(cast(u8*)"glDrawArraysInstanced".ptr);
|
||||
glDrawElementsInstanced = cast(typeof(glDrawElementsInstanced))RGFW_getProcAddress_OpenGL(cast(u8*)"glDrawElementsInstanced".ptr);
|
||||
glGetUniformLocation = cast(typeof(glGetUniformLocation))RGFW_getProcAddress_OpenGL(cast(u8*)"glGetUniformLocation".ptr);
|
||||
glUniform1f = cast(typeof(glUniform1f))RGFW_getProcAddress_OpenGL(cast(u8*)"glUniform1f".ptr);
|
||||
glUniform2f = cast(typeof(glUniform2f))RGFW_getProcAddress_OpenGL(cast(u8*)"glUniform2f".ptr);
|
||||
glUniform3f = cast(typeof(glUniform3f))RGFW_getProcAddress_OpenGL(cast(u8*)"glUniform3f".ptr);
|
||||
glUniform4f = cast(typeof(glUniform4f))RGFW_getProcAddress_OpenGL(cast(u8*)"glUniform4f".ptr);
|
||||
glUniform1i = cast(typeof(glUniform1i))RGFW_getProcAddress_OpenGL(cast(u8*)"glUniform1i".ptr);
|
||||
glUniform2i = cast(typeof(glUniform2i))RGFW_getProcAddress_OpenGL(cast(u8*)"glUniform2i".ptr);
|
||||
glUniform3i = cast(typeof(glUniform3i))RGFW_getProcAddress_OpenGL(cast(u8*)"glUniform3i".ptr);
|
||||
glUniform4i = cast(typeof(glUniform4i))RGFW_getProcAddress_OpenGL(cast(u8*)"glUniform4i".ptr);
|
||||
glCreateProgram = cast(typeof(glCreateProgram))RGFW_getProcAddress_OpenGL(cast(u8*)"glCreateProgram".ptr);
|
||||
glCreateShader = cast(typeof(glCreateShader))RGFW_getProcAddress_OpenGL(cast(u8*)"glCreateShader".ptr);
|
||||
glDeleteFramebuffers = cast(typeof(glDeleteFramebuffers))RGFW_getProcAddress_OpenGL(cast(u8*)"glDeleteFramebuffers".ptr);
|
||||
glDeleteProgram = cast(typeof(glDeleteProgram))RGFW_getProcAddress_OpenGL(cast(u8*)"glDeleteProgram".ptr);
|
||||
glDeleteShader = cast(typeof(glDeleteShader))RGFW_getProcAddress_OpenGL(cast(u8*)"glDeleteShader".ptr);
|
||||
glShaderSource = cast(typeof(glShaderSource))RGFW_getProcAddress_OpenGL(cast(u8*)"glShaderSource".ptr);
|
||||
glGetProgramiv = cast(typeof(glGetProgramiv))RGFW_getProcAddress_OpenGL(cast(u8*)"glGetProgramiv".ptr);
|
||||
glGetProgramInfoLog = cast(typeof(glGetProgramInfoLog))RGFW_getProcAddress_OpenGL(cast(u8*)"glGetProgramInfoLog".ptr);
|
||||
glGetShaderiv = cast(typeof(glGetShaderiv))RGFW_getProcAddress_OpenGL(cast(u8*)"glGetShaderiv".ptr);
|
||||
glGetShaderInfoLog = cast(typeof(glGetShaderInfoLog))RGFW_getProcAddress_OpenGL(cast(u8*)"glGetShaderInfoLog".ptr);
|
||||
glAttachShader = cast(typeof(glAttachShader))RGFW_getProcAddress_OpenGL(cast(u8*)"glAttachShader".ptr);
|
||||
glLinkProgram = cast(typeof(glLinkProgram))RGFW_getProcAddress_OpenGL(cast(u8*)"glLinkProgram".ptr);
|
||||
|
||||
static if(!__traits(compiles, { glActiveTexture(0x84C0); }))
|
||||
{
|
||||
glActiveTexture = cast(typeof(glActiveTexture))RGFW_getProcAddress_OpenGL(cast(u8*)"glActiveTexture".ptr);
|
||||
}
|
||||
|
||||
return glDeleteRenderbuffers != null;
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user