Add sampler support and refactor resource handling

Enhanced shader and resource systems with `Sampler` support, including updates to `ShaderPropertyType`, HLSL code, and resource management. Refactored `Result` structs for better type safety and added new enums for texture and comparison settings. Improved `MeshRenderPass` to dynamically load textures and samplers. Updated SDL compiler and token lexicon for `Sampler` handling. Embedded debug info in project files and streamlined resource state tracking.
This commit is contained in:
2025-11-29 18:27:47 +09:00
parent bd97d233cb
commit 0ec318a9ab
30 changed files with 463 additions and 166 deletions

View File

@@ -2,27 +2,27 @@ using Ghost.Core;
namespace Ghost.Graphics.D3D12;
internal readonly struct RTVDesc : IIdentifierType;
internal readonly struct DSVDesc : IIdentifierType;
internal readonly struct CbvSrvUavDesc : IIdentifierType;
internal readonly struct SamplerDesc : IIdentifierType;
internal readonly struct RTVDescriptor : IIdentifierType;
internal readonly struct DSVDescriptor : IIdentifierType;
internal readonly struct CbvSrvUavDescriptor : IIdentifierType;
internal readonly struct SamplerDescriptor : IIdentifierType;
internal struct ResourceViewGroup
{
public Identifier<RTVDesc> rtv;
public Identifier<DSVDesc> dsv;
public Identifier<CbvSrvUavDesc> srv;
public Identifier<CbvSrvUavDesc> cbv;
public Identifier<CbvSrvUavDesc> uav;
public Identifier<SamplerDesc> sampler;
public Identifier<RTVDescriptor> rtv;
public Identifier<DSVDescriptor> dsv;
public Identifier<CbvSrvUavDescriptor> srv;
public Identifier<CbvSrvUavDescriptor> cbv;
public Identifier<CbvSrvUavDescriptor> uav;
public Identifier<SamplerDescriptor> sampler;
public static ResourceViewGroup Invalid => new()
{
rtv = Identifier<RTVDesc>.Invalid,
dsv = Identifier<DSVDesc>.Invalid,
srv = Identifier<CbvSrvUavDesc>.Invalid,
cbv = Identifier<CbvSrvUavDesc>.Invalid,
uav = Identifier<CbvSrvUavDesc>.Invalid,
sampler = Identifier<SamplerDesc>.Invalid,
rtv = Identifier<RTVDescriptor>.Invalid,
dsv = Identifier<DSVDescriptor>.Invalid,
srv = Identifier<CbvSrvUavDescriptor>.Invalid,
cbv = Identifier<CbvSrvUavDescriptor>.Invalid,
uav = Identifier<CbvSrvUavDescriptor>.Invalid,
sampler = Identifier<SamplerDescriptor>.Invalid,
};
}