compile flags for stb image
[vg.git] / vg.h
diff --git a/vg.h b/vg.h
index 62651c0277e9a249d6364d5fbdf760db61c6383b..2a52614b5fc2803c56c0e328edae5e88d580a507 100644 (file)
--- a/vg.h
+++ b/vg.h
@@ -52,6 +52,8 @@
 #ifndef VG_HEADER_H
   #define VG_HEADER_H
 
+  const char *vg_get_basepath(void);
+
   #include "vg_platform.h"
   #include "vg_mem.h"
 
@@ -86,7 +88,7 @@ VG_STATIC void vg_print_backtrace(void)
   
   #ifdef VG_GAME
     #include "dep/glad/glad.h"
-    #include "submodules/SDL/include/SDL.h"
+    #include "dep/sdl/include/SDL.h"
     #include "vg_stdint.h"
     
     void vg_register_exit( void( *funcptr )(void), const char *name );
@@ -95,7 +97,6 @@ VG_STATIC void vg_print_backtrace(void)
     #include "vg_io.h"
     #include "vg_log.h"
     #include "vg_steam.h"
-    #include <setjmp.h>
 
   //#define VG_SYNC_DEBUG
   #ifdef VG_SYNC_DEBUG
@@ -200,6 +201,9 @@ struct vg{
    float loader_ring;
 }
 VG_STATIC vg = { .time_rate = 1.0 };
+const char *vg_get_basepath(void){
+   return vg.base_path;
+}
 
 enum vg_thread_purpose
 {
@@ -248,7 +252,6 @@ VG_STATIC void vg_checkgl( const char *src_info );
 #include "vg_shader.h"
 #include "vg_tex.h"
 #include "vg_input.h"
-#include "vg_ui.h"
 #include "vg_imgui.h"
 #include "vg_lines.h"
 #include "vg_loader.h"
@@ -328,7 +331,8 @@ VG_STATIC void _vg_process_events(void)
    SDL_Event event;
    while( SDL_PollEvent( &event ) ){
       if( event.type == SDL_KEYDOWN ){
-         if( vg_console.enabled ){
+         if( vg_console.enabled && 
+               (vg_ui.focused_control_type != k_ui_control_modal) ){
             if( event.key.keysym.sym == SDLK_ESCAPE ||
                 event.key.keysym.sym == SDLK_BACKQUOTE ){
                vg_console.enabled = 0;
@@ -458,26 +462,18 @@ VG_STATIC void _vg_gameloop_render(void)
       }
       else vg_gui();
 
-      ui_postrender();
-#if 0
-      ui_begin( vg.window_x, vg.window_y );
-
-      /* TODO */
-      ui_set_mouse( vg.mouse_pos[0], vg.mouse_pos[1], 0 );
+      /* vg tools */
+      audio_debug_ui( vg.pv );
 
+               /* profiling */
       int frame_target = vg.display_refresh_rate;
-
-      if( vg.fps_limit > 0 ){
-         frame_target = vg.fps_limit;
-      }
-      
+      if( vg.fps_limit > 0 ) frame_target = vg.fps_limit;
       vg_profile_drawn( 
             (struct vg_profile *[]){
                &vg_prof_update,&vg_prof_render,&vg_prof_swap}, 3,
             (1.0f/(float)frame_target)*1000.0f, 
             (ui_rect){ 4, 4, 250, 0 }, 0
       );
-
       if( vg_profiler ){
          char perf[256];
          
@@ -487,11 +483,7 @@ VG_STATIC void _vg_gameloop_render(void)
                "samples: %d\n"
                "iterations: %d (acc: %.3fms%%)\n"
                "time: real(%.2f) delta(%.2f) rate(%.2f)\n"
-#ifdef _WIN32
-               "      extrap(%.2f) frame(%.2f) spin( %llu )\n",
-#else
-               "      extrap(%.2f) frame(%.2f) spin( %lu )\n",
-#endif
+               "      extrap(%.2f) frame(%.2f) spin( "PRINTF_U64" )\n",
                vg.window_x, vg.window_y, 
                frame_target, (1.0f/(float)frame_target)*1000.0f,
                vg.samples, 
@@ -501,16 +493,9 @@ VG_STATIC void _vg_gameloop_render(void)
                vg.time_fixed_extrapolate, vg.time_frame_delta,
                vg.time_spinning );
 
-         ui_text( (ui_rect){258, 4+24+12+12,0,0},perf, 1,0);
+         ui_text( (ui_rect){258, 4+24+12+12,900,900},perf,1,0,k_ui_align_left);
       }
-
-      /* FIXME */
-      audio_debug_ui( vg.pv );
-      vg_gui();
-      
-      ui_resolve();
-      ui_draw( NULL );
-#endif
+      ui_postrender();
    }
 
    vg_profile_end( &vg_prof_render );