forked from Misaki/GhostEngine
Refactor and enhance graphics and audio systems
Updated target frameworks to .NET 10.0 across multiple projects for compatibility with the latest features. Refactored namespaces and introduced new classes for shader descriptors, FMOD integration, and DirectX 12 utilities using TerraFX. Replaced `Win32` bindings with TerraFX equivalents for DirectX 12. Added a C# wrapper for FMOD Studio API, including DSP and error handling. Enhanced entity queries, component storage, and query filters for better performance and type safety. Introduced new test projects and updated the solution structure. Added `meshoptimizer` bindings and integrated `meshoptimizer_native.dll`. Improved code readability, maintainability, and performance.
This commit is contained in:
47
Ghost.Shader/Compiler/ShaderSemantics.cs
Normal file
47
Ghost.Shader/Compiler/ShaderSemantics.cs
Normal file
@@ -0,0 +1,47 @@
|
||||
using Ghost.Core.Graphics;
|
||||
|
||||
namespace Ghost.Shader.Compiler;
|
||||
|
||||
public enum PropertyScope
|
||||
{
|
||||
Global,
|
||||
Local,
|
||||
}
|
||||
|
||||
internal class PropertySemantic
|
||||
{
|
||||
public PropertyScope scope;
|
||||
public ShaderPropertyType type;
|
||||
public string name = string.Empty;
|
||||
public object? defaultValue;
|
||||
}
|
||||
|
||||
internal class PipelineSemantic
|
||||
{
|
||||
public ZTestOptions? zTest;
|
||||
public ZWriteOptions? zWrite;
|
||||
public CullOptions? cull;
|
||||
public BlendOptions? blend;
|
||||
public uint? colorMask;
|
||||
}
|
||||
|
||||
internal class PassSemantic
|
||||
{
|
||||
public string name = string.Empty;
|
||||
public ShaderEntryPoint vertexShader;
|
||||
public ShaderEntryPoint pixelShader;
|
||||
public List<string>? defines;
|
||||
public List<string>? includes;
|
||||
public List<KeywordsGroup>? keywords;
|
||||
public List<PropertySemantic>? localProperties;
|
||||
public PipelineSemantic? localPipeline;
|
||||
}
|
||||
|
||||
internal class ShaderSemantics
|
||||
{
|
||||
public string name = string.Empty;
|
||||
public string fallback = string.Empty;
|
||||
public List<PropertySemantic>? properties;
|
||||
public PipelineSemantic? pipeline;
|
||||
public List<PassSemantic>? passes;
|
||||
}
|
||||
Reference in New Issue
Block a user