Added ability to disable the 'SDL_GL_ACCELERATED_VISUAL' hint when

creating the SDL window in OpenGL mode.  This defaults to being on,
and should only be disabled when necessary.  Such cases include using
ATI video hardware in Windows, where the result will be a red screen.

This isn't really the best solution, as it may cause some slowdowns
in OpenGL rendering.  But it's the best that can be done for now, until
the bug is fixed in the ATI OpenGL drivers.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1679 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
This commit is contained in:
stephena 2009-03-12 15:57:41 +00:00
parent b12dc3a7a6
commit 96f0f6a304
3 changed files with 13 additions and 3 deletions

View File

@ -632,6 +632,13 @@
problems for some people using ATI video cards.</td>
</tr>
<tr>
<td><pre>-gl_accel &lt;1|0&gt;</pre></td>
<td>OpenGL mode only. Use SDL_GL_ACCELERATED_VISUAL hint when creating
the SDL window. This causes problems for some people using ATI
video cards, in which case it should be set to false.</td>
</tr>
<tr>
<td><pre>-tia_filter &lt;filter&gt;</pre></td>
<td>Use the specified filter while in TIA/emulation mode. Currently,

View File

@ -13,7 +13,7 @@
// See the file "license" for information on usage and redistribution of
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
//
// $Id: FrameBufferGL.cxx,v 1.139 2009-03-12 15:37:07 stephena Exp $
// $Id: FrameBufferGL.cxx,v 1.140 2009-03-12 15:57:41 stephena Exp $
//============================================================================
#ifdef DISPLAY_OPENGL
@ -252,7 +252,8 @@ bool FrameBufferGL::setVidMode(VideoMode& mode)
SDL_GL_SetAttribute( SDL_GL_BLUE_SIZE, myRGB[2] );
SDL_GL_SetAttribute( SDL_GL_ALPHA_SIZE, myRGB[3] );
SDL_GL_SetAttribute( SDL_GL_DOUBLEBUFFER, 1 );
SDL_GL_SetAttribute( SDL_GL_ACCELERATED_VISUAL, 1 );
if(myOSystem->settings().getBool("gl_accel"))
SDL_GL_SetAttribute( SDL_GL_ACCELERATED_VISUAL, 1 );
// There's no guarantee this is supported on all hardware
// We leave it to the user to test and decide

View File

@ -13,7 +13,7 @@
// See the file "license" for information on usage and redistribution of
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
//
// $Id: Settings.cxx,v 1.163 2009-01-24 17:32:29 stephena Exp $
// $Id: Settings.cxx,v 1.164 2009-03-12 15:57:41 stephena Exp $
//============================================================================
#include <cassert>
@ -46,6 +46,7 @@ Settings::Settings(OSystem* osystem)
setInternal("gl_lib", "libGL.so");
setInternal("gl_vsync", "false");
setInternal("gl_texrect", "false");
setInternal("gl_accel", "true");
// Framebuffer-related options
setInternal("tia_filter", "zoom2x");
@ -304,6 +305,7 @@ void Settings::usage()
<< " -gl_fsmax <1|0> Stretch GL image in fullscreen emulation mode\n"
<< " -gl_vsync <1|0> Enable synchronize to vertical blank interrupt\n"
<< " -gl_texrect <1|0> Enable GL_TEXTURE_RECTANGLE extension\n"
<< " -gl_accel <1|0> Enable SDL_GL_ACCELERATED_VISUAL\n"
<< endl
#endif
<< " -tia_filter <filter> Use the specified filter in emulation mode\n"