c: Move runtime Shaders folder into Data

This commit is contained in:
2025-06-15 22:00:44 +10:00
parent 661bc2f3cc
commit 84e0800479
2 changed files with 8 additions and 6 deletions

View File

@@ -29,7 +29,7 @@ function (add_lesson target)
endif() endif()
set_source_files_properties(${path} PROPERTIES set_source_files_properties(${path} PROPERTIES
HEADER_FILE_ONLY ON HEADER_FILE_ONLY ON
MACOSX_PACKAGE_LOCATION "Resources/Shaders") MACOSX_PACKAGE_LOCATION "Resources/Data/Shaders")
target_sources(${target} PRIVATE "${path}") target_sources(${target} PRIVATE "${path}")
endforeach() endforeach()
foreach (resource IN LISTS arg_DATA) foreach (resource IN LISTS arg_DATA)

View File

@@ -389,20 +389,22 @@ bool NeHe_LoadShaders(NeHeContext* restrict ctx,
{ {
SDL_GPUShader *vtxShader = NULL, *frgShader = NULL; 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 char* resources = SDL_GetBasePath(); // Resources directory
const size_t resourcesLen = SDL_strlen(resources); const size_t resourcesLen = SDL_strlen(resources);
const size_t nameLen = SDL_strlen(name); 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); char* path = SDL_malloc(basenameLen + 10);
if (!path) if (!path)
{ {
return false; return false;
} }
SDL_memcpy(path, resources, resourcesLen); SDL_memcpy(path, resources, resourcesLen);
SDL_memcpy(&path[resourcesLen], "Shaders", 7); SDL_memcpy(&path[resourcesLen], "Data", 4);
path[resourcesLen + 7] = resources[resourcesLen - 1]; // Copy path separator path[resourcesLen + 4] = resources[resourcesLen - 1]; // Copy path separator
SDL_memcpy(&path[resourcesLen + 8], name, nameLen); 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); const SDL_GPUShaderFormat availableFormats = SDL_GetGPUShaderFormats(ctx->device);
if (availableFormats & (SDL_GPU_SHADERFORMAT_METALLIB | SDL_GPU_SHADERFORMAT_MSL)) if (availableFormats & (SDL_GPU_SHADERFORMAT_METALLIB | SDL_GPU_SHADERFORMAT_MSL))