From 71c5c16c375f110a83f3d3054368e127066b2c78 Mon Sep 17 00:00:00 2001 From: hgn Date: Thu, 22 Feb 2024 08:41:24 +0000 Subject: [PATCH] build system revision --- build.c | 107 ++++++++++------------- build.sh | 2 +- dist/steam_cache/depot_build_1218141.vdf | 4 +- dist/steam_cache/depot_build_1218142.vdf | 4 +- fishladder_vg1.c | 15 ---- input.h | 10 +-- marblecomp.c | 68 ++++++++------ marblecomp_settings.h | 6 +- 8 files changed, 99 insertions(+), 117 deletions(-) diff --git a/build.c b/build.c index de7e45b..73806d3 100644 --- a/build.c +++ b/build.c @@ -1,4 +1,3 @@ -#include "vg/vg.h" #include "vg/vg_platform.h" #include "vg/vg_log.h" #include "vg/vg_opt.h" @@ -12,18 +11,19 @@ u32 optimize_test_compile = 0; * Compilation specifications * -------------------------------------------------------------------------- */ -void build_game_content(void){ - const char *project_name = vg_build.project_name.buffer; - vg_low( "Building game content structure\n" ); - vg_symlink( "textures_qoi", "textures" ); - vg_symlink( "maps", "maps" ); - vg_symlink( "sound", "sound" ); - vg_syscall( "mkdir -p bin/%s/cfg", project_name ); - vg_syscall( "mkdir -p bin/%s/sav", project_name ); +void build_game_content( struct vg_project *proj ) +{ + vg_project_new_target( proj, "Content files", k_obj_type_none ); + vg_symlink( proj, "textures_qoi", "textures" ); + vg_symlink( proj, "maps", "maps" ); + vg_symlink( proj, "sound", "sound" ); + vg_syscall( "mkdir -p bin/%s/cfg", proj->uid.buffer ); + vg_syscall( "mkdir -p bin/%s/sav", proj->uid.buffer ); } void build_shaders(void); -void compile_game( int binaries, int content ){ +void build_game_bin( struct vg_project *proj ) +{ static int meta = 0; if( !meta ){ meta = 1; @@ -31,17 +31,19 @@ void compile_game( int binaries, int content ){ vg_low( "\n\n" ); } - vg_build_new( "marblecomp" ); - - if( binaries ){ - vg_add_source( "marblecomp.c" ); - vg_add_graphics(); - vg_add_game_stuff(); - vg_compile( "fishladder" ); - } - - if( content ) - build_game_content(); + vg_project_new_target( proj, "fishladder", k_obj_type_exe ); + vg_add_engine( proj, &(struct vg_engine_config) + { + .fixed_update_hz = 60, + .legacy_support_vg_msg1 = 0, + .log_source_info = 1, + .steam_api = 1, + .use_3d = 0, + .custom_game_settings = 1 + }); + + vg_add_source( proj, "marblecomp.c" ); + vg_compile_project( proj ); } /* @@ -51,48 +53,32 @@ void compile_game( int binaries, int content ){ void s_release_all(void){ vg_info( "running script: s_release_all(void)\n" ); - vg_build.optimization = 3; - vg_build.fresh = 1; - vg_build.arch = k_architecture_x86_64; - vg_build.compiler = k_compiler_zigcc; - vg_build.libc = k_libc_version_2_23; - - /* binaries for windows and linux */ - vg_build.platform = k_platform_windows; - compile_game( 1, 1 ); - vg_tarball_last_project(); - vg_success( "Completed 1/2\n" ); - - vg_build.platform = k_platform_linux; - compile_game( 1, 1 ); - vg_tarball_last_project(); - vg_success( "Completed 2/2\n" ); - -#if 0 - /* content files for any platform */ - vg_build.platform = k_platform_anyplatform; - vg_build.compiler = k_compiler_blob; - vg_build.arch = k_architecture_anyarch; - vg_build.libc = k_libc_version_native; - compile_game( 0, 1 ); - vg_tarball_last_project(); - vg_success( "Completed 3/3\n" ); -#endif + struct vg_project linux_proj, windows_proj; + + struct vg_env env = vg_release_env; + env.platform = k_platform_linux; + vg_project_init( &linux_proj, &env, "marblecomp" ); + build_game_content( &linux_proj ); + build_game_bin( &linux_proj ); + + env = vg_release_env; + env.platform = k_platform_windows; + vg_project_init( &windows_proj, &env, "marblecomp" ); + build_game_content( &windows_proj ); + build_game_bin( &windows_proj ); + + vg_tarball_project( &linux_proj ); + vg_tarball_project( &windows_proj ); } void s_testing_build(void){ vg_info( "running script: s_testing_build(void)\n" ); - vg_build.optimization = optimize_test_compile; - vg_build.fresh = 0; - vg_build.platform = k_platform_linux; - vg_build.arch = k_architecture_x86_64; - vg_build.compiler = k_compiler_clang; - vg_build.libc = k_libc_version_native; - - compile_game( 1, 1 ); + struct vg_project test_proj; + vg_project_init( &test_proj, &vg_test_env, "marblecomp-test" ); - vg_success( "Completed 1/1\n" ); + build_game_content( &test_proj ); + build_game_bin( &test_proj ); } int main( int argc, char *argv[] ){ @@ -105,13 +91,10 @@ int main( int argc, char *argv[] ){ s_testing_build(); if( vg_opt('r') ) - optimize_test_compile = 3; + vg_test_env.optimization = 3; } - if( vg_build.warnings ) - vg_warn( "Finished with %u warnings\n", vg_build.warnings ); - else - vg_success( "All scripts ran successfully\n" ); + vg_success( "All scripts ran successfully\n" ); } #define _S( NAME, VS, FS ) \ diff --git a/build.sh b/build.sh index d807648..f5175ea 100755 --- a/build.sh +++ b/build.sh @@ -1 +1 @@ -clang -fsanitize=address -O0 -I./vg build.c -o /tmp/tmpsr && /tmp/tmpsr $@ +clang -fsanitize=address -O0 -I./vg build.c vg/vg_tool.c -o /tmp/tmpsr && /tmp/tmpsr $@ diff --git a/dist/steam_cache/depot_build_1218141.vdf b/dist/steam_cache/depot_build_1218141.vdf index eef2fff..3a78db0 100755 --- a/dist/steam_cache/depot_build_1218141.vdf +++ b/dist/steam_cache/depot_build_1218141.vdf @@ -4,6 +4,6 @@ "depotid" "1218141" "flags" "0" "steamid" "76561198072130043" - "manifest" "5841690690099065898" - "baselinemanifest" "6242687686564087841" + "manifest" "5141257285104113125" + "baselinemanifest" "4806168269097984635" } diff --git a/dist/steam_cache/depot_build_1218142.vdf b/dist/steam_cache/depot_build_1218142.vdf index 6fec429..134a819 100755 --- a/dist/steam_cache/depot_build_1218142.vdf +++ b/dist/steam_cache/depot_build_1218142.vdf @@ -4,6 +4,6 @@ "depotid" "1218142" "flags" "0" "steamid" "76561198072130043" - "manifest" "5738002581659433661" - "baselinemanifest" "2883070295580438548" + "manifest" "8087969014587143684" + "baselinemanifest" "9117998720832101161" } diff --git a/fishladder_vg1.c b/fishladder_vg1.c index d58d229..0908357 100644 --- a/fishladder_vg1.c +++ b/fishladder_vg1.c @@ -3755,21 +3755,6 @@ void _mc_vg1_start(void){ sw_leaderboard_downloaded = &leaderboard_downloaded; #endif - vg_console_reg_cmd( "_map_write", console_save_map, NULL ); - vg_console_reg_cmd( "_map_load", console_load_map, NULL ); - vg_console_reg_cmd( "map", console_changelevel, NULL ); - vg_console_reg_cmd( "credits", console_credits, NULL ); - vg_console_reg_var( "colours", &marblecomp.colour_set, k_var_dtype_i32, - VG_VAR_PERSISTENT ); - vg_console_reg_var( "theme", &marblecomp.world_theme, k_var_dtype_i32, - VG_VAR_PERSISTENT ); - vg_console_reg_var( "enable_bloom", &marblecomp.bloom, k_var_dtype_i32, - VG_VAR_PERSISTENT ); - vg_console_reg_var( "enable_vignette", &marblecomp.vignette, k_var_dtype_i32, - VG_VAR_PERSISTENT ); - vg_console_reg_var( "music", &marblecomp.music, k_var_dtype_i32, - VG_VAR_PERSISTENT ); - // Combined quad, long quad / empty circle / filled circle mesh { float combined_mesh[6*6 + 32*6*3] = { diff --git a/input.h b/input.h index 5bc501a..164d5f2 100644 --- a/input.h +++ b/input.h @@ -1,12 +1,10 @@ -#ifndef INPUT_H -#define INPUT_H - -#define VG_GAME -#include "vg/vg.h" +#pragma once #include "vg/vg_platform.h" #include "vg/vg_console.h" #include "vg/vg_input.h" #include "vg/vg_m.h" +#include "vg/vg_tex.h" +#include "vg/vg_imgui.h" enum sr_bind{ k_srbind_primary = 0, @@ -176,5 +174,3 @@ static void skaterift_preupdate_inputs(void){ } } } - -#endif /* INPUT_H */ diff --git a/marblecomp.c b/marblecomp.c index b84e640..a6d9b50 100644 --- a/marblecomp.c +++ b/marblecomp.c @@ -1,23 +1,14 @@ -#define VG_GAME -#define VG_AUDIO_FORCE_COMPRESSED -#define VG_2D -#define VG_LOG_SOURCE_INFO -#define VG_TIMESTEP_FIXED (1.0/60.0) -#define VG_GAME_SETTINGS - -#ifndef VG_RELEASE - #define VG_DEVWINDOW -#endif - -#define SDL_MAIN_HANDLED - +#include "vg/vg_engine.h" +#include "vg/vg_audio.h" +#include "vg/vg_loader.h" +#include "vg/vg_async.h" +#include "vg/vg_lines.h" #define STB_DS_IMPLEMENTATION #include "vg/submodules/stb/stb_ds.h" - -#include "vg/vg.h" #include "steam.h" -struct { +struct +{ enum mc_op { k_mc_op_none, k_mc_op_clientloading @@ -43,11 +34,13 @@ int main( int argc, char *argv[] ){ return 0; } -static void vg_launch_opt(void){ +void vg_launch_opt(void) +{ const char *arg; } -static void vg_preload(void){ +void vg_preload(void) +{ vg_audio.dsp_enabled = 0; vg_info(" Copyright . . . -----, ,----- ,---. .---. \n" ); vg_info(" 2021-2023 |\\ /| | / | | | | /| \n" ); @@ -76,8 +69,25 @@ static void async_call_ready( void *payload, u32 size ){ audio_unlock(); } -static void vg_load(void){ +void vg_load(void) +{ /* --------------------- */ + vg_console_reg_cmd( "_map_write", console_save_map, NULL ); + vg_console_reg_cmd( "_map_load", console_load_map, NULL ); + vg_console_reg_cmd( "map", console_changelevel, NULL ); + vg_console_reg_cmd( "credits", console_credits, NULL ); + vg_console_reg_var( "colours", &marblecomp.colour_set, k_var_dtype_i32, + VG_VAR_PERSISTENT ); + vg_console_reg_var( "theme", &marblecomp.world_theme, k_var_dtype_i32, + VG_VAR_PERSISTENT ); + vg_console_reg_var( "enable_bloom", &marblecomp.bloom, k_var_dtype_i32, + VG_VAR_PERSISTENT ); + vg_console_reg_var( "enable_vignette", &marblecomp.vignette, k_var_dtype_i32, + VG_VAR_PERSISTENT ); + vg_console_reg_var( "music", &marblecomp.music, k_var_dtype_i32, + VG_VAR_PERSISTENT ); + + vg_audio.always_keep_compressed = 1; _mc_vg1_register(); _mc_resource_load_main(); vg_bake_shaders(); @@ -100,29 +110,34 @@ void _mc_vg1_projection_update(void){ } -static void vg_pre_update(void){ +void vg_pre_update(void) +{ steam_update(); if( marblecomp.op == k_mc_op_clientloading ) return; skaterift_preupdate_inputs(); _mc_vg1_update(); } -static void vg_fixed_update(void){ +void vg_fixed_update(void) +{ if( marblecomp.op == k_mc_op_clientloading ) return; } -static void vg_post_update(void){ +void vg_post_update(void) +{ if( marblecomp.op == k_mc_op_clientloading ) return; _mc_vg1_projection_update(); } -static void vg_framebuffer_resize( int w, int h ){ +void vg_framebuffer_resize( int w, int h ) +{ _mc_vg1_framebuffer_resize(w,h); } -static void vg_render(void){ +void vg_render(void) +{ if( marblecomp.op == k_mc_op_clientloading ){ - _vg_loader_render(); + vg_loader_render(); return; } @@ -140,7 +155,8 @@ static void vg_render(void){ vg_lines_drawall(); } -static void vg_gui(void){ +void vg_gui(void) +{ if( marblecomp.op == k_mc_op_clientloading ) return; vg_ui.wants_mouse = 1; _mc_vg1_ui(); diff --git a/marblecomp_settings.h b/marblecomp_settings.h index 3952fba..47ebfbc 100644 --- a/marblecomp_settings.h +++ b/marblecomp_settings.h @@ -37,7 +37,8 @@ static mc_settings = { .options = mc_settings_binary, .option_count = 2 } }; -static void vg_game_settings_init(void){ +void vg_game_settings_init(void) +{ ui_settings_enum_init( &mc_settings.colourscheme ); ui_settings_enum_init( &mc_settings.bloom ); ui_settings_enum_init( &mc_settings.vignette ); @@ -45,7 +46,8 @@ static void vg_game_settings_init(void){ ui_settings_enum_init( &mc_settings.music ); } -static void vg_game_settings_gui( ui_rect panel ){ +void vg_game_settings_gui( ui_rect panel ) +{ ui_rect rq; ui_standard_widget( panel, rq, 1 ); -- 2.25.1