636 lines
13 KiB
C++
636 lines
13 KiB
C++
#ifndef _GRAPHICS_DESCRIPTORS_H_
|
|
#define _GRAPHICS_DESCRIPTORS_H_
|
|
|
|
#include "CommonInclude.h"
|
|
|
|
namespace wiGraphicsTypes
|
|
{
|
|
enum PRIMITIVETOPOLOGY
|
|
{
|
|
TRIANGLELIST,
|
|
TRIANGLESTRIP,
|
|
POINTLIST,
|
|
LINELIST,
|
|
PATCHLIST,
|
|
};
|
|
enum COMPARISON_FUNC
|
|
{
|
|
COMPARISON_NEVER,
|
|
COMPARISON_LESS,
|
|
COMPARISON_EQUAL,
|
|
COMPARISON_LESS_EQUAL,
|
|
COMPARISON_GREATER,
|
|
COMPARISON_NOT_EQUAL,
|
|
COMPARISON_GREATER_EQUAL,
|
|
COMPARISON_ALWAYS,
|
|
};
|
|
enum DEPTH_WRITE_MASK
|
|
{
|
|
DEPTH_WRITE_MASK_ZERO,
|
|
DEPTH_WRITE_MASK_ALL,
|
|
};
|
|
enum STENCIL_OP
|
|
{
|
|
STENCIL_OP_KEEP,
|
|
STENCIL_OP_ZERO,
|
|
STENCIL_OP_REPLACE,
|
|
STENCIL_OP_INCR_SAT,
|
|
STENCIL_OP_DECR_SAT,
|
|
STENCIL_OP_INVERT,
|
|
STENCIL_OP_INCR,
|
|
STENCIL_OP_DECR,
|
|
};
|
|
enum BLEND
|
|
{
|
|
BLEND_ZERO,
|
|
BLEND_ONE,
|
|
BLEND_SRC_COLOR,
|
|
BLEND_INV_SRC_COLOR,
|
|
BLEND_SRC_ALPHA,
|
|
BLEND_INV_SRC_ALPHA,
|
|
BLEND_DEST_ALPHA,
|
|
BLEND_INV_DEST_ALPHA,
|
|
BLEND_DEST_COLOR,
|
|
BLEND_INV_DEST_COLOR,
|
|
BLEND_SRC_ALPHA_SAT,
|
|
BLEND_BLEND_FACTOR,
|
|
BLEND_INV_BLEND_FACTOR,
|
|
BLEND_SRC1_COLOR,
|
|
BLEND_INV_SRC1_COLOR,
|
|
BLEND_SRC1_ALPHA,
|
|
BLEND_INV_SRC1_ALPHA,
|
|
};
|
|
enum COLOR_WRITE_ENABLE
|
|
{
|
|
COLOR_WRITE_DISABLE = 0,
|
|
COLOR_WRITE_ENABLE_RED = 1,
|
|
COLOR_WRITE_ENABLE_GREEN = 2,
|
|
COLOR_WRITE_ENABLE_BLUE = 4,
|
|
COLOR_WRITE_ENABLE_ALPHA = 8,
|
|
COLOR_WRITE_ENABLE_ALL = (((COLOR_WRITE_ENABLE_RED | COLOR_WRITE_ENABLE_GREEN) | COLOR_WRITE_ENABLE_BLUE) | COLOR_WRITE_ENABLE_ALPHA)
|
|
};
|
|
enum BLEND_OP
|
|
{
|
|
BLEND_OP_ADD,
|
|
BLEND_OP_SUBTRACT,
|
|
BLEND_OP_REV_SUBTRACT,
|
|
BLEND_OP_MIN,
|
|
BLEND_OP_MAX,
|
|
};
|
|
enum FILL_MODE
|
|
{
|
|
FILL_WIREFRAME,
|
|
FILL_SOLID,
|
|
};
|
|
enum CULL_MODE
|
|
{
|
|
CULL_NONE,
|
|
CULL_FRONT,
|
|
CULL_BACK,
|
|
};
|
|
enum INPUT_CLASSIFICATION
|
|
{
|
|
INPUT_PER_VERTEX_DATA,
|
|
INPUT_PER_INSTANCE_DATA,
|
|
};
|
|
enum USAGE
|
|
{
|
|
USAGE_DEFAULT,
|
|
USAGE_IMMUTABLE,
|
|
USAGE_DYNAMIC,
|
|
USAGE_STAGING,
|
|
};
|
|
enum TEXTURE_ADDRESS_MODE
|
|
{
|
|
TEXTURE_ADDRESS_WRAP,
|
|
TEXTURE_ADDRESS_MIRROR,
|
|
TEXTURE_ADDRESS_CLAMP,
|
|
TEXTURE_ADDRESS_BORDER,
|
|
TEXTURE_ADDRESS_MIRROR_ONCE,
|
|
};
|
|
enum FILTER
|
|
{
|
|
FILTER_MIN_MAG_MIP_POINT,
|
|
FILTER_MIN_MAG_POINT_MIP_LINEAR,
|
|
FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT,
|
|
FILTER_MIN_POINT_MAG_MIP_LINEAR,
|
|
FILTER_MIN_LINEAR_MAG_MIP_POINT,
|
|
FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR,
|
|
FILTER_MIN_MAG_LINEAR_MIP_POINT,
|
|
FILTER_MIN_MAG_MIP_LINEAR,
|
|
FILTER_ANISOTROPIC,
|
|
FILTER_COMPARISON_MIN_MAG_MIP_POINT,
|
|
FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR,
|
|
FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT,
|
|
FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR,
|
|
FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT,
|
|
FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR,
|
|
FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT,
|
|
FILTER_COMPARISON_MIN_MAG_MIP_LINEAR,
|
|
FILTER_COMPARISON_ANISOTROPIC,
|
|
FILTER_MINIMUM_MIN_MAG_MIP_POINT,
|
|
FILTER_MINIMUM_MIN_MAG_POINT_MIP_LINEAR,
|
|
FILTER_MINIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT,
|
|
FILTER_MINIMUM_MIN_POINT_MAG_MIP_LINEAR,
|
|
FILTER_MINIMUM_MIN_LINEAR_MAG_MIP_POINT,
|
|
FILTER_MINIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR,
|
|
FILTER_MINIMUM_MIN_MAG_LINEAR_MIP_POINT,
|
|
FILTER_MINIMUM_MIN_MAG_MIP_LINEAR,
|
|
FILTER_MINIMUM_ANISOTROPIC,
|
|
FILTER_MAXIMUM_MIN_MAG_MIP_POINT,
|
|
FILTER_MAXIMUM_MIN_MAG_POINT_MIP_LINEAR,
|
|
FILTER_MAXIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT,
|
|
FILTER_MAXIMUM_MIN_POINT_MAG_MIP_LINEAR,
|
|
FILTER_MAXIMUM_MIN_LINEAR_MAG_MIP_POINT,
|
|
FILTER_MAXIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR,
|
|
FILTER_MAXIMUM_MIN_MAG_LINEAR_MIP_POINT,
|
|
FILTER_MAXIMUM_MIN_MAG_MIP_LINEAR,
|
|
FILTER_MAXIMUM_ANISOTROPIC,
|
|
};
|
|
enum FORMAT
|
|
{
|
|
FORMAT_UNKNOWN,
|
|
FORMAT_R32G32B32A32_TYPELESS,
|
|
FORMAT_R32G32B32A32_FLOAT,
|
|
FORMAT_R32G32B32A32_UINT,
|
|
FORMAT_R32G32B32A32_SINT,
|
|
FORMAT_R32G32B32_TYPELESS,
|
|
FORMAT_R32G32B32_FLOAT,
|
|
FORMAT_R32G32B32_UINT,
|
|
FORMAT_R32G32B32_SINT,
|
|
FORMAT_R16G16B16A16_TYPELESS,
|
|
FORMAT_R16G16B16A16_FLOAT,
|
|
FORMAT_R16G16B16A16_UNORM,
|
|
FORMAT_R16G16B16A16_UINT,
|
|
FORMAT_R16G16B16A16_SNORM,
|
|
FORMAT_R16G16B16A16_SINT,
|
|
FORMAT_R32G32_TYPELESS,
|
|
FORMAT_R32G32_FLOAT,
|
|
FORMAT_R32G32_UINT,
|
|
FORMAT_R32G32_SINT,
|
|
FORMAT_R32G8X24_TYPELESS,
|
|
FORMAT_D32_FLOAT_S8X24_UINT,
|
|
FORMAT_R32_FLOAT_X8X24_TYPELESS,
|
|
FORMAT_X32_TYPELESS_G8X24_UINT,
|
|
FORMAT_R10G10B10A2_TYPELESS,
|
|
FORMAT_R10G10B10A2_UNORM,
|
|
FORMAT_R10G10B10A2_UINT,
|
|
FORMAT_R11G11B10_FLOAT,
|
|
FORMAT_R8G8B8A8_TYPELESS,
|
|
FORMAT_R8G8B8A8_UNORM,
|
|
FORMAT_R8G8B8A8_UNORM_SRGB,
|
|
FORMAT_R8G8B8A8_UINT,
|
|
FORMAT_R8G8B8A8_SNORM,
|
|
FORMAT_R8G8B8A8_SINT,
|
|
FORMAT_R16G16_TYPELESS,
|
|
FORMAT_R16G16_FLOAT,
|
|
FORMAT_R16G16_UNORM,
|
|
FORMAT_R16G16_UINT,
|
|
FORMAT_R16G16_SNORM,
|
|
FORMAT_R16G16_SINT,
|
|
FORMAT_R32_TYPELESS,
|
|
FORMAT_D32_FLOAT,
|
|
FORMAT_R32_FLOAT,
|
|
FORMAT_R32_UINT,
|
|
FORMAT_R32_SINT,
|
|
FORMAT_R24G8_TYPELESS,
|
|
FORMAT_D24_UNORM_S8_UINT,
|
|
FORMAT_R24_UNORM_X8_TYPELESS,
|
|
FORMAT_X24_TYPELESS_G8_UINT,
|
|
FORMAT_R8G8_TYPELESS,
|
|
FORMAT_R8G8_UNORM,
|
|
FORMAT_R8G8_UINT,
|
|
FORMAT_R8G8_SNORM,
|
|
FORMAT_R8G8_SINT,
|
|
FORMAT_R16_TYPELESS,
|
|
FORMAT_R16_FLOAT,
|
|
FORMAT_D16_UNORM,
|
|
FORMAT_R16_UNORM,
|
|
FORMAT_R16_UINT,
|
|
FORMAT_R16_SNORM,
|
|
FORMAT_R16_SINT,
|
|
FORMAT_R8_TYPELESS,
|
|
FORMAT_R8_UNORM,
|
|
FORMAT_R8_UINT,
|
|
FORMAT_R8_SNORM,
|
|
FORMAT_R8_SINT,
|
|
FORMAT_A8_UNORM,
|
|
FORMAT_R1_UNORM,
|
|
FORMAT_R9G9B9E5_SHAREDEXP,
|
|
FORMAT_R8G8_B8G8_UNORM,
|
|
FORMAT_G8R8_G8B8_UNORM,
|
|
FORMAT_BC1_TYPELESS,
|
|
FORMAT_BC1_UNORM,
|
|
FORMAT_BC1_UNORM_SRGB,
|
|
FORMAT_BC2_TYPELESS,
|
|
FORMAT_BC2_UNORM,
|
|
FORMAT_BC2_UNORM_SRGB,
|
|
FORMAT_BC3_TYPELESS,
|
|
FORMAT_BC3_UNORM,
|
|
FORMAT_BC3_UNORM_SRGB,
|
|
FORMAT_BC4_TYPELESS,
|
|
FORMAT_BC4_UNORM,
|
|
FORMAT_BC4_SNORM,
|
|
FORMAT_BC5_TYPELESS,
|
|
FORMAT_BC5_UNORM,
|
|
FORMAT_BC5_SNORM,
|
|
FORMAT_B5G6R5_UNORM,
|
|
FORMAT_B5G5R5A1_UNORM,
|
|
FORMAT_B8G8R8A8_UNORM,
|
|
FORMAT_B8G8R8X8_UNORM,
|
|
FORMAT_R10G10B10_XR_BIAS_A2_UNORM,
|
|
FORMAT_B8G8R8A8_TYPELESS,
|
|
FORMAT_B8G8R8A8_UNORM_SRGB,
|
|
FORMAT_B8G8R8X8_TYPELESS,
|
|
FORMAT_B8G8R8X8_UNORM_SRGB,
|
|
FORMAT_BC6H_TYPELESS,
|
|
FORMAT_BC6H_UF16,
|
|
FORMAT_BC6H_SF16,
|
|
FORMAT_BC7_TYPELESS,
|
|
FORMAT_BC7_UNORM,
|
|
FORMAT_BC7_UNORM_SRGB,
|
|
FORMAT_AYUV,
|
|
FORMAT_Y410,
|
|
FORMAT_Y416,
|
|
FORMAT_NV12,
|
|
FORMAT_P010,
|
|
FORMAT_P016,
|
|
FORMAT_420_OPAQUE,
|
|
FORMAT_YUY2,
|
|
FORMAT_Y210,
|
|
FORMAT_Y216,
|
|
FORMAT_NV11,
|
|
FORMAT_AI44,
|
|
FORMAT_IA44,
|
|
FORMAT_P8,
|
|
FORMAT_A8P8,
|
|
FORMAT_B4G4R4A4_UNORM,
|
|
FORMAT_FORCE_UINT = 0xffffffff,
|
|
};
|
|
enum MAP
|
|
{
|
|
MAP_READ,
|
|
MAP_WRITE,
|
|
MAP_READ_WRITE,
|
|
MAP_WRITE_DISCARD,
|
|
MAP_WRITE_NO_OVERWRITE
|
|
};
|
|
enum GPU_QUERY_TYPE
|
|
{
|
|
GPU_QUERY_TYPE_OCCLUSION, // how many samples passed depthstencil test?
|
|
GPU_QUERY_TYPE_OCCLUSION_PREDICATE, // are there any samples that passed depthstencil test
|
|
GPU_QUERY_TYPE_TIMESTAMP, // retrieve time point of gpu execution
|
|
GPU_QUERY_TYPE_TIMESTAMP_DISJOINT, // timestamp frequency information
|
|
};
|
|
|
|
// Flags ////////////////////////////////////////////
|
|
enum CLEAR_FLAG
|
|
{
|
|
CLEAR_DEPTH = 0x1L,
|
|
CLEAR_STENCIL = 0x2L,
|
|
};
|
|
enum BIND_FLAG
|
|
{
|
|
BIND_VERTEX_BUFFER = 0x1L,
|
|
BIND_INDEX_BUFFER = 0x2L,
|
|
BIND_CONSTANT_BUFFER = 0x4L,
|
|
BIND_SHADER_RESOURCE = 0x8L,
|
|
BIND_STREAM_OUTPUT = 0x10L,
|
|
BIND_RENDER_TARGET = 0x20L,
|
|
BIND_DEPTH_STENCIL = 0x40L,
|
|
BIND_UNORDERED_ACCESS = 0x80L,
|
|
};
|
|
enum CPU_ACCESS
|
|
{
|
|
CPU_ACCESS_WRITE = 0x10000L,
|
|
CPU_ACCESS_READ = 0x20000L,
|
|
};
|
|
enum RESOURCE_MISC_FLAG
|
|
{
|
|
RESOURCE_MISC_GENERATE_MIPS = 0x1L,
|
|
RESOURCE_MISC_SHARED = 0x2L,
|
|
RESOURCE_MISC_TEXTURECUBE = 0x4L,
|
|
RESOURCE_MISC_BUFFER_ALLOW_RAW_VIEWS = 0x20L,
|
|
RESOURCE_MISC_BUFFER_STRUCTURED = 0x40L,
|
|
RESOURCE_MISC_TILED = 0x40000L,
|
|
};
|
|
|
|
#define APPEND_ALIGNED_ELEMENT ( 0xffffffff )
|
|
#define FLOAT32_MAX ( 3.402823466e+38f )
|
|
#define DEFAULT_STENCIL_READ_MASK ( 0xff )
|
|
#define SO_NO_RASTERIZED_STREAM ( 0xffffffff )
|
|
|
|
// Structs /////////////////////////////////////////////
|
|
|
|
struct ViewPort
|
|
{
|
|
float TopLeftX;
|
|
float TopLeftY;
|
|
float Width;
|
|
float Height;
|
|
float MinDepth;
|
|
float MaxDepth;
|
|
|
|
ViewPort():
|
|
TopLeftX(0.0f),
|
|
TopLeftY(0.0f),
|
|
Width(0.0f),
|
|
Height(0.0f),
|
|
MinDepth(0.0f),
|
|
MaxDepth(1.0f)
|
|
{}
|
|
};
|
|
struct VertexLayoutDesc
|
|
{
|
|
LPCSTR SemanticName;
|
|
UINT SemanticIndex;
|
|
FORMAT Format;
|
|
UINT InputSlot;
|
|
UINT AlignedByteOffset;
|
|
INPUT_CLASSIFICATION InputSlotClass;
|
|
UINT InstanceDataStepRate;
|
|
};
|
|
struct StreamOutDeclaration
|
|
{
|
|
UINT Stream;
|
|
LPCSTR SemanticName;
|
|
UINT SemanticIndex;
|
|
BYTE StartComponent;
|
|
BYTE ComponentCount;
|
|
BYTE OutputSlot;
|
|
};
|
|
struct SampleDesc
|
|
{
|
|
UINT Count;
|
|
UINT Quality;
|
|
|
|
SampleDesc() :Count( 1 ), Quality( 0 ) {}
|
|
};
|
|
struct Texture1DDesc
|
|
{
|
|
UINT Width;
|
|
UINT MipLevels;
|
|
UINT ArraySize;
|
|
FORMAT Format;
|
|
USAGE Usage;
|
|
UINT BindFlags;
|
|
UINT CPUAccessFlags;
|
|
UINT MiscFlags;
|
|
|
|
Texture1DDesc():
|
|
Width(0),
|
|
MipLevels(1),
|
|
ArraySize(1),
|
|
Format(FORMAT_UNKNOWN),
|
|
Usage(USAGE_DEFAULT),
|
|
BindFlags(0),
|
|
CPUAccessFlags(0),
|
|
MiscFlags(0)
|
|
{}
|
|
};
|
|
struct Texture2DDesc
|
|
{
|
|
UINT Width;
|
|
UINT Height;
|
|
UINT MipLevels;
|
|
UINT ArraySize;
|
|
FORMAT Format;
|
|
SampleDesc SampleDesc;
|
|
USAGE Usage;
|
|
UINT BindFlags;
|
|
UINT CPUAccessFlags;
|
|
UINT MiscFlags;
|
|
|
|
Texture2DDesc():
|
|
Width(0),
|
|
Height(0),
|
|
MipLevels(1),
|
|
ArraySize(1),
|
|
Format(FORMAT_UNKNOWN),
|
|
Usage(USAGE_DEFAULT),
|
|
BindFlags(0),
|
|
CPUAccessFlags(0),
|
|
MiscFlags(0)
|
|
{}
|
|
};
|
|
struct Texture3DDesc
|
|
{
|
|
UINT Width;
|
|
UINT Height;
|
|
UINT Depth;
|
|
UINT MipLevels;
|
|
FORMAT Format;
|
|
USAGE Usage;
|
|
UINT BindFlags;
|
|
UINT CPUAccessFlags;
|
|
UINT MiscFlags;
|
|
|
|
Texture3DDesc():
|
|
Width(0),
|
|
Height(0),
|
|
Depth(0),
|
|
MipLevels(1),
|
|
Format(FORMAT_UNKNOWN),
|
|
Usage(USAGE_DEFAULT),
|
|
BindFlags(0),
|
|
CPUAccessFlags(0),
|
|
MiscFlags(0)
|
|
{}
|
|
};
|
|
struct SamplerDesc
|
|
{
|
|
FILTER Filter;
|
|
TEXTURE_ADDRESS_MODE AddressU;
|
|
TEXTURE_ADDRESS_MODE AddressV;
|
|
TEXTURE_ADDRESS_MODE AddressW;
|
|
float MipLODBias;
|
|
UINT MaxAnisotropy;
|
|
COMPARISON_FUNC ComparisonFunc;
|
|
float BorderColor[4];
|
|
float MinLOD;
|
|
float MaxLOD;
|
|
|
|
SamplerDesc():
|
|
Filter(FILTER_MIN_MAG_MIP_POINT),
|
|
AddressU(TEXTURE_ADDRESS_CLAMP),
|
|
AddressV(TEXTURE_ADDRESS_CLAMP),
|
|
AddressW(TEXTURE_ADDRESS_CLAMP),
|
|
MipLODBias(0.0f),
|
|
MaxAnisotropy(0),
|
|
ComparisonFunc(COMPARISON_NEVER),
|
|
BorderColor{0.0f,0.0f,0.0f,0.0f},
|
|
MinLOD(0.0f),
|
|
MaxLOD(FLT_MAX)
|
|
{}
|
|
};
|
|
struct RasterizerStateDesc
|
|
{
|
|
FILL_MODE FillMode;
|
|
CULL_MODE CullMode;
|
|
bool FrontCounterClockwise;
|
|
INT DepthBias;
|
|
float DepthBiasClamp;
|
|
float SlopeScaledDepthBias;
|
|
bool DepthClipEnable;
|
|
bool ScissorEnable;
|
|
bool MultisampleEnable;
|
|
bool AntialiasedLineEnable;
|
|
bool ConservativeRasterizationEnable;
|
|
UINT ForcedSampleCount;
|
|
|
|
RasterizerStateDesc() :
|
|
FillMode(FILL_SOLID),
|
|
CullMode(CULL_NONE),
|
|
FrontCounterClockwise(false),
|
|
DepthBias(0),
|
|
DepthBiasClamp(0.0f),
|
|
SlopeScaledDepthBias(0.0f),
|
|
DepthClipEnable(false),
|
|
ScissorEnable(false),
|
|
MultisampleEnable(false),
|
|
AntialiasedLineEnable(false),
|
|
ConservativeRasterizationEnable(false),
|
|
ForcedSampleCount(0)
|
|
{}
|
|
};
|
|
struct DepthStencilOpDesc
|
|
{
|
|
STENCIL_OP StencilFailOp;
|
|
STENCIL_OP StencilDepthFailOp;
|
|
STENCIL_OP StencilPassOp;
|
|
COMPARISON_FUNC StencilFunc;
|
|
|
|
DepthStencilOpDesc():
|
|
StencilFailOp(STENCIL_OP_KEEP),
|
|
StencilDepthFailOp(STENCIL_OP_KEEP),
|
|
StencilPassOp(STENCIL_OP_KEEP),
|
|
StencilFunc(COMPARISON_NEVER)
|
|
{}
|
|
};
|
|
struct DepthStencilStateDesc
|
|
{
|
|
bool DepthEnable;
|
|
DEPTH_WRITE_MASK DepthWriteMask;
|
|
COMPARISON_FUNC DepthFunc;
|
|
bool StencilEnable;
|
|
UINT8 StencilReadMask;
|
|
UINT8 StencilWriteMask;
|
|
DepthStencilOpDesc FrontFace;
|
|
DepthStencilOpDesc BackFace;
|
|
|
|
DepthStencilStateDesc():
|
|
DepthEnable(false),
|
|
DepthWriteMask(DEPTH_WRITE_MASK_ZERO),
|
|
DepthFunc(COMPARISON_NEVER),
|
|
StencilEnable(false),
|
|
StencilReadMask(0xff),
|
|
StencilWriteMask(0xff)
|
|
{}
|
|
};
|
|
struct RenderTargetBlendStateDesc
|
|
{
|
|
bool BlendEnable;
|
|
BLEND SrcBlend;
|
|
BLEND DestBlend;
|
|
BLEND_OP BlendOp;
|
|
BLEND SrcBlendAlpha;
|
|
BLEND DestBlendAlpha;
|
|
BLEND_OP BlendOpAlpha;
|
|
UINT8 RenderTargetWriteMask;
|
|
|
|
RenderTargetBlendStateDesc():
|
|
BlendEnable(false),
|
|
SrcBlend(BLEND_SRC_ALPHA),
|
|
DestBlend(BLEND_INV_SRC_ALPHA),
|
|
BlendOp(BLEND_OP_ADD),
|
|
SrcBlendAlpha(BLEND_ONE),
|
|
DestBlendAlpha(BLEND_INV_SRC_ALPHA),
|
|
BlendOpAlpha(BLEND_OP_ADD),
|
|
RenderTargetWriteMask(COLOR_WRITE_ENABLE_ALL)
|
|
{}
|
|
};
|
|
struct BlendStateDesc
|
|
{
|
|
bool AlphaToCoverageEnable;
|
|
bool IndependentBlendEnable;
|
|
RenderTargetBlendStateDesc RenderTarget[8];
|
|
|
|
BlendStateDesc():
|
|
AlphaToCoverageEnable(false),
|
|
IndependentBlendEnable(false)
|
|
{}
|
|
};
|
|
struct GPUBufferDesc
|
|
{
|
|
UINT ByteWidth;
|
|
USAGE Usage;
|
|
UINT BindFlags;
|
|
UINT CPUAccessFlags;
|
|
UINT MiscFlags;
|
|
UINT StructureByteStride;
|
|
|
|
GPUBufferDesc():
|
|
ByteWidth(0),
|
|
Usage(USAGE_DEFAULT),
|
|
BindFlags(0),
|
|
CPUAccessFlags(0),
|
|
MiscFlags(0),
|
|
StructureByteStride(0)
|
|
{}
|
|
};
|
|
struct GPUQueryDesc
|
|
{
|
|
GPU_QUERY_TYPE Type;
|
|
UINT MiscFlags;
|
|
// 0 for immediate access!
|
|
UINT async_latency;
|
|
|
|
GPUQueryDesc():
|
|
Type(GPU_QUERY_TYPE_OCCLUSION_PREDICATE),
|
|
MiscFlags(0),
|
|
async_latency(0)
|
|
{}
|
|
};
|
|
struct SubresourceData
|
|
{
|
|
const void *pSysMem;
|
|
UINT SysMemPitch;
|
|
UINT SysMemSlicePitch;
|
|
|
|
SubresourceData():
|
|
pSysMem(nullptr),
|
|
SysMemPitch(0),
|
|
SysMemSlicePitch(0)
|
|
{}
|
|
};
|
|
struct MappedSubresource
|
|
{
|
|
void *pData;
|
|
UINT RowPitch;
|
|
UINT DepthPitch;
|
|
|
|
MappedSubresource():
|
|
pData(nullptr),
|
|
RowPitch(0),
|
|
DepthPitch(0)
|
|
{}
|
|
};
|
|
struct Rect
|
|
{
|
|
LONG left;
|
|
LONG top;
|
|
LONG right;
|
|
LONG bottom;
|
|
|
|
Rect():
|
|
left(0),
|
|
top(0),
|
|
right(0),
|
|
bottom(0)
|
|
{}
|
|
};
|
|
|
|
}
|
|
|
|
#endif // _GRAPHICS_DESCRIPTORS_H_
|