Automatically mark GPU skinning in shaders

This commit is contained in:
mid 2025-02-09 22:24:37 +02:00
parent fff7690222
commit 130e0f1050

View File

@ -3043,12 +3043,19 @@ static int parse_glsl_table(struct k3Mat *mat) {
} }
lua_pop(L, 1); lua_pop(L, 1);
char prefix[272]; char prefix[512];
snprintf(prefix, sizeof(prefix), "#version %lu\n%s", vsVer, defs); const char *prefixfmt;
if(k3IsSoftSkinning) {
prefixfmt = "#version %lu\n%s";
} else {
prefixfmt = "#version %lu\n#define k3_GPU_SKINNING\n%s";
}
snprintf(prefix, sizeof(prefix), prefixfmt, vsVer, defs);
char *vsSrc = read_full_file(prefix, "assets/mdl/", vsFile, ""); char *vsSrc = read_full_file(prefix, "assets/mdl/", vsFile, "");
snprintf(prefix, sizeof(prefix), "#version %lu\n%s", fsVer, defs); snprintf(prefix, sizeof(prefix), prefixfmt, fsVer, defs);
char *fsSrc = read_full_file(prefix, "assets/mdl/", fsFile, ""); char *fsSrc = read_full_file(prefix, "assets/mdl/", fsFile, "");
k3Log(k3_INFO, "Attempting to compile \"%s\" & \"%s\"...", vsFile, fsFile); k3Log(k3_INFO, "Attempting to compile \"%s\" & \"%s\"...", vsFile, fsFile);