Skip to content

Commit

Permalink
Dynamically load glGetString(), to avoid direct dependency on OpenGL.
Browse files Browse the repository at this point in the history
  • Loading branch information
icculus committed Mar 2, 2014
1 parent 7393620 commit bafa4c7
Showing 1 changed file with 9 additions and 1 deletion.
10 changes: 9 additions & 1 deletion src/video/cocoa/SDL_cocoaopengl.m
Expand Up @@ -162,6 +162,7 @@ - (void)setWindow:(SDL_Window *)newWindow
Cocoa_GL_CreateContext(_THIS, SDL_Window * window)
{
SDL_VideoData *data = (SDL_VideoData *) _this->driverdata;
const GLubyte *(APIENTRY * glGetStringFunc)(GLenum) = NULL;
NSAutoreleasePool *pool;
SDL_VideoDisplay *display = SDL_GetDisplayForWindow(window);
SDL_DisplayData *displaydata = (SDL_DisplayData *)display->driverdata;
Expand Down Expand Up @@ -275,7 +276,14 @@ - (void)setWindow:(SDL_Window *)newWindow
return NULL;
}

glversion = (const char *)glGetString(GL_VERSION);
glGetStringFunc = (const GLubyte *(APIENTRY *)(GLenum)) SDL_GL_GetProcAddress("glGetString");
if (!glGetStringFunc) {
Cocoa_GL_DeleteContext(_this, context);
SDL_SetError ("Failed getting OpenGL glGetString entry point");
return NULL;
}

glversion = (const char *)glGetStringFunc(GL_VERSION);
if (glversion == NULL) {
Cocoa_GL_DeleteContext(_this, context);
SDL_SetError ("Failed getting OpenGL context version");
Expand Down

0 comments on commit bafa4c7

Please sign in to comment.