[SDL] OPENGLBLIT and Mac OSX

Darrell Walisser dwaliss1 at purdue.edu
Mon Apr 16 22:10:22 PDT 2001


SDL calls GL functions like so:

this->glFlush();

So that you can run SDL with OpenGL installed, since the symbol 
"glBegin()" is loaded explicitly. In other words, the run-time 
dependency of OpenGL has been removed. Which is actually a nice feature.

BUT SDL_GL_GetProcAddress is of course broken on MacOS X. I will attempt 
to fix this in the upcoming Quartz video driver.

A quick hack would be to change the macro in SDL_Video.c:

#ifdef HAVE_OPENGL
#define SDL_PROC(ret,func,params) \
do { \
	video->func = SDL_GL_GetProcAddress(#func); \
	if ( ! video->func ) { \
		SDL_SetError("Couldn't load GL function: %s\n", #func); \
		return(NULL); \
	} \
} while ( 0 );

To take out the test, and force the linker to load the function at 
runtime (whether you use OpenGL blitting or not.

For example:

video->func = #func;


On Monday, April 16, 2001, at 08:59 PM, Josh Bonczkowski wrote:

> I am playing around with SDL and decided to build an OpenGL sample.
> I started with SDL_OPENGLBLIT turned on and ran into problems.  I then
> traced it do only to the use of OPENGLBLIT.
>
> I can run the included test program with no options and everything
> is fine.  The sample runs
> and even at a decent frame rate :)  If the '-logo' is passed to the
> testgl sample, it attempts to use SDL_OPENGLBLIT and then dies with this
> error message: Couldn't load GL function: glBegin
>
> Any ideas?



More information about the SDL mailing list