#include "god/build.h" #include "god/slang.h" #include "god/utils.h" #include "god/common.h" void build_shader(char *name, enum slang_stage stage) { struct slang_settings shadercc = { .entry = string_clone("funnyassets/gfx_shaders/%s.slang", name), .stage = stage, .output_type = SLANG_OUTPUT_SPIRV, }; char *file = slang_compile(shadercc); mv(string_clone("funnyassets/_rtt/gfx/%s.spv",name),file); }; void makepak(struct build_data b, char *name) { struct run_project rp = run_new("python"); run_add_arg(&rp, "tools/makepak64.py"); run_add_arg(&rp, string_clone("funnyassets/_%s",name)); run_add_arg(&rp, string_clone("build/"GAME_NAME"/game/"GAME_NAME"/%s.pak", name)); run_run(&rp); }; void assets_build(struct build_data b) { remove("funnyassets/_rtt"); makedir("funnyassets/_rtt/gfx"); build_shader("brush_frag", SLANG_STAGE_FRAGMENT); build_shader("brush_vert", SLANG_STAGE_VERTEX); build_shader("mesh_frag", SLANG_STAGE_FRAGMENT); build_shader("mesh_vert", SLANG_STAGE_VERTEX); mv("funnyassets/_rtt/","funnyassets/maps"); mv("funnyassets/_rtt/","funnyassets/gfx"); mv("funnyassets/_rtt/","funnyassets/textures"); mv("funnyassets/_rtt/","funnyassets/materials"); makepak(b, "rtt"); }