forked from Misaki/GhostEngine
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:
@@ -10,14 +10,6 @@ using TerraFX.Interop.DirectX;
|
||||
|
||||
namespace Ghost.Graphics.RHI;
|
||||
|
||||
public interface IRHIObject
|
||||
{
|
||||
string Name
|
||||
{
|
||||
get; set;
|
||||
}
|
||||
}
|
||||
|
||||
public readonly struct ShaderPassKey
|
||||
{
|
||||
public readonly ulong value;
|
||||
@@ -603,6 +595,57 @@ public struct TextureDesc
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Describes the parameters used to configure a texture sampler for graphics rendering operations.
|
||||
/// </summary>
|
||||
public record struct SamplerDesc
|
||||
{
|
||||
public TextureFilterMode FilterMode
|
||||
{
|
||||
get; set;
|
||||
}
|
||||
|
||||
public TextureAddressMode AddressU
|
||||
{
|
||||
get; set;
|
||||
}
|
||||
|
||||
public TextureAddressMode AddressV
|
||||
{
|
||||
get; set;
|
||||
}
|
||||
|
||||
public TextureAddressMode AddressW
|
||||
{
|
||||
get; set;
|
||||
}
|
||||
|
||||
public ComparisonFunction ComparisonFunc
|
||||
{
|
||||
get; set;
|
||||
}
|
||||
|
||||
public float MipLODBias
|
||||
{
|
||||
get; set;
|
||||
}
|
||||
|
||||
public uint MaxAnisotropy
|
||||
{
|
||||
get; set;
|
||||
}
|
||||
|
||||
public float MinLOD
|
||||
{
|
||||
get; set;
|
||||
}
|
||||
|
||||
public float MaxLOD
|
||||
{
|
||||
get; set;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Buffer description
|
||||
/// </summary>
|
||||
@@ -865,3 +908,32 @@ public enum PrimitiveTopology
|
||||
Line,
|
||||
Triangle,
|
||||
}
|
||||
|
||||
public enum TextureFilterMode
|
||||
{
|
||||
Point,
|
||||
Bilinear,
|
||||
Trilinear,
|
||||
Anisotropic
|
||||
}
|
||||
|
||||
public enum TextureAddressMode
|
||||
{
|
||||
Repeat,
|
||||
Mirror,
|
||||
Clamp,
|
||||
Border,
|
||||
MirrorOnce
|
||||
}
|
||||
|
||||
public enum ComparisonFunction
|
||||
{
|
||||
Never,
|
||||
Less,
|
||||
Equal,
|
||||
LessEqual,
|
||||
Greater,
|
||||
NotEqual,
|
||||
GreaterEqual,
|
||||
Always
|
||||
}
|
||||
Reference in New Issue
Block a user