From 84e08004790d896217cbafbbc9311661e3b37624 Mon Sep 17 00:00:00 2001 From: a dinosaur Date: Sun, 15 Jun 2025 22:00:44 +1000 Subject: [PATCH] c: Move runtime Shaders folder into Data --- cmake/modules/AddLesson.cmake | 2 +- src/c/nehe.c | 12 +++++++----- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/cmake/modules/AddLesson.cmake b/cmake/modules/AddLesson.cmake index 79cc75d..eab4ea4 100644 --- a/cmake/modules/AddLesson.cmake +++ b/cmake/modules/AddLesson.cmake @@ -29,7 +29,7 @@ function (add_lesson target) endif() set_source_files_properties(${path} PROPERTIES HEADER_FILE_ONLY ON - MACOSX_PACKAGE_LOCATION "Resources/Shaders") + MACOSX_PACKAGE_LOCATION "Resources/Data/Shaders") target_sources(${target} PRIVATE "${path}") endforeach() foreach (resource IN LISTS arg_DATA) diff --git a/src/c/nehe.c b/src/c/nehe.c index b4eb9ac..0ca8d67 100644 --- a/src/c/nehe.c +++ b/src/c/nehe.c @@ -389,20 +389,22 @@ bool NeHe_LoadShaders(NeHeContext* restrict ctx, { SDL_GPUShader *vtxShader = NULL, *frgShader = NULL; - // Build path to shader: "{base}/Shaders/{name}.{ext}" + // Build path to shader: "{base}/Data/Shaders/{name}.{ext}" const char* resources = SDL_GetBasePath(); // Resources directory const size_t resourcesLen = SDL_strlen(resources); const size_t nameLen = SDL_strlen(name); - const size_t basenameLen = resourcesLen + 8 + nameLen; + const size_t basenameLen = resourcesLen + 13 + nameLen; char* path = SDL_malloc(basenameLen + 10); if (!path) { return false; } SDL_memcpy(path, resources, resourcesLen); - SDL_memcpy(&path[resourcesLen], "Shaders", 7); - path[resourcesLen + 7] = resources[resourcesLen - 1]; // Copy path separator - SDL_memcpy(&path[resourcesLen + 8], name, nameLen); + SDL_memcpy(&path[resourcesLen], "Data", 4); + path[resourcesLen + 4] = resources[resourcesLen - 1]; // Copy path separator + SDL_memcpy(&path[resourcesLen + 5], "Shaders", 7); + path[resourcesLen + 12] = resources[resourcesLen - 1]; // Copy path separator + SDL_memcpy(&path[resourcesLen + 13], name, nameLen); const SDL_GPUShaderFormat availableFormats = SDL_GetGPUShaderFormats(ctx->device); if (availableFormats & (SDL_GPU_SHADERFORMAT_METALLIB | SDL_GPU_SHADERFORMAT_MSL))