320 lines
5.2 KiB
C++
320 lines
5.2 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,
|
|
LogicalClear = 8,
|
|
LogicalSet = 9,
|
|
LogicalCopy = 10,
|
|
LogicalCopyInverted = 11,
|
|
LogicalNoop = 12,
|
|
LogicalInvert = 13,
|
|
LogicalAnd = 14,
|
|
LogicalNand = 15,
|
|
LogicalOr = 16,
|
|
LogicalNor = 17,
|
|
LogicalXor = 18,
|
|
LogicalEquiv = 19,
|
|
LogicalAndReverse = 20,
|
|
LogicalAndInverted = 21,
|
|
LogicalOrReverse = 22,
|
|
LogicalOrInverted = 23
|
|
};
|
|
|
|
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 IndirectDrawArguments : uint32_t {
|
|
VertexCountPerInstance = 0,
|
|
InstanceCount = 4,
|
|
StartVertexLocation = 8,
|
|
StartInstanceLocation = 12
|
|
};
|
|
|
|
enum class IndirectDispatchArguments : uint32_t {
|
|
ThreadGroupCountX = 0,
|
|
ThreadGroupCountY = 4,
|
|
ThreadGroupCountZ = 8
|
|
};
|
|
|
|
enum class StencilOpDesc : uint8_t {
|
|
StencilFailOp,
|
|
StencilDepthFailOp,
|
|
StencilPassOp,
|
|
StencilFunc
|
|
};
|
|
|
|
enum class BlendStateFlag : uint8_t {
|
|
None = 0,
|
|
IndependentBlendEnable = 1,
|
|
IndependentBlendEnable_8Targets = 2
|
|
};
|
|
|
|
enum class DepthStencilStateFlag : uint8_t {
|
|
None = 0,
|
|
DepthWrite = 1,
|
|
StencilWrite = 2
|
|
};
|
|
|
|
enum class TextureAddressMode : uint8_t {
|
|
Wrap = 1,
|
|
Mirror = 2,
|
|
Clamp = 3,
|
|
Border = 4,
|
|
MirrorOnce = 5
|
|
};
|
|
|
|
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 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 ResourceBarrierType : uint8_t {
|
|
Transition,
|
|
Aliasing,
|
|
UAV
|
|
};
|
|
|
|
enum class RootParameterType : uint8_t {
|
|
DescriptorTable,
|
|
Constants,
|
|
CBV,
|
|
SRV,
|
|
UAV
|
|
};
|
|
|
|
enum class ShaderRegisterType : uint8_t {
|
|
CBV,
|
|
SRV,
|
|
UAV,
|
|
Sampler
|
|
};
|
|
|
|
enum class RootSignatureVersion : uint8_t {
|
|
Version1,
|
|
Version1_0 = Version1,
|
|
Version1_1
|
|
};
|
|
|
|
enum class ClearDepthStencilFlags : uint8_t {
|
|
Depth = 1,
|
|
Stencil = 2,
|
|
DepthAndStencil = 3
|
|
};
|
|
|
|
enum class QueryHeapFlags : uint8_t {
|
|
None = 0,
|
|
Precision = 1
|
|
};
|
|
|
|
enum class PipelineStateFlags : uint8_t {
|
|
None = 0,
|
|
DebugName = 1
|
|
};
|
|
|
|
enum class BufferUAVFlags : uint8_t {
|
|
None = 0,
|
|
Raw = 1,
|
|
Append = 2,
|
|
Counter = 4
|
|
};
|
|
|
|
enum class TextureLayout : uint8_t {
|
|
Unknown,
|
|
RowMajor,
|
|
_64KB_UNDEFINED_SWIZZLE,
|
|
Standard64KB
|
|
};
|
|
|
|
enum class CommandListFlags : uint8_t {
|
|
None = 0,
|
|
DisallowSetName = 1
|
|
};
|
|
|
|
enum class FenceFlags : uint8_t {
|
|
None = 0,
|
|
Signal = 1,
|
|
Wait = 2
|
|
};
|
|
|
|
} // namespace RHI
|
|
} // namespace XCEngine
|