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()
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)

View File

@@ -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))