/* Copyright (C) 2021 Harry Godden (hgn) - All Rights Reserved */
+static void vg_exiterr( const char *err );
+static void vg_exit(void);
+
#ifndef VG_HEADER_H
#define VG_HEADER_H
#include <stdio.h>
#include <stdlib.h>
#include <dirent.h>
-#include <stdint.h>
#include <string.h>
#include <stdarg.h>
#include <ctype.h>
#include <math.h>
-#include "glad/glad.h"
-#include "glfw/glfw3.h"
+#if defined(VG_SERVER) || defined(VG_TOOLS)
+ #define VG_NON_CLIENT
+#endif
+
+#ifndef VG_SERVER
+#include "../../dep/glad/glad.h"
+#include "../../dep/glfw/glfw3.h"
+#endif
#define STB_DS_IMPLEMENTATION
#include "stb/stb_ds.h"
#define QOI_IMPLEMENTATION
#include "phoboslab/qoi.h"
-#include "vg/vg_platform.h"
+#include "vg_stdint.h"
+#include "vg_platform.h"
void vg_register_exit( void( *funcptr )(void), const char *name );
-void vg_exiterr( const char *strErr );
-#include "vg/vg_m.h"
-#include "vg/vg_io.h"
-#include "vg/vg_gldiag.h"
+#include "vg_m.h"
+#include "vg_io.h"
+
+#ifdef VG_STEAM
+//#include "vg_steamworks.h"
+#include "vg_steam.h"
+#endif
-#ifndef VG_TOOLS
+#ifndef VG_NON_CLIENT
+#include "vg_gldiag.h"
+#endif
+
+#ifndef VG_NON_CLIENT
/* Engine globals */
GLFWwindow* vg_window;
vg_time_last,
vg_time_delta;
-#include "vg/vg_audio.h"
-#include "vg/vg_shader.h"
-#include "vg/vg_tex.h"
-#include "vg/vg_input.h"
-#include "vg/vg_ui.h"
-#include "vg/vg_console.h"
-#include "vg/vg_lines.h"
-#include "vg/vg_debug.h"
-
-#ifdef VG_STEAM
-#include "vg/vg_steamworks.h"
-#endif
+#include "vg_audio.h"
+#include "vg_shader.h"
+#include "vg_tex.h"
+#include "vg_input.h"
+#include "vg_ui.h"
+#include "vg_console.h"
+#include "vg_lines.h"
+#include "vg_debug.h"
#ifndef VG_RELEASE
void vg_checkgl( const char *src_info )
vg_on_exit[ vg_exit_count ++ ] = funcptr;
}
-void vg_exit(void)
+static void vg_exit(void)
{
for( int i = vg_exit_count-1; i >= 0; i -- )
{
}
vg_info( "done\n" );
+ exit(0);
}
-void vg_exiterr( const char *strErr )
+static void vg_exiterr( const char *err )
{
- vg_error( "Engine Fatal: %s\n", strErr );
+ vg_error( "Engine Fatal: %s\n", err );
vg_exit();
- exit(0);
}
void vg_mouse_callback( GLFWwindow* ptrW, double xpos, double ypos )
.function = vg_shaders_recompile
});
-
+ if( !vg_audio_init() )
+ vg_exit();
+ vg_register_exit( &vg_audio_free, "vg_audio_free" );
+
vg_start();
vg_console_init();
vg_register_exit( &vg_console_free, "Console" );
-
- vg_audio_init();
- vg_register_exit( &vg_audio_free, "vg_audio_free" );
-
- vg_debugtools_setup();
/*
* Main gameloop
ui_set_mouse( &ui_global_ctx, vg_mouse[0], vg_mouse[1],
vg_get_button_state( "primary" ) );
+ audio_debug_ui( vg_pv );
vg_ui();
vg_console_draw();
- vg_debugtools_draw();
ui_resolve( &ui_global_ctx );
ui_draw( &ui_global_ctx, NULL );