From 0ec65e1029aa195568e592bdf8f5e2693f88fd97 Mon Sep 17 00:00:00 2001 From: Matthew Date: Mon, 18 May 2026 05:45:27 +1000 Subject: [PATCH] more fixes for opengl --- dlib/dlibincludes.c | 1 + dlib/platform.d | 5 --- opengl/opengl_native.d | 91 ++++++++++++++++++++++-------------------- test.sh | 1 - 4 files changed, 49 insertions(+), 49 deletions(-) diff --git a/dlib/dlibincludes.c b/dlib/dlibincludes.c index 8ef6216..09744ce 100644 --- a/dlib/dlibincludes.c +++ b/dlib/dlibincludes.c @@ -39,6 +39,7 @@ #ifndef BUILD_WASM # define RGFW_IMPLEMENTATION +# define RGFW_OPENGL # include "../external/rgfw/rgfw.h" #endif diff --git a/dlib/platform.d b/dlib/platform.d index e1f0705..51ea69f 100644 --- a/dlib/platform.d +++ b/dlib/platform.d @@ -1786,11 +1786,6 @@ version(DLIB_TEST) unittest assert(events[2].type == WET.FileDeleted); assert(events[2].names[0] == r"test_file.txt"); - - version(COMPILE_TEST) - { - CreateWindow!(true)(null, "GL", 1920, 1080); - } } } diff --git a/opengl/opengl_native.d b/opengl/opengl_native.d index 58db987..297c05a 100644 --- a/opengl/opengl_native.d +++ b/opengl/opengl_native.d @@ -53,55 +53,60 @@ static if(!__traits(compiles, { glActiveTexture(0x84C0); })) PFNGLACTIVETEXTUREPROC glActiveTexture; } +version(linux) +{ + //alias RGFW_getProcAddress_OpenGL = RGFW_getProcAddress_OpenGL_X11; +} + 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); + glDeleteRenderbuffers = cast(typeof(glDeleteRenderbuffers))RGFW_getProcAddress_OpenGL(cast(const(char)*)"glDeleteRenderbuffers".ptr); + glGenRenderbuffers = cast(typeof(glGenRenderbuffers))RGFW_getProcAddress_OpenGL(cast(const(char)*)"glGenRenderbuffers".ptr); + glGenVertexArrays = cast(typeof(glGenVertexArrays))RGFW_getProcAddress_OpenGL(cast(const(char)*)"glGenVertexArrays".ptr); + glDeleteVertexArrays = cast(typeof(glDeleteVertexArrays))RGFW_getProcAddress_OpenGL(cast(const(char)*)"glDeleteVertexArrays".ptr); + glGenBuffers = cast(typeof(glGenBuffers))RGFW_getProcAddress_OpenGL(cast(const(char)*)"glGenBuffers".ptr); + glCompileShader = cast(typeof(glCompileShader))RGFW_getProcAddress_OpenGL(cast(const(char)*)"glCompileShader".ptr); + glUseProgram = cast(typeof(glUseProgram))RGFW_getProcAddress_OpenGL(cast(const(char)*)"glUseProgram".ptr); + glValidateProgram = cast(typeof(glValidateProgram))RGFW_getProcAddress_OpenGL(cast(const(char)*)"glValidateProgram".ptr); + glBindBufferBase = cast(typeof(glBindBufferBase))RGFW_getProcAddress_OpenGL(cast(const(char)*)"glBindBufferBase".ptr); + glGetUniformBlockIndex = cast(typeof(glGetUniformBlockIndex))RGFW_getProcAddress_OpenGL(cast(const(char)*)"glGetUniformBlockIndex".ptr); + glEnableVertexAttribArray = cast(typeof(glEnableVertexAttribArray))RGFW_getProcAddress_OpenGL(cast(const(char)*)"glEnableVertexAttribArray".ptr); + glDisableVertexAttribArray = cast(typeof(glDisableVertexAttribArray))RGFW_getProcAddress_OpenGL(cast(const(char)*)"glDisableVertexAttribArray".ptr); + glBlendFuncSeparate = cast(typeof(glBlendFuncSeparate))RGFW_getProcAddress_OpenGL(cast(const(char)*)"glBlendFuncSeparate".ptr); + glBindVertexArray = cast(typeof(glBindVertexArray))RGFW_getProcAddress_OpenGL(cast(const(char)*)"glBindVertexArray".ptr); + glBindBuffer = cast(typeof(glBindBuffer))RGFW_getProcAddress_OpenGL(cast(const(char)*)"glBindBuffer".ptr); + glBufferData = cast(typeof(glBufferData))RGFW_getProcAddress_OpenGL(cast(const(char)*)"glBufferData".ptr); + glBufferSubData = cast(typeof(glBufferSubData))RGFW_getProcAddress_OpenGL(cast(const(char)*)"glBufferSubData".ptr); + glVertexAttribDivisor = cast(typeof(glVertexAttribDivisor))RGFW_getProcAddress_OpenGL(cast(const(char)*)"glVertexAttribDivisor".ptr); + glVertexAttribPointer = cast(typeof(glVertexAttribPointer))RGFW_getProcAddress_OpenGL(cast(const(char)*)"glVertexAttribPointer".ptr); + glDrawArraysInstanced = cast(typeof(glDrawArraysInstanced))RGFW_getProcAddress_OpenGL(cast(const(char)*)"glDrawArraysInstanced".ptr); + glDrawElementsInstanced = cast(typeof(glDrawElementsInstanced))RGFW_getProcAddress_OpenGL(cast(const(char)*)"glDrawElementsInstanced".ptr); + glGetUniformLocation = cast(typeof(glGetUniformLocation))RGFW_getProcAddress_OpenGL(cast(const(char)*)"glGetUniformLocation".ptr); + glUniform1f = cast(typeof(glUniform1f))RGFW_getProcAddress_OpenGL(cast(const(char)*)"glUniform1f".ptr); + glUniform2f = cast(typeof(glUniform2f))RGFW_getProcAddress_OpenGL(cast(const(char)*)"glUniform2f".ptr); + glUniform3f = cast(typeof(glUniform3f))RGFW_getProcAddress_OpenGL(cast(const(char)*)"glUniform3f".ptr); + glUniform4f = cast(typeof(glUniform4f))RGFW_getProcAddress_OpenGL(cast(const(char)*)"glUniform4f".ptr); + glUniform1i = cast(typeof(glUniform1i))RGFW_getProcAddress_OpenGL(cast(const(char)*)"glUniform1i".ptr); + glUniform2i = cast(typeof(glUniform2i))RGFW_getProcAddress_OpenGL(cast(const(char)*)"glUniform2i".ptr); + glUniform3i = cast(typeof(glUniform3i))RGFW_getProcAddress_OpenGL(cast(const(char)*)"glUniform3i".ptr); + glUniform4i = cast(typeof(glUniform4i))RGFW_getProcAddress_OpenGL(cast(const(char)*)"glUniform4i".ptr); + glCreateProgram = cast(typeof(glCreateProgram))RGFW_getProcAddress_OpenGL(cast(const(char)*)"glCreateProgram".ptr); + glCreateShader = cast(typeof(glCreateShader))RGFW_getProcAddress_OpenGL(cast(const(char)*)"glCreateShader".ptr); + glDeleteFramebuffers = cast(typeof(glDeleteFramebuffers))RGFW_getProcAddress_OpenGL(cast(const(char)*)"glDeleteFramebuffers".ptr); + glDeleteProgram = cast(typeof(glDeleteProgram))RGFW_getProcAddress_OpenGL(cast(const(char)*)"glDeleteProgram".ptr); + glDeleteShader = cast(typeof(glDeleteShader))RGFW_getProcAddress_OpenGL(cast(const(char)*)"glDeleteShader".ptr); + glShaderSource = cast(typeof(glShaderSource))RGFW_getProcAddress_OpenGL(cast(const(char)*)"glShaderSource".ptr); + glGetProgramiv = cast(typeof(glGetProgramiv))RGFW_getProcAddress_OpenGL(cast(const(char)*)"glGetProgramiv".ptr); + glGetProgramInfoLog = cast(typeof(glGetProgramInfoLog))RGFW_getProcAddress_OpenGL(cast(const(char)*)"glGetProgramInfoLog".ptr); + glGetShaderiv = cast(typeof(glGetShaderiv))RGFW_getProcAddress_OpenGL(cast(const(char)*)"glGetShaderiv".ptr); + glGetShaderInfoLog = cast(typeof(glGetShaderInfoLog))RGFW_getProcAddress_OpenGL(cast(const(char)*)"glGetShaderInfoLog".ptr); + glAttachShader = cast(typeof(glAttachShader))RGFW_getProcAddress_OpenGL(cast(const(char)*)"glAttachShader".ptr); + glLinkProgram = cast(typeof(glLinkProgram))RGFW_getProcAddress_OpenGL(cast(const(char)*)"glLinkProgram".ptr); static if(!__traits(compiles, { glActiveTexture(0x84C0); })) { - glActiveTexture = cast(typeof(glActiveTexture))RGFW_getProcAddress_OpenGL(cast(u8*)"glActiveTexture".ptr); + glActiveTexture = cast(typeof(glActiveTexture))RGFW_getProcAddress_OpenGL(cast(const(char)*)"glActiveTexture".ptr); } return glDeleteRenderbuffers != null; diff --git a/test.sh b/test.sh index 4c4644e..d97c9de 100755 --- a/test.sh +++ b/test.sh @@ -86,7 +86,6 @@ else -Jbuild -d-version=VULKAN_RENDERER_TEST -d-version=DLIB_ASSETS - -d-version=COMPILE_TEST -d-version=BUILD_GL -Xcc=-DBUILD_VULKAN -Xcc=-DBUILD_ASSETS