Mercurial > sdl-ios-xcode
comparison src/video/ataricommon/SDL_atarigl.c @ 995:22fc5f45bbb7
TinyGL does not have glFinish, only glFlush
author | Patrice Mandin <patmandin@gmail.com> |
---|---|
date | Sun, 28 Nov 2004 21:52:29 +0000 |
parents | 2662da16d668 |
children | fbeac9312843 |
comparison
equal
deleted
inserted
replaced
994:c4e5473672b6 | 995:22fc5f45bbb7 |
---|---|
114 { | 114 { |
115 #ifdef HAVE_OPENGL | 115 #ifdef HAVE_OPENGL |
116 | 116 |
117 #ifdef ENABLE_OSMESA_SHARED | 117 #ifdef ENABLE_OSMESA_SHARED |
118 void *handle; | 118 void *handle; |
119 SDL_bool cancel_load; | |
119 | 120 |
120 if (gl_active) { | 121 if (gl_active) { |
121 SDL_SetError("OpenGL context already created"); | 122 SDL_SetError("OpenGL context already created"); |
122 return -1; | 123 return -1; |
123 } | 124 } |
156 return -1; | 157 return -1; |
157 } | 158 } |
158 | 159 |
159 this->gl_data->glGetIntegerv = SDL_LoadFunction(handle, "glGetIntegerv"); | 160 this->gl_data->glGetIntegerv = SDL_LoadFunction(handle, "glGetIntegerv"); |
160 this->gl_data->glFinish = SDL_LoadFunction(handle, "glFinish"); | 161 this->gl_data->glFinish = SDL_LoadFunction(handle, "glFinish"); |
161 | 162 this->gl_data->glFlush = SDL_LoadFunction(handle, "glFlush"); |
162 if ( (this->gl_data->glGetIntegerv == NULL) || | 163 |
163 (this->gl_data->glFinish == NULL)) { | 164 cancel_load = SDL_FALSE; |
165 if (this->gl_data->glGetIntegerv == NULL) { | |
166 cancel_load = SDL_TRUE; | |
167 } else { | |
168 /* We need either glFinish (OSMesa) or glFlush (TinyGL) */ | |
169 if ((this->gl_data->glFinish == NULL) && | |
170 (this->gl_data->glFlush == NULL)) { | |
171 cancel_load = SDL_TRUE; | |
172 } | |
173 } | |
174 if (cancel_load) { | |
164 SDL_SetError("Could not retrieve OpenGL functions"); | 175 SDL_SetError("Could not retrieve OpenGL functions"); |
165 SDL_UnloadObject(handle); | 176 SDL_UnloadObject(handle); |
166 /* Restore pointers to static library */ | 177 /* Restore pointers to static library */ |
167 SDL_AtariGL_InitPointers(this); | 178 SDL_AtariGL_InitPointers(this); |
168 return -1; | 179 return -1; |
235 { | 246 { |
236 #ifdef HAVE_OPENGL | 247 #ifdef HAVE_OPENGL |
237 GLenum mesa_attrib; | 248 GLenum mesa_attrib; |
238 SDL_Surface *surface; | 249 SDL_Surface *surface; |
239 | 250 |
240 if (this->gl_config.dll_handle) { | |
241 if (this->gl_data->glGetIntegerv == NULL) { | |
242 return -1; | |
243 } | |
244 } | |
245 | |
246 if (!gl_active) { | 251 if (!gl_active) { |
247 return -1; | 252 return -1; |
248 } | 253 } |
249 | 254 |
250 switch(attrib) { | 255 switch(attrib) { |
342 #ifdef HAVE_OPENGL | 347 #ifdef HAVE_OPENGL |
343 if (gl_active) { | 348 if (gl_active) { |
344 if (this->gl_config.dll_handle) { | 349 if (this->gl_config.dll_handle) { |
345 if (this->gl_data->glFinish) { | 350 if (this->gl_data->glFinish) { |
346 this->gl_data->glFinish(); | 351 this->gl_data->glFinish(); |
352 } else if (this->gl_data->glFlush) { | |
353 this->gl_data->glFlush(); | |
347 } | 354 } |
348 } else { | 355 } else { |
349 this->gl_data->glFinish(); | 356 this->gl_data->glFinish(); |
350 } | 357 } |
351 gl_copyshadow(this, this->screen); | 358 gl_copyshadow(this, this->screen); |
363 this->gl_data->OSMesaPixelStore = OSMesaPixelStore; | 370 this->gl_data->OSMesaPixelStore = OSMesaPixelStore; |
364 this->gl_data->OSMesaGetProcAddress = OSMesaGetProcAddress; | 371 this->gl_data->OSMesaGetProcAddress = OSMesaGetProcAddress; |
365 | 372 |
366 this->gl_data->glGetIntegerv = glGetIntegerv; | 373 this->gl_data->glGetIntegerv = glGetIntegerv; |
367 this->gl_data->glFinish = glFinish; | 374 this->gl_data->glFinish = glFinish; |
375 this->gl_data->glFlush = glFlush; | |
368 | 376 |
369 this->gl_data->OSMesaCreateLDG = NULL; | 377 this->gl_data->OSMesaCreateLDG = NULL; |
370 this->gl_data->OSMesaDestroyLDG = NULL; | 378 this->gl_data->OSMesaDestroyLDG = NULL; |
371 #endif | 379 #endif |
372 } | 380 } |