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
@@ -1,11 +0,0 @@
{
AssetLoader = null,
Config = null,
Importer = "ShaderImporter",
ImporterConfig = null,
Processor = null,
ProcessorConfig = null,
Exporter = null,
ExporterConfig = null,
AssetHandle = 5221334043827499251
}
@@ -9,5 +9,5 @@
ExporterConfig = { ExporterConfig = {
_compression = .None _compression = .None
}, },
AssetHandle = 5246795156071151642 AssetHandle = 3971197750817239312
} }
@@ -1,3 +1,5 @@
// TODO: General pipeline for post processing effects
Texture2D Texture : register(t0); Texture2D Texture : register(t0);
SamplerState TextureSampler : register(s0); SamplerState TextureSampler : register(s0);
@@ -9,5 +9,5 @@
ExporterConfig = { ExporterConfig = {
_compression = .None _compression = .None
}, },
AssetHandle = 8512375832990505152 AssetHandle = 315199643377983302
} }
@@ -1,11 +0,0 @@
{
AssetLoader = null,
Config = null,
Importer = "ShaderImporter",
ImporterConfig = null,
Processor = null,
ProcessorConfig = null,
Exporter = null,
ExporterConfig = null,
AssetHandle = 9285471614459748654
}
@@ -1,11 +0,0 @@
{
AssetLoader = null,
Config = null,
Importer = "ShaderImporter",
ImporterConfig = null,
Processor = null,
ProcessorConfig = null,
Exporter = null,
ExporterConfig = null,
AssetHandle = 9184910549692735900
}
@@ -1,11 +0,0 @@
{
AssetLoader = null,
Config = null,
Importer = "ShaderImporter",
ImporterConfig = null,
Processor = null,
ProcessorConfig = null,
Exporter = null,
ExporterConfig = null,
AssetHandle = 1287916870077203420
}
@@ -1,11 +0,0 @@
{
AssetLoader = null,
Config = null,
Importer = "ShaderImporter",
ImporterConfig = null,
Processor = null,
ProcessorConfig = null,
Exporter = null,
ExporterConfig = null,
AssetHandle = 9019615224633186177
}
@@ -0,0 +1,13 @@
{
AssetLoader = null,
Config = null,
Importer = "ShaderImporter",
ImporterConfig = null,
Processor = null,
ProcessorConfig = null,
Exporter = null,
ExporterConfig = {
_compression = .None
},
AssetHandle = 17953005509950866729
}
@@ -1,11 +0,0 @@
{
AssetLoader = null,
Config = null,
Importer = "ShaderImporter",
ImporterConfig = null,
Processor = null,
ProcessorConfig = null,
Exporter = null,
ExporterConfig = null,
AssetHandle = 10014069858860408945
}
@@ -0,0 +1,13 @@
{
AssetLoader = null,
Config = null,
Importer = "ShaderImporter",
ImporterConfig = null,
Processor = null,
ProcessorConfig = null,
Exporter = null,
ExporterConfig = {
_compression = .None
},
AssetHandle = 16539769359681819317
}
@@ -0,0 +1,13 @@
{
AssetLoader = null,
Config = null,
Importer = "ShaderImporter",
ImporterConfig = null,
Processor = null,
ProcessorConfig = null,
Exporter = null,
ExporterConfig = {
_compression = .None
},
AssetHandle = 15706760057808399494
}
@@ -1,13 +0,0 @@
{
AssetLoader = null,
Config = null,
Importer = "ShaderImporter",
ImporterConfig = null,
Processor = null,
ProcessorConfig = null,
Exporter = null,
ExporterConfig = {
_compression = .None
},
AssetHandle = 4179932137221776017
}
@@ -0,0 +1,13 @@
{
AssetLoader = null,
Config = null,
Importer = "ShaderImporter",
ImporterConfig = null,
Processor = null,
ProcessorConfig = null,
Exporter = null,
ExporterConfig = {
_compression = .None
},
AssetHandle = 10636491756936205086
}
@@ -1,13 +0,0 @@
{
AssetLoader = null,
Config = null,
Importer = "ShaderImporter",
ImporterConfig = null,
Processor = null,
ProcessorConfig = null,
Exporter = null,
ExporterConfig = {
_compression = .None
},
AssetHandle = 8912920142436784175
}
@@ -9,5 +9,5 @@
ExporterConfig = { ExporterConfig = {
_compression = .None _compression = .None
}, },
AssetHandle = 6905134680069212587 AssetHandle = 5888610203248969416
} }
@@ -1,13 +0,0 @@
{
AssetLoader = null,
Config = null,
Importer = "ShaderImporter",
ImporterConfig = null,
Processor = null,
ProcessorConfig = null,
Exporter = null,
ExporterConfig = {
_compression = .None
},
AssetHandle = 18151489828256118978
}
@@ -9,5 +9,5 @@
ExporterConfig = { ExporterConfig = {
_compression = .None _compression = .None
}, },
AssetHandle = 4332390465159443321 AssetHandle = 9062891433306436746
} }
@@ -1,13 +0,0 @@
{
AssetLoader = null,
Config = null,
Importer = "ShaderImporter",
ImporterConfig = null,
Processor = null,
ProcessorConfig = null,
Exporter = null,
ExporterConfig = {
_compression = .None
},
AssetHandle = 8655864411897316846
}
@@ -0,0 +1,13 @@
{
AssetLoader = null,
Config = null,
Importer = "ShaderImporter",
ImporterConfig = null,
Processor = null,
ProcessorConfig = null,
Exporter = null,
ExporterConfig = {
_compression = .None
},
AssetHandle = 2172704887168568810
}
@@ -1,13 +0,0 @@
{
AssetLoader = null,
Config = null,
Importer = "ShaderImporter",
ImporterConfig = null,
Processor = null,
ProcessorConfig = null,
Exporter = null,
ExporterConfig = {
_compression = .None
},
AssetHandle = 8873320878521542705
}
@@ -0,0 +1,13 @@
{
AssetLoader = null,
Config = null,
Importer = "ShaderImporter",
ImporterConfig = null,
Processor = null,
ProcessorConfig = null,
Exporter = null,
ExporterConfig = {
_compression = .None
},
AssetHandle = 1519310858892551656
}
@@ -1,13 +0,0 @@
{
AssetLoader = null,
Config = null,
Importer = "ShaderImporter",
ImporterConfig = null,
Processor = null,
ProcessorConfig = null,
Exporter = null,
ExporterConfig = {
_compression = .None
},
AssetHandle = 14993433232700867484
}
@@ -0,0 +1,13 @@
{
AssetLoader = null,
Config = null,
Importer = "ShaderImporter",
ImporterConfig = null,
Processor = null,
ProcessorConfig = null,
Exporter = null,
ExporterConfig = {
_compression = .None
},
AssetHandle = 7757902626263730438
}
@@ -1,13 +0,0 @@
{
AssetLoader = null,
Config = null,
Importer = "ShaderImporter",
ImporterConfig = null,
Processor = null,
ProcessorConfig = null,
Exporter = null,
ExporterConfig = {
_compression = .None
},
AssetHandle = 9671561114069837759
}
@@ -0,0 +1,13 @@
{
AssetLoader = null,
Config = null,
Importer = "ShaderImporter",
ImporterConfig = null,
Processor = null,
ProcessorConfig = null,
Exporter = null,
ExporterConfig = {
_compression = .None
},
AssetHandle = 8094944104856236365
}
@@ -1,13 +0,0 @@
{
AssetLoader = null,
Config = null,
Importer = "ShaderImporter",
ImporterConfig = null,
Processor = null,
ProcessorConfig = null,
Exporter = null,
ExporterConfig = {
_compression = .None
},
AssetHandle = 13990953346248142933
}
Binary file not shown.
Binary file not shown.
@@ -18,14 +18,15 @@ class AssetThumbnailManager
if (assetNode.Path.EndsWith(".scene")) if (assetNode.Path.EndsWith(".scene"))
return _icons.File_Scene; return _icons.File_Scene;
if (assetNode.Path.EndsWith(".mat"))
return _icons.File_Material;
if (assetNode.Path.EndsWith(".cs")) if (assetNode.Path.EndsWith(".cs"))
return _icons.File_CSharpScript; return _icons.File_CSharpScript;
if (assetNode.Path.EndsWith(".hlsl")) if (assetNode.Path.EndsWith(".hlsl"))
return _icons.File_Shader; return _icons.File_Hlsl;
if (assetNode.Path.EndsWith(".fx"))
return _icons.File_Effect;
if (assetNode.Path.EndsWith(".mat"))
return _icons.File_Material;
return _icons.File; return _icons.File;
} }
@@ -28,7 +28,7 @@ class ShaderImporterConfig : AssetImporterConfig
class ShaderImporter : IAssetImporter class ShaderImporter : IAssetImporter
{ {
private static readonly List<StringView> _fileExtensions = new .(){".hlsl"} ~ delete _; private static readonly List<StringView> _fileExtensions = new .(){".fx"} ~ delete _;
public static List<StringView> FileExtensions => _fileExtensions; public static List<StringView> FileExtensions => _fileExtensions;
@@ -201,6 +201,7 @@ extension ShaderCompiler
{ {
StringView str = StringView((char8*)errorBlob.GetBufferPointer(), (int)errorBlob.GetBufferSize()); StringView str = StringView((char8*)errorBlob.GetBufferPointer(), (int)errorBlob.GetBufferSize());
Log.EngineLogger.Error($"Failed to compile Shader: Error Code({(int)result}): {result} | Error Message: {str}"); 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 // Name in Shader -> Name in Engine
Dictionary<StringView, StringView> engineBuffers = scope .(); Dictionary<StringView, StringView> engineBuffers = scope .();
ProcessedShader processedShader = null;
defer defer
{ {
ClearDictionaryAndDeleteValues!(variables); ClearDictionaryAndDeleteValues!(variables);
ClearAndDeleteItems!(bufferNames); ClearAndDeleteItems!(bufferNames);
if (@return case .Err)
{
delete processedShader;
}
} }
String code = new String(importedShader.HlslCode); String code = new String(importedShader.HlslCode);
@@ -138,7 +145,7 @@ class ShaderProcessor : IAssetProcessor
return .Ok; 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)); Try!(CompileAndReflect(vsName, psName, importedShader, code, processedShader));
+2 -2
View File
@@ -178,8 +178,8 @@ class TextureViewer
public this() public this()
{ {
_effect = Content.LoadAsset("Resources/Shaders/textureViewerShader.hlsl", null, true); _effect = Content.LoadAsset("Resources/Shaders/textureViewerShader.fx", null, true);
AssetHandle<Effect> effect = Content.LoadAsset("Resources/Shaders/RenderTargetGroupViewer.hlsl", null, true); AssetHandle<Effect> effect = Content.LoadAsset("Resources/Shaders/RenderTargetGroupViewer.fx", null, true);
_renderTargetMaterial = new Material(effect); _renderTargetMaterial = new Material(effect);
+4 -2
View File
@@ -28,11 +28,12 @@ namespace GlitchyEditor
public SubTexture2D File_Scene ~ _.ReleaseRef(); public SubTexture2D File_Scene ~ _.ReleaseRef();
public SubTexture2D File_Material ~ _.ReleaseRef(); public SubTexture2D File_Material ~ _.ReleaseRef();
public SubTexture2D File_CSharpScript ~ _.ReleaseRef(); public SubTexture2D File_CSharpScript ~ _.ReleaseRef();
public SubTexture2D File_Shader ~ _.ReleaseRef(); public SubTexture2D File_Effect ~ _.ReleaseRef();
public SubTexture2D Entity_Visible ~ _.ReleaseRef(); public SubTexture2D Entity_Visible ~ _.ReleaseRef();
public SubTexture2D Entity_Hidden ~ _.ReleaseRef(); public SubTexture2D Entity_Hidden ~ _.ReleaseRef();
public SubTexture2D Icon_Save ~ _.ReleaseRef(); public SubTexture2D Icon_Save ~ _.ReleaseRef();
public SubTexture2D Icon_ContextMenu ~ _.ReleaseRef(); public SubTexture2D Icon_ContextMenu ~ _.ReleaseRef();
public SubTexture2D File_Hlsl ~ _.ReleaseRef();
public static EditorIcons Instance => _editorIcons; public static EditorIcons Instance => _editorIcons;
@@ -66,11 +67,12 @@ namespace GlitchyEditor
File_Scene = GetNextGridTexture(ref pen, iconSize); File_Scene = GetNextGridTexture(ref pen, iconSize);
File_Material = GetNextGridTexture(ref pen, iconSize); File_Material = GetNextGridTexture(ref pen, iconSize);
File_CSharpScript = GetNextGridTexture(ref pen, iconSize); File_CSharpScript = GetNextGridTexture(ref pen, iconSize);
File_Shader = GetNextGridTexture(ref pen, iconSize); File_Effect = GetNextGridTexture(ref pen, iconSize);
Entity_Visible = GetNextGridTexture(ref pen, iconSize); Entity_Visible = GetNextGridTexture(ref pen, iconSize);
Entity_Hidden = GetNextGridTexture(ref pen, iconSize); Entity_Hidden = GetNextGridTexture(ref pen, iconSize);
Icon_Save = GetNextGridTexture(ref pen, iconSize); Icon_Save = GetNextGridTexture(ref pen, iconSize);
Icon_ContextMenu = GetNextGridTexture(ref pen, iconSize); Icon_ContextMenu = GetNextGridTexture(ref pen, iconSize);
File_Hlsl = GetNextGridTexture(ref pen, iconSize);
} }
public ~this() public ~this()
+16
View File
@@ -175,6 +175,22 @@ namespace GlitchyEditor
SaveScene(newScene, path); SaveScene(newScene, path);
} }
}, _editorIcons.File_Scene)); }, _editorIcons.File_Scene));
Editor.Instance.ContentBrowserWindow.RegisterAssetCreator(new AssetCreator("Shader File", "New Shader", ".hlsl", new (path) =>
{
// TODO!
}, _editorIcons.File_Hlsl));
Editor.Instance.ContentBrowserWindow.RegisterAssetCreator(new AssetCreator("2D Effect", "New Effect", ".fx", new (path) =>
{
// TODO!
}, _editorIcons.File_Effect));
// TODO: 3D Effect Lit, 3D Effect unlit, etc.
/*Editor.Instance.ContentBrowserWindow.RegisterAssetCreator(new AssetCreator("3D Effect", "New Effect", ".fx", new (path) =>
{
// TODO!
}, _editorIcons.File_Effect));*/
Editor.Instance.ContentBrowserWindow.RegisterAssetCreator(new AssetCreator("Material", "New Material", ".mat", new (path) => Editor.Instance.ContentBrowserWindow.RegisterAssetCreator(new AssetCreator("Material", "New Material", ".mat", new (path) =>
{ {
@@ -31,7 +31,7 @@ namespace GlitchyEngine.Renderer
{ {
Debug.Profiler.ProfileFunction!(); Debug.Profiler.ProfileFunction!();
_clearUintFx = Content.LoadAsset("Resources/Shaders/ClearUInt.hlsl", null, true); _clearUintFx = Content.LoadAsset("Resources/Shaders/ClearUInt.fx", null, true);
BlendStateDescription desc =.Default; BlendStateDescription desc =.Default;
desc.RenderTarget[0].BlendEnable = false; desc.RenderTarget[0].BlendEnable = false;
_nonblendingState = new BlendState(desc); _nonblendingState = new BlendState(desc);
+2 -4
View File
@@ -150,8 +150,6 @@ namespace GlitchyEngine.Renderer
{ {
Debug.Profiler.ProfileFunction!(); Debug.Profiler.ProfileFunction!();
//LineEffect = Content.LoadAsset("Shaders\\lineShader.hlsl");
LineGeometry = new GeometryBinding(); LineGeometry = new GeometryBinding();
LineGeometry.SetPrimitiveTopology(.LineList); LineGeometry.SetPrimitiveTopology(.LineList);
@@ -180,8 +178,8 @@ namespace GlitchyEngine.Renderer
static void InitDeferredRenderer() static void InitDeferredRenderer()
{ {
TestFullscreenEffect = Content.LoadAsset("Resources/Shaders/simpleLight.hlsl", null, true); TestFullscreenEffect = Content.LoadAsset("Resources/Shaders/simpleLight.fx", null, true);
s_tonemappingEffect = Content.LoadAsset("Resources/Shaders/SimpleTonemapping.hlsl", null, true); s_tonemappingEffect = Content.LoadAsset("Resources/Shaders/SimpleTonemapping.fx", null, true);
_gBuffer = new GBuffer(); _gBuffer = new GBuffer();
BlendStateDescription gBufferBlendDesc = .Default; BlendStateDescription gBufferBlendDesc = .Default;
+3 -3
View File
@@ -187,10 +187,10 @@ namespace GlitchyEngine.Renderer
{ {
Debug.Profiler.ProfileFunction!(); Debug.Profiler.ProfileFunction!();
s_quadBatchEffect = Content.LoadAsset("Resources/Shaders/spritebatch.hlsl", null, true); s_quadBatchEffect = Content.LoadAsset("Resources/Shaders/spritebatch.fx", null, true);
s_quadBatchMaterial = new Material(s_quadBatchEffect); s_quadBatchMaterial = new Material(s_quadBatchEffect);
s_circleBatchEffect = Content.LoadAsset("Resources/Shaders/circlebatch.hlsl", null, true); s_circleBatchEffect = Content.LoadAsset("Resources/Shaders/circlebatch.fx", null, true);
s_lineBatchEffect = Content.LoadAsset("Resources/Shaders/linebatch.hlsl", null, true); s_lineBatchEffect = Content.LoadAsset("Resources/Shaders/linebatch.fx", null, true);
} }
private static void InitGeometry() private static void InitGeometry()
@@ -33,7 +33,7 @@ namespace GlitchyEngine.Renderer.Text
InitFreetype(); InitFreetype();
// TODO: We might get away with a non blocking load here, but not for now! // TODO: We might get away with a non blocking load here, but not for now!
_msdfEffect = Content.LoadAsset("Resources/Shaders/msdfShader.hlsl", null, true); _msdfEffect = Content.LoadAsset("Resources/Shaders/msdfShader.fx", null, true);
_msdfMaterial = new Material(_msdfEffect); _msdfMaterial = new Material(_msdfEffect);
s_isInitialized = true; s_isInitialized = true;
+1 -1
View File
@@ -47,7 +47,7 @@ class SceneRenderer
}); });
_cameraTarget.[Friend]Identifier = "Camera Target"; _cameraTarget.[Friend]Identifier = "Camera Target";
_gammaCorrectEffect = Content.LoadAsset("Resources/Shaders/GammaCorrect.hlsl", null, true); _gammaCorrectEffect = Content.LoadAsset("Resources/Shaders/GammaCorrect.fx", null, true);
} }
/// Sets the size of the viewport into which the scene will be rendered. /// Sets the size of the viewport into which the scene will be rendered.