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 = {
_compression = .None
},
AssetHandle = 5246795156071151642
AssetHandle = 3971197750817239312
}
@@ -1,3 +1,5 @@
// TODO: General pipeline for post processing effects
Texture2D Texture : register(t0);
SamplerState TextureSampler : register(s0);
@@ -9,5 +9,5 @@
ExporterConfig = {
_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 = {
_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 = {
_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"))
return _icons.File_Scene;
if (assetNode.Path.EndsWith(".mat"))
return _icons.File_Material;
if (assetNode.Path.EndsWith(".cs"))
return _icons.File_CSharpScript;
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;
}
@@ -28,7 +28,7 @@ class ShaderImporterConfig : AssetImporterConfig
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;
@@ -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));
+2 -2
View File
@@ -178,8 +178,8 @@ class TextureViewer
public this()
{
_effect = Content.LoadAsset("Resources/Shaders/textureViewerShader.hlsl", null, true);
AssetHandle<Effect> effect = Content.LoadAsset("Resources/Shaders/RenderTargetGroupViewer.hlsl", null, true);
_effect = Content.LoadAsset("Resources/Shaders/textureViewerShader.fx", null, true);
AssetHandle<Effect> effect = Content.LoadAsset("Resources/Shaders/RenderTargetGroupViewer.fx", null, true);
_renderTargetMaterial = new Material(effect);
+4 -2
View File
@@ -28,11 +28,12 @@ namespace GlitchyEditor
public SubTexture2D File_Scene ~ _.ReleaseRef();
public SubTexture2D File_Material ~ _.ReleaseRef();
public SubTexture2D File_CSharpScript ~ _.ReleaseRef();
public SubTexture2D File_Shader ~ _.ReleaseRef();
public SubTexture2D File_Effect ~ _.ReleaseRef();
public SubTexture2D Entity_Visible ~ _.ReleaseRef();
public SubTexture2D Entity_Hidden ~ _.ReleaseRef();
public SubTexture2D Icon_Save ~ _.ReleaseRef();
public SubTexture2D Icon_ContextMenu ~ _.ReleaseRef();
public SubTexture2D File_Hlsl ~ _.ReleaseRef();
public static EditorIcons Instance => _editorIcons;
@@ -66,11 +67,12 @@ namespace GlitchyEditor
File_Scene = GetNextGridTexture(ref pen, iconSize);
File_Material = 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_Hidden = GetNextGridTexture(ref pen, iconSize);
Icon_Save = GetNextGridTexture(ref pen, iconSize);
Icon_ContextMenu = GetNextGridTexture(ref pen, iconSize);
File_Hlsl = GetNextGridTexture(ref pen, iconSize);
}
public ~this()
+16
View File
@@ -176,6 +176,22 @@ namespace GlitchyEditor
}
}, _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) =>
{
using (Material newMaterial = new Material())
@@ -31,7 +31,7 @@ namespace GlitchyEngine.Renderer
{
Debug.Profiler.ProfileFunction!();
_clearUintFx = Content.LoadAsset("Resources/Shaders/ClearUInt.hlsl", null, true);
_clearUintFx = Content.LoadAsset("Resources/Shaders/ClearUInt.fx", null, true);
BlendStateDescription desc =.Default;
desc.RenderTarget[0].BlendEnable = false;
_nonblendingState = new BlendState(desc);
+2 -4
View File
@@ -150,8 +150,6 @@ namespace GlitchyEngine.Renderer
{
Debug.Profiler.ProfileFunction!();
//LineEffect = Content.LoadAsset("Shaders\\lineShader.hlsl");
LineGeometry = new GeometryBinding();
LineGeometry.SetPrimitiveTopology(.LineList);
@@ -180,8 +178,8 @@ namespace GlitchyEngine.Renderer
static void InitDeferredRenderer()
{
TestFullscreenEffect = Content.LoadAsset("Resources/Shaders/simpleLight.hlsl", null, true);
s_tonemappingEffect = Content.LoadAsset("Resources/Shaders/SimpleTonemapping.hlsl", null, true);
TestFullscreenEffect = Content.LoadAsset("Resources/Shaders/simpleLight.fx", null, true);
s_tonemappingEffect = Content.LoadAsset("Resources/Shaders/SimpleTonemapping.fx", null, true);
_gBuffer = new GBuffer();
BlendStateDescription gBufferBlendDesc = .Default;
+3 -3
View File
@@ -187,10 +187,10 @@ namespace GlitchyEngine.Renderer
{
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_circleBatchEffect = Content.LoadAsset("Resources/Shaders/circlebatch.hlsl", null, true);
s_lineBatchEffect = Content.LoadAsset("Resources/Shaders/linebatch.hlsl", null, true);
s_circleBatchEffect = Content.LoadAsset("Resources/Shaders/circlebatch.fx", null, true);
s_lineBatchEffect = Content.LoadAsset("Resources/Shaders/linebatch.fx", null, true);
}
private static void InitGeometry()
@@ -33,7 +33,7 @@ namespace GlitchyEngine.Renderer.Text
InitFreetype();
// 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);
s_isInitialized = true;
+1 -1
View File
@@ -47,7 +47,7 @@ class SceneRenderer
});
_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.