X-Git-Url: https://harrygodden.com/git/?p=fishladder.git;a=blobdiff_plain;f=marblecomp.c;fp=marblecomp.c;h=d9f8cd8f0504306b5c9f3f4b8c01db830c5a7933;hp=0000000000000000000000000000000000000000;hb=4caef139af0996dfb541b7c0b1b1ab31864840ee;hpb=0376d40412c8a4ca4762edad190b07c745ee897e diff --git a/marblecomp.c b/marblecomp.c new file mode 100644 index 0000000..d9f8cd8 --- /dev/null +++ b/marblecomp.c @@ -0,0 +1,94 @@ +#define VG_GAME +#define VG_AUDIO_FORCE_COMPRESSED +#define VG_2D +#define VG_LOG_SOURCE_INFO +#define VG_TIMESTEP_FIXED (1.0/60.0) + +#ifndef VG_RELEASE + #define VG_DEVWINDOW +#endif + +#define SDL_MAIN_HANDLED + +#include "vg/vg.h" +#include "fishladder_vg1.c" + +struct { + enum mc_op { + k_mc_op_none, + k_mc_op_clientloading + } + op; +} +static marblecomp = { .op = k_mc_op_clientloading }; + +int main( int argc, char *argv[] ){ + vg_mem.use_libc_malloc = 0; + vg_set_mem_quota( 80*1024*1024 ); + vg_enter( argc, argv, "Voyager Game Engine" ); + return 0; +} + +static void vg_launch_opt(void){ + const char *arg; +} + +static void vg_preload(void){ +vg_info(" Copyright . . . -----, ,----- ,---. .---. \n" ); +vg_info(" 2021-2023 |\\ /| | / | | | | /| \n" ); +vg_info(" | \\ / | +-- / +----- +---' | / | \n" ); +vg_info(" | \\ / | | / | | \\ | / | \n" ); +vg_info(" | \\/ | | / | | \\ | / | \n" ); +vg_info(" ' ' '--' [] '----- '----- ' ' '---' " + "SOFTWARE\n" ); +} + +static void async_call_ready( void *payload, u32 size ){ + marblecomp.op = k_mc_op_none; +} + +static void vg_load(void){ + /* --------------------- */ + vg_bake_shaders(); + vg_async_call( async_call_ready, NULL, 0 ); +} + +static void vg_pre_update(void){ + if( marblecomp.op == k_mc_op_clientloading ) return; +} + +static void vg_fixed_update(void){ + if( marblecomp.op == k_mc_op_clientloading ) return; +} + +static void vg_post_update(void){ + if( marblecomp.op == k_mc_op_clientloading ) return; +} + +static void vg_framebuffer_resize( int w, int h ){ +} + +static void vg_render(void){ + if( marblecomp.op == k_mc_op_clientloading ){ + _vg_loader_render(); + return; + } + + glBindFramebuffer( GL_FRAMEBUFFER, 0 ); + glViewport( 0,0, vg.window_x, vg.window_y ); + glDisable( GL_DEPTH_TEST ); + glDisable( GL_BLEND ); + + glClearColor( 0.0f, 0.3f, 0.5f, 0.0f ); + glClear( GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT ); + + m4x4_identity( vg.pv ); + + glDisable(GL_BLEND); + glDisable(GL_DEPTH_TEST); + vg_lines_drawall(); +} + +static void vg_gui(void){ + if( marblecomp.op == k_mc_op_clientloading ) return; +}