Files
funnygame/funnyassets/__build.c
2025-05-25 23:37:40 +03:00

37 lines
1.0 KiB
C

#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(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);
mv("funnyassets/_rtt/","funnyassets/maps");
mv("funnyassets/_rtt/","funnyassets/gfx");
mv("funnyassets/_rtt/","funnyassets/textures");
mv("funnyassets/_rtt/","funnyassets/materials");
makepak("rtt");
}