From: hgn Date: Sat, 24 Dec 2022 01:37:23 +0000 (+0000) Subject: Fix calling interval at wrong time X-Git-Url: https://harrygodden.com/git/?p=vg.git;a=commitdiff_plain;h=ddd27c64a6306cc84a55c8f7eb70e5a1fd540b1c Fix calling interval at wrong time --- diff --git a/vg.h b/vg.h index 5c2decf..1945b82 100644 --- a/vg.h +++ b/vg.h @@ -640,13 +640,17 @@ VG_STATIC void _vg_process_launch_opts_internal( int argc, char *argv[] ) VG_STATIC void _vg_init_window( const char *window_name ) { - if( SDL_Init(SDL_INIT_VIDEO|SDL_INIT_AUDIO|SDL_INIT_GAMECONTROLLER) != 0 ) + vg_info( "SDL_INIT\n" ); + + if( SDL_Init( SDL_INIT_VIDEO ) != 0 ) { vg_error( "SDL_Init failed: %s\n", SDL_GetError() ); exit(0); } - SDL_GL_SetSwapInterval( 1 ); + SDL_InitSubSystem( SDL_INIT_AUDIO ); + SDL_InitSubSystem( SDL_INIT_GAMECONTROLLER ); + SDL_GL_SetAttribute( SDL_GL_DOUBLEBUFFER, 1 ); SDL_GL_SetAttribute( SDL_GL_CONTEXT_MAJOR_VERSION, 3 ); SDL_GL_SetAttribute( SDL_GL_CONTEXT_MINOR_VERSION, 3 ); @@ -665,6 +669,7 @@ VG_STATIC void _vg_init_window( const char *window_name ) /* * Get monitor information */ + vg_info( "Getting display count\n" ); int display_count = 0, display_index = 0, mode_index = 0; if( (display_count = SDL_GetNumVideoDisplays()) < 1 ) { @@ -673,6 +678,7 @@ VG_STATIC void _vg_init_window( const char *window_name ) } /* TODO: Allow chosing the modes at startup */ + vg_info( "Getting display mode\n" ); SDL_DisplayMode mode = { SDL_PIXELFORMAT_UNKNOWN, 0, 0, 0, 0 }; if( SDL_GetDisplayMode( display_index, mode_index, &mode ) != 0 ) { @@ -682,6 +688,8 @@ VG_STATIC void _vg_init_window( const char *window_name ) vg.refresh_rate = mode.refresh_rate; + vg_info( "CreateWindow\n" ); + /* TODO: Allow selecting closest video mode from launch opts */ if((vg.window = SDL_CreateWindow( window_name, SDL_WINDOWPOS_UNDEFINED, @@ -699,6 +707,8 @@ VG_STATIC void _vg_init_window( const char *window_name ) exit(0); } + vg_info( "CreateContext\n" ); + /* * OpenGL loading */ @@ -724,6 +734,23 @@ VG_STATIC void _vg_init_window( const char *window_name ) const unsigned char* glver = glGetString( GL_VERSION ); vg_success( "Load setup complete, OpenGL version: %s\n", glver ); + + vg_info( "Setting swap interval\n" ); + + if( SDL_GL_SetSwapInterval( -1 ) == -1 ) + { + vg_warn( "Adaptive Vsync not supported\n" ); + + if( SDL_GL_SetSwapInterval( 1 ) == -1 ) + { + vg_fatal_exit_loop( "Cannot enable Vsync! You might be overriding it" + " in your graphics control panel.\n" ); + } + else + vg_success( "Using vsync\n" ); + } + else + vg_success( "Using adaptive Vsync\n" ); } VG_STATIC void vg_enter( int argc, char *argv[], const char *window_name )