40 lines
1.2 KiB
C
40 lines
1.2 KiB
C
#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");
|
|
}
|