X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=vg.h;h=4b8956a1989c7cd5ff7ba57d7b65712a606de78a;hb=3b841cc427adddeeb5b624d254587a45622d506d;hp=2a52614b5fc2803c56c0e328edae5e88d580a507;hpb=1664bf74e63bb7bfd57d92447bc692846c1d957a;p=vg.git diff --git a/vg.h b/vg.h index 2a52614..4b8956a 100644 --- a/vg.h +++ b/vg.h @@ -26,17 +26,17 @@ |IMP| | |.------------- vg_start(void) ---------------' | | | | | | | v -|IMP| | vg_update(void) +|IMP| | vg_pre_update(void) | | | | | | | .-----+. -| | | | | +| | | | | called 0x to 8x | | | | v -|IMP| | '- vg_update_fixed(void) +|IMP| | '- vg_fixed_update(void) | | | | | | | .-' | | | | | | | v -|IMP| | vg_update_post(void) +|IMP| | vg_post_update(void) | | | | | | | v |IMP| | vg_render(void) @@ -56,35 +56,6 @@ #include "vg_platform.h" #include "vg_mem.h" - - #ifndef _WIN32 - #include - #endif - -VG_STATIC void vg_print_backtrace(void) -{ -#ifndef _WIN32 - - void *array[20]; - char **strings; - int size, i; - - size = backtrace( array, 20 ); - strings = backtrace_symbols( array, size ); - - if( strings != NULL ){ - vg_error( "---------------- gnu backtrace -------------\n" ); - - for( int i=0; i= VG_TIMESTEP_FIXED ){ - vg_update_fixed(); + vg_fixed_update(); vg_lines.allow_input = 0; - vg.time_fixed_accumulator -= VG_TIMESTEP_FIXED; - //vg.accumulator = VG_MAX( 0.0, vg.accumulator ); vg.fixed_iterations ++; if( vg.fixed_iterations == 8 ){ @@ -437,11 +421,11 @@ VG_STATIC void _vg_gameloop_update(void) vg.time_fixed_extrapolate = vg.time_fixed_accumulator / VG_TIMESTEP_FIXED; vg.engine_stage = k_engine_stage_update; - vg_update_post(); + vg_post_update(); vg_profile_end( &vg_prof_update ); } -VG_STATIC void _vg_gameloop_render(void) +static void _vg_gameloop_render(void) { vg_profile_begin( &vg_prof_render ); @@ -463,7 +447,9 @@ VG_STATIC void _vg_gameloop_render(void) else vg_gui(); /* vg tools */ +#ifndef VG_NO_AUDIO audio_debug_ui( vg.pv ); +#endif /* profiling */ int frame_target = vg.display_refresh_rate; @@ -489,7 +475,7 @@ VG_STATIC void _vg_gameloop_render(void) vg.samples, vg.fixed_iterations, (vg.time_fixed_accumulator/VG_TIMESTEP_FIXED)*100.0f, - vg.time, vg.time_delta, vg.time_rate, + vg.time_real, vg.time_delta, vg.time_rate, vg.time_fixed_extrapolate, vg.time_frame_delta, vg.time_spinning ); @@ -501,7 +487,7 @@ VG_STATIC void _vg_gameloop_render(void) vg_profile_end( &vg_prof_render ); } -VG_STATIC int vg_framefilter( double dt ) +static int vg_framefilter( double dt ) { if( (vg.fps_limit <= 0) && (vg.vsync_feature != k_vsync_feature_error) ){ /* turn on vsync if not enabled */ @@ -567,7 +553,7 @@ VG_STATIC int vg_framefilter( double dt ) return 0; } -VG_STATIC int _vg_crashscreen(void) +static int _vg_crashscreen(void) { #if 0 if( vg_getkey( SDLK_ESCAPE ) ) @@ -580,7 +566,7 @@ VG_STATIC int _vg_crashscreen(void) glBlendFunc(GL_ONE_MINUS_DST_ALPHA, GL_DST_ALPHA); glBlendEquation(GL_FUNC_ADD); - glClearColor( 0.15f + sinf(vg.time)*0.1f, 0.0f, 0.0f,1.0f ); + glClearColor( 0.15f + sinf(vg.time_real)*0.1f, 0.0f, 0.0f,1.0f ); glClear( GL_COLOR_BUFFER_BIT ); glViewport( 0,0, vg.window_x, vg.window_y ); @@ -589,8 +575,7 @@ VG_STATIC int _vg_crashscreen(void) return 0; } -VG_STATIC void _vg_gameloop(void) -{ +static void _vg_gameloop(void){ //vg.time_fixed_accumulator = 0.75f * (1.0f/60.0f); vg.time_hp = SDL_GetPerformanceCounter(); @@ -616,6 +601,7 @@ VG_STATIC void _vg_gameloop(void) enum engine_status status = _vg_engine_status(); + vg.time_real += vg.time_frame_delta; vg.time_delta = vg.time_frame_delta * vg.time_rate; vg.time += vg.time_delta; @@ -640,8 +626,8 @@ VG_STATIC void _vg_gameloop(void) } if( vg.loader_ring > 0.01f ){ - vg.loader_ring -= vg.time_frame_delta * 0.5f; _vg_loader_render_ring( vg.loader_ring ); + vg.loader_ring -= vg.time_frame_delta * 0.5f; } vg.time_frame_delta = 0.0; @@ -649,7 +635,7 @@ VG_STATIC void _vg_gameloop(void) } } -VG_STATIC void _vg_process_launch_opts_internal( int argc, char *argv[] ) +static void _vg_process_launch_opts_internal( int argc, char *argv[] ) { char *arg; while( vg_argp( argc, argv ) ){ @@ -677,7 +663,7 @@ VG_STATIC void _vg_process_launch_opts_internal( int argc, char *argv[] ) } } -VG_STATIC void _vg_init_window( const char *window_name ) +static void _vg_init_window( const char *window_name ) { vg_info( "SDL_INIT\n" ); @@ -686,7 +672,9 @@ VG_STATIC void _vg_init_window( const char *window_name ) exit(0); } +#ifndef VG_NO_AUDIO SDL_InitSubSystem( SDL_INIT_AUDIO ); +#endif SDL_InitSubSystem( SDL_INIT_GAMECONTROLLER ); char *exe_basepath = SDL_GetBasePath(); @@ -721,11 +709,6 @@ VG_STATIC void _vg_init_window( const char *window_name ) display_index = 0, mode_index = 0; -#ifdef VG_DEVWINDOW - vg.window_x = 1600; - vg.window_y = 1000; -#else - SDL_DisplayMode video_mode; if( SDL_GetDesktopDisplayMode( display_index, &video_mode ) ){ vg_error( "SDL_GetDesktopDisplayMode failed: %s\n", SDL_GetError() ); @@ -736,6 +719,10 @@ VG_STATIC void _vg_init_window( const char *window_name ) vg.display_refresh_rate = video_mode.refresh_rate; vg.window_x = video_mode.w; vg.window_y = video_mode.h; + +#ifdef VG_DEVWINDOW + vg.window_x = 1200; + vg.window_y = 880; #endif #ifndef _WIN32 @@ -753,7 +740,9 @@ VG_STATIC void _vg_init_window( const char *window_name ) #ifdef VG_DEVWINDOW 0, 0, vg.window_x, vg.window_y, SDL_WINDOW_BORDERLESS|SDL_WINDOW_OPENGL|SDL_WINDOW_INPUT_GRABBED - ))){} + ))){ + SDL_SetWindowPosition( vg.window, video_mode.w-vg.window_x, 0 ); + } #else 0, 0, vg.window_x, vg.window_y, @@ -827,7 +816,7 @@ VG_STATIC void _vg_init_window( const char *window_name ) #endif } -VG_STATIC void _vg_terminate(void) +static void _vg_terminate(void) { /* Shutdown */ _vg_console_write_persistent(); @@ -845,7 +834,7 @@ VG_STATIC void _vg_terminate(void) exit(0); } -VG_STATIC void vg_enter( int argc, char *argv[], const char *window_name ) +static void vg_enter( int argc, char *argv[], const char *window_name ) { vg_rand_seed( 461 ); _vg_process_launch_opts_internal( argc, argv ); @@ -874,11 +863,11 @@ VG_STATIC void vg_enter( int argc, char *argv[], const char *window_name ) _vg_terminate(); } -VG_STATIC void vg_fatal_error( const char *fmt, ... ) +static void vg_fatal_error( const char *fmt, ... ) { va_list args; va_start( args, fmt ); - _vg_log_write( stderr, KRED " fatal" KWHT "| " KRED, fmt, args ); + _vg_logx_va( stderr, NULL, "fatal", KRED, fmt, args ); va_end( args ); vg_print_backtrace(); @@ -899,11 +888,11 @@ VG_STATIC void vg_fatal_error( const char *fmt, ... ) #else /* VG_GAME */ #include "vg_log.h" -VG_STATIC void vg_fatal_error( const char *fmt, ... ) +static void vg_fatal_error( const char *fmt, ... ) { va_list args; va_start( args, fmt ); - _vg_log_write( stderr, KRED " fatal" KWHT "| " KRED, fmt, args ); + _vg_logx_va( stderr, NULL, "fatal", KRED, fmt, args ); va_end( args ); exit(0); } @@ -916,4 +905,6 @@ VG_STATIC void vg_fatal_error( const char *fmt, ... ) u32 NvOptimusEnablement = 0x00000001; int AmdPowerXpressRequestHighPerformance = 1; +#include "vg_log.c" + #endif /* VG_HEADER_H */