273 lines
4.4 KiB
C++
273 lines
4.4 KiB
C++
#pragma once
|
|
|
|
#include <cstdint>
|
|
|
|
namespace XCEngine {
|
|
namespace RHI {
|
|
|
|
enum class ShaderType : uint8_t {
|
|
Vertex,
|
|
Hull,
|
|
Domain,
|
|
Geometry,
|
|
Pixel,
|
|
Compute,
|
|
Amplification,
|
|
Mesh,
|
|
Library
|
|
};
|
|
|
|
enum class CullMode : uint8_t {
|
|
None = 1,
|
|
Front = 2,
|
|
Back = 3
|
|
};
|
|
|
|
enum class FillMode : uint8_t {
|
|
Wireframe = 2,
|
|
Solid = 3
|
|
};
|
|
|
|
enum class BlendOp : uint8_t {
|
|
Add = 1,
|
|
Subtract = 2,
|
|
ReverseSubtract = 3,
|
|
Min = 4,
|
|
Max = 5
|
|
};
|
|
|
|
enum class BlendFactor : uint8_t {
|
|
Zero = 0,
|
|
One = 1,
|
|
SrcColor = 2,
|
|
InvSrcColor = 3,
|
|
SrcAlpha = 4,
|
|
InvSrcAlpha = 5,
|
|
DstAlpha = 6,
|
|
InvDstAlpha = 7,
|
|
DstColor = 8,
|
|
InvDstColor = 9,
|
|
SrcAlphaSat = 10,
|
|
BlendFactor = 11,
|
|
InvBlendFactor = 12,
|
|
Src1Color = 13,
|
|
InvSrc1Color = 14,
|
|
Src1Alpha = 15,
|
|
InvSrc1Alpha = 16
|
|
};
|
|
|
|
enum class ComparisonFunc : uint8_t {
|
|
Never = 1,
|
|
Less = 2,
|
|
Equal = 3,
|
|
LessEqual = 4,
|
|
Greater = 5,
|
|
NotEqual = 6,
|
|
GreaterEqual = 7,
|
|
Always = 8
|
|
};
|
|
|
|
enum class StencilOp : uint8_t {
|
|
Keep = 1,
|
|
Zero = 2,
|
|
Replace = 3,
|
|
IncrSat = 4,
|
|
DecrSat = 5,
|
|
Invert = 6,
|
|
Incr = 7,
|
|
Decr = 8
|
|
};
|
|
|
|
enum class TextureType : uint8_t {
|
|
Texture1D,
|
|
Texture2D,
|
|
Texture2DArray,
|
|
Texture3D,
|
|
TextureCube,
|
|
TextureCubeArray
|
|
};
|
|
|
|
enum class BufferType : uint8_t {
|
|
Vertex,
|
|
Index,
|
|
Constant,
|
|
ReadBack,
|
|
Indirect,
|
|
RaytracingAccelerationStructure,
|
|
ShaderBindingTable
|
|
};
|
|
|
|
enum class DescriptorType : uint8_t {
|
|
CBV,
|
|
SRV,
|
|
UAV,
|
|
Sampler,
|
|
RTV,
|
|
DSV
|
|
};
|
|
|
|
enum class PipelineType : uint8_t {
|
|
Graphics,
|
|
Compute,
|
|
Raytracing
|
|
};
|
|
|
|
enum class CommandQueueType : uint8_t {
|
|
Direct,
|
|
Compute,
|
|
Copy
|
|
};
|
|
|
|
enum class LoadAction : uint8_t {
|
|
Undefined = 0,
|
|
Load = 1,
|
|
Clear = 2
|
|
};
|
|
|
|
enum class StoreAction : uint8_t {
|
|
Undefined = 0,
|
|
Store = 1,
|
|
Resolve = 2,
|
|
StoreAndResolve = 3,
|
|
Discard = 4
|
|
};
|
|
|
|
enum class PresentFlags : uint8_t {
|
|
None = 0,
|
|
AllowTearing = 1,
|
|
StrictlyTimedFrame = 2,
|
|
AllowDisplayLatencyWaitableObject = 4
|
|
};
|
|
|
|
enum class PrimitiveTopology : uint8_t {
|
|
Undefined = 0,
|
|
PointList = 1,
|
|
LineList = 2,
|
|
LineStrip = 3,
|
|
TriangleList = 4,
|
|
TriangleStrip = 5,
|
|
LineListAdj = 10,
|
|
LineStripAdj = 11,
|
|
TriangleListAdj = 12,
|
|
TriangleStripAdj = 13,
|
|
PatchList = 33
|
|
};
|
|
|
|
enum class FilterMode : uint8_t {
|
|
Point = 0,
|
|
Linear = 1,
|
|
Anisotropic = 2,
|
|
ComparisonPoint = 3,
|
|
ComparisonLinear = 4,
|
|
ComparisonAnisotropic = 5,
|
|
MinimumPoint = 7,
|
|
MinimumLinear = 8,
|
|
MinimumAnisotropic = 9,
|
|
MaximumPoint = 11,
|
|
MaximumLinear = 12,
|
|
MaximumAnisotropic = 13
|
|
};
|
|
|
|
enum class TextureAddressMode : uint8_t {
|
|
Wrap = 1,
|
|
Mirror = 2,
|
|
Clamp = 3,
|
|
Border = 4,
|
|
MirrorOnce = 5
|
|
};
|
|
|
|
enum class BorderColor : uint8_t {
|
|
TransparentBlack = 0,
|
|
OpaqueBlack = 1,
|
|
OpaqueWhite = 2
|
|
};
|
|
|
|
enum class LogicOp : uint8_t {
|
|
Clear = 0,
|
|
Set = 1,
|
|
Copy = 2,
|
|
CopyInverted = 3,
|
|
Noop = 4,
|
|
Invert = 5,
|
|
And = 6,
|
|
Nand = 7,
|
|
Or = 8,
|
|
Nor = 9,
|
|
Xor = 10,
|
|
Equiv = 11,
|
|
AndReverse = 12,
|
|
AndInverted = 13,
|
|
OrReverse = 14,
|
|
OrInverted = 15
|
|
};
|
|
|
|
enum class ColorWriteMask : uint8_t {
|
|
Red = 1,
|
|
Green = 2,
|
|
Blue = 4,
|
|
Alpha = 8,
|
|
All = 15
|
|
};
|
|
|
|
inline ColorWriteMask operator|(ColorWriteMask a, ColorWriteMask b) {
|
|
return static_cast<ColorWriteMask>(static_cast<uint8_t>(a) | static_cast<uint8_t>(b));
|
|
}
|
|
|
|
enum class ShaderVisibility : uint8_t {
|
|
All = 0,
|
|
Vertex = 1,
|
|
Hull = 2,
|
|
Domain = 3,
|
|
Geometry = 4,
|
|
Pixel = 5,
|
|
Amplification = 6,
|
|
Mesh = 7
|
|
};
|
|
|
|
enum class RootParameterType : uint8_t {
|
|
DescriptorTable,
|
|
Constants,
|
|
CBV,
|
|
SRV,
|
|
UAV
|
|
};
|
|
|
|
enum class DescriptorHeapType : uint8_t {
|
|
CBV_SRV_UAV,
|
|
Sampler,
|
|
RTV,
|
|
DSV
|
|
};
|
|
|
|
enum class QueryType : uint8_t {
|
|
Occlusion,
|
|
Timestamp,
|
|
PipelineStatistics
|
|
};
|
|
|
|
enum class Format : uint32_t {
|
|
Unknown = 0,
|
|
R8_UNorm = 61,
|
|
R8G8_UNorm = 49,
|
|
R8G8B8A8_UNorm = 28,
|
|
R16G16B16A16_Float = 10,
|
|
R32G32B32A32_Float = 2,
|
|
R16_Float = 54,
|
|
R32_Float = 41,
|
|
D16_UNorm = 55,
|
|
D24_UNorm_S8_UInt = 45,
|
|
D32_Float = 40,
|
|
BC1_UNorm = 71,
|
|
BC2_UNorm = 74,
|
|
BC3_UNorm = 77,
|
|
BC4_UNorm = 80,
|
|
BC5_UNorm = 83,
|
|
BC6H_UF16 = 95,
|
|
BC7_UNorm = 98,
|
|
R32G32B32A32_UInt = 23,
|
|
R32_UInt = 39
|
|
};
|
|
|
|
} // namespace RHI
|
|
} // namespace XCEngine
|