Separate handling for hlsl and fx files

This commit is contained in:
Simon Lübeß
2025-02-11 23:07:04 +01:00
parent 06b981e88a
commit 7a306cac69
52 changed files with 155 additions and 194 deletions
@@ -201,6 +201,7 @@ extension ShaderCompiler
{
StringView str = StringView((char8*)errorBlob.GetBufferPointer(), (int)errorBlob.GetBufferSize());
Log.EngineLogger.Error($"Failed to compile Shader: Error Code({(int)result}): {result} | Error Message: {str}");
return .Err;
}
}
@@ -121,10 +121,17 @@ class ShaderProcessor : IAssetProcessor
// Name in Shader -> Name in Engine
Dictionary<StringView, StringView> engineBuffers = scope .();
ProcessedShader processedShader = null;
defer
{
ClearDictionaryAndDeleteValues!(variables);
ClearAndDeleteItems!(bufferNames);
if (@return case .Err)
{
delete processedShader;
}
}
String code = new String(importedShader.HlslCode);
@@ -138,7 +145,7 @@ class ShaderProcessor : IAssetProcessor
return .Ok;
}
ProcessedShader processedShader = new ProcessedShader(new AssetIdentifier(importedShader.AssetIdentifier), config.AssetHandle);
processedShader = new ProcessedShader(new AssetIdentifier(importedShader.AssetIdentifier), config.AssetHandle);
Try!(CompileAndReflect(vsName, psName, importedShader, code, processedShader));