mirror of
https://github.com/YGGverse/xash3d-fwgs.git
synced 2025-01-17 18:40:02 +00:00
sdl: vid: fix washed out screen on Windows and probably other platforms(#50)
This commit is contained in:
parent
b1406e8ecd
commit
eb22ff53c4
@ -712,27 +712,73 @@ void GL_SwapBuffers()
|
||||
SDL_GL_SwapWindow( host.hWnd );
|
||||
}
|
||||
|
||||
|
||||
int GL_SetAttribute( int attr, int val )
|
||||
{
|
||||
switch( attr )
|
||||
{
|
||||
#define MAP_REF_API_ATTRIBUTE_TO_SDL( name ) case REF_##name: return SDL_GL_SetAttribute( SDL_##name, val );
|
||||
MAP_REF_API_ATTRIBUTE_TO_SDL( GL_RED_SIZE );
|
||||
MAP_REF_API_ATTRIBUTE_TO_SDL( GL_GREEN_SIZE );
|
||||
MAP_REF_API_ATTRIBUTE_TO_SDL( GL_BLUE_SIZE );
|
||||
MAP_REF_API_ATTRIBUTE_TO_SDL( GL_ALPHA_SIZE );
|
||||
MAP_REF_API_ATTRIBUTE_TO_SDL( GL_DOUBLEBUFFER );
|
||||
MAP_REF_API_ATTRIBUTE_TO_SDL( GL_DEPTH_SIZE );
|
||||
MAP_REF_API_ATTRIBUTE_TO_SDL( GL_STENCIL_SIZE );
|
||||
MAP_REF_API_ATTRIBUTE_TO_SDL( GL_MULTISAMPLEBUFFERS );
|
||||
MAP_REF_API_ATTRIBUTE_TO_SDL( GL_MULTISAMPLESAMPLES );
|
||||
MAP_REF_API_ATTRIBUTE_TO_SDL( GL_ACCELERATED_VISUAL );
|
||||
MAP_REF_API_ATTRIBUTE_TO_SDL( GL_CONTEXT_MAJOR_VERSION );
|
||||
MAP_REF_API_ATTRIBUTE_TO_SDL( GL_CONTEXT_MINOR_VERSION );
|
||||
MAP_REF_API_ATTRIBUTE_TO_SDL( GL_CONTEXT_EGL );
|
||||
MAP_REF_API_ATTRIBUTE_TO_SDL( GL_CONTEXT_FLAGS );
|
||||
MAP_REF_API_ATTRIBUTE_TO_SDL( GL_SHARE_WITH_CURRENT_CONTEXT );
|
||||
MAP_REF_API_ATTRIBUTE_TO_SDL( GL_FRAMEBUFFER_SRGB_CAPABLE );
|
||||
MAP_REF_API_ATTRIBUTE_TO_SDL( GL_CONTEXT_RELEASE_BEHAVIOR );
|
||||
MAP_REF_API_ATTRIBUTE_TO_SDL( GL_CONTEXT_RESET_NOTIFICATION );
|
||||
MAP_REF_API_ATTRIBUTE_TO_SDL( GL_CONTEXT_NO_ERROR );
|
||||
case REF_GL_CONTEXT_PROFILE_MASK:
|
||||
#ifdef SDL_HINT_OPENGL_ES_DRIVER
|
||||
if( val == REF_GL_CONTEXT_PROFILE_ES )
|
||||
SDL_SetHint( SDL_HINT_OPENGL_ES_DRIVER, "1" );
|
||||
if (val == REF_GL_CONTEXT_PROFILE_ES)
|
||||
SDL_SetHint(SDL_HINT_OPENGL_ES_DRIVER, "1");
|
||||
#endif // SDL_HINT_OPENGL_ES_DRIVER
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
return SDL_GL_SetAttribute( SDL_GL_CONTEXT_PROFILE_MASK, val );
|
||||
#undef MAP_REF_API_ATTRIBUTE_TO_SDL
|
||||
}
|
||||
|
||||
return SDL_GL_SetAttribute( (SDL_GLattr)attr, val );
|
||||
ASSERT( 0 );
|
||||
return -1;
|
||||
}
|
||||
|
||||
int GL_GetAttribute( int attr, int *val )
|
||||
{
|
||||
return SDL_GL_GetAttribute( (SDL_GLattr)attr, val );
|
||||
switch( attr )
|
||||
{
|
||||
#define MAP_REF_API_ATTRIBUTE_TO_SDL( name ) case REF_##name: return SDL_GL_GetAttribute( SDL_##name, val );
|
||||
MAP_REF_API_ATTRIBUTE_TO_SDL( GL_RED_SIZE );
|
||||
MAP_REF_API_ATTRIBUTE_TO_SDL( GL_GREEN_SIZE );
|
||||
MAP_REF_API_ATTRIBUTE_TO_SDL( GL_BLUE_SIZE );
|
||||
MAP_REF_API_ATTRIBUTE_TO_SDL( GL_ALPHA_SIZE );
|
||||
MAP_REF_API_ATTRIBUTE_TO_SDL( GL_DOUBLEBUFFER );
|
||||
MAP_REF_API_ATTRIBUTE_TO_SDL( GL_DEPTH_SIZE );
|
||||
MAP_REF_API_ATTRIBUTE_TO_SDL( GL_STENCIL_SIZE );
|
||||
MAP_REF_API_ATTRIBUTE_TO_SDL( GL_MULTISAMPLEBUFFERS );
|
||||
MAP_REF_API_ATTRIBUTE_TO_SDL( GL_MULTISAMPLESAMPLES );
|
||||
MAP_REF_API_ATTRIBUTE_TO_SDL( GL_ACCELERATED_VISUAL );
|
||||
MAP_REF_API_ATTRIBUTE_TO_SDL( GL_CONTEXT_MAJOR_VERSION );
|
||||
MAP_REF_API_ATTRIBUTE_TO_SDL( GL_CONTEXT_MINOR_VERSION );
|
||||
MAP_REF_API_ATTRIBUTE_TO_SDL( GL_CONTEXT_EGL );
|
||||
MAP_REF_API_ATTRIBUTE_TO_SDL( GL_CONTEXT_FLAGS );
|
||||
MAP_REF_API_ATTRIBUTE_TO_SDL( GL_SHARE_WITH_CURRENT_CONTEXT );
|
||||
MAP_REF_API_ATTRIBUTE_TO_SDL( GL_FRAMEBUFFER_SRGB_CAPABLE );
|
||||
MAP_REF_API_ATTRIBUTE_TO_SDL( GL_CONTEXT_RELEASE_BEHAVIOR );
|
||||
MAP_REF_API_ATTRIBUTE_TO_SDL( GL_CONTEXT_RESET_NOTIFICATION );
|
||||
MAP_REF_API_ATTRIBUTE_TO_SDL( GL_CONTEXT_NO_ERROR );
|
||||
MAP_REF_API_ATTRIBUTE_TO_SDL( GL_CONTEXT_PROFILE_MASK );
|
||||
#undef MAP_REF_API_ATTRIBUTE_TO_SDL
|
||||
}
|
||||
|
||||
ASSERT( 0 );
|
||||
return 0;
|
||||
}
|
||||
|
||||
#ifndef EGL_LIB
|
||||
|
@ -169,27 +169,19 @@ typedef enum
|
||||
SAFE_DONTCARE // ignore everything, let SDL/EGL decide
|
||||
} ref_safegl_context_t;
|
||||
|
||||
// binary compatible with SDL2
|
||||
enum // OpenGL configuration attributes
|
||||
{
|
||||
REF_GL_RED_SIZE,
|
||||
REF_GL_GREEN_SIZE,
|
||||
REF_GL_BLUE_SIZE,
|
||||
REF_GL_ALPHA_SIZE,
|
||||
// UNUSED_REF_GL_BUFFER_SIZE,
|
||||
REF_GL_DOUBLEBUFFER = REF_GL_ALPHA_SIZE + 1,
|
||||
REF_GL_DOUBLEBUFFER,
|
||||
REF_GL_DEPTH_SIZE,
|
||||
REF_GL_STENCIL_SIZE,
|
||||
// UNUSED_REF_GL_ACCUM_RED_SIZE,
|
||||
// UNUSED_REF_GL_ACCUM_GREEN_SIZE,
|
||||
// UNUSED_REF_GL_ACCUM_BLUE_SIZE,
|
||||
// UNUSED_REF_GL_ACCUM_ALPHA_SIZE,
|
||||
// UNUSED_REF_GL_STEREO,
|
||||
REF_GL_MULTISAMPLEBUFFERS = REF_GL_STENCIL_SIZE + 5,
|
||||
REF_GL_MULTISAMPLEBUFFERS,
|
||||
REF_GL_MULTISAMPLESAMPLES,
|
||||
REF_GL_ACCELERATED_VISUAL,
|
||||
// UNUSED_REF_GL_RETAINED_BACKING,
|
||||
REF_GL_CONTEXT_MAJOR_VERSION = REF_GL_ACCELERATED_VISUAL + 1,
|
||||
REF_GL_CONTEXT_MAJOR_VERSION,
|
||||
REF_GL_CONTEXT_MINOR_VERSION,
|
||||
REF_GL_CONTEXT_EGL,
|
||||
REF_GL_CONTEXT_FLAGS,
|
||||
|
Loading…
x
Reference in New Issue
Block a user