diff options
author | Patryk Obara <dreamer.tan@gmail.com> | 2021-03-22 18:59:30 +0300 |
---|---|---|
committer | Patryk Obara <dreamer.tan@gmail.com> | 2021-03-22 18:59:30 +0300 |
commit | 51b0f07cc1b851dac04eb8e7db04c3d651100cfa (patch) | |
tree | 7108f811d3c74f1ca204e6d09e61db6d2276e634 | |
parent | f2ca8f258d15e7174ad94a6abc27ffb2c7c5f34a (diff) |
WIP harden the extension listing a bit morepo/opengl-investigation-2
-rw-r--r-- | src/gui/sdlmain.cpp | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/src/gui/sdlmain.cpp b/src/gui/sdlmain.cpp index c492c5217..bcc7b137a 100644 --- a/src/gui/sdlmain.cpp +++ b/src/gui/sdlmain.cpp @@ -2270,6 +2270,8 @@ static void GUI_StartUp(Section *sec) glUniform1i = (PFNGLUNIFORM1IPROC)SDL_GL_GetProcAddress("glUniform1i"); glUseProgram = (PFNGLUSEPROGRAMPROC)SDL_GL_GetProcAddress("glUseProgram"); glVertexAttribPointer = (PFNGLVERTEXATTRIBPOINTERPROC)SDL_GL_GetProcAddress("glVertexAttribPointer"); + + LOG_MSG("OPENGL: glGetStringi %p", glGetStringi); glGetStringi = (PFNGLGETSTRINGIPROC)SDL_GL_GetProcAddress("glGetStringi"); sdl.opengl.use_shader = (glAttachShader && glCompileShader && glCreateProgram && glDeleteProgram && glDeleteShader && \ @@ -2297,6 +2299,7 @@ static void GUI_StartUp(Section *sec) LOG_MSG("OPENGL: glBufferDataARB %p", glBufferDataARB); LOG_MSG("OPENGL: glMapBufferARB %p", glMapBufferARB); LOG_MSG("OPENGL: glUnmapBufferARB %p", glUnmapBufferARB); + LOG_MSG("OPENGL: glGetStringi %p", glGetStringi); // TODO According to Khronos documentation, the correct // way to query GL_EXTENSIONS is using glGetStringi from @@ -2304,7 +2307,7 @@ static void GUI_StartUp(Section *sec) // as GLEW or libepoxy) const char * gl_ext = (const char *)glGetString (GL_EXTENSIONS); - LOG_MSG("OPENGL: after getting extensions"); + LOG_MSG("OPENGL: after getting extensions %p", gl_ext); // hmm? line below crashes on macOS? //LOG_MSG("OPENGL: GL_EXTENSIONS (%zu): %s", strlen(gl_ext), gl_ext); @@ -2333,6 +2336,7 @@ static void GUI_StartUp(Section *sec) : "missing"); LOG_MSG("OPENGL: testing new method:"); + LOG_MSG("OPENGL: glGetStringi %p", glGetStringi); bool found = false; if (glGetStringi == nullptr) { @@ -2340,9 +2344,14 @@ static void GUI_StartUp(Section *sec) } else { GLint n; glGetIntegerv(GL_NUM_EXTENSIONS, &n); + LOG_MSG("OPENGL: GL_NUM_EXTENSIONS %d", n); + if (n < 0) + n = 0; + char gl_ext[30]; for (GLint i = 0; i < n; i++) { - const std::string gl_extension = (char *)glGetStringi(GL_EXTENSIONS, i); - printf(":: %d %s\n", i, gl_extension.c_str()); + safe_strcpy(gl_ext, (char *)glGetStringi(GL_EXTENSIONS, i)); + const std::string gl_extension = gl_ext; + LOG_MSG(":: %d %s", i, gl_extension.c_str()); if (gl_extension == "GL_ARB_pixel_buffer_object") found = true; } |