-
-
Save ThePhD/0049fb3fa3be7478e0d7 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#pragma once | |
#include <Furrovine++/Platform.Graphics.h> | |
#include <Furrovine++/Strings.h> | |
#include <Furrovine++/Bits.h> | |
#include <Furrovine++/make_array.h> | |
#include <Furrovine++/Comparison.h> | |
#include <Furrovine++/Graphics/FeatureLevel.h> | |
#include <Furrovine++/Graphics/DepthWriteMask.h> | |
#include <Furrovine++/Graphics/StencilOperation.h> | |
#include <Furrovine++/Graphics/TextureAddress.h> | |
#include <Furrovine++/Graphics/TextureFilter.h> | |
#include <Furrovine++/Graphics/ClearFlags.h> | |
#include <Furrovine++/Graphics/ColorWriteChannels.h> | |
#include <Furrovine++/Graphics/FillMode.h> | |
#include <Furrovine++/Graphics/CullMode.h> | |
#include <Furrovine++/Graphics/BlendOperation.h> | |
#include <Furrovine++/Graphics/BlendFactor.h> | |
#include <Furrovine++/Graphics/FrontFace.h> | |
#include <Furrovine++/Graphics/SurfaceFormat.h> | |
#include <Furrovine++/Graphics/DepthStencilFormat.h> | |
#include <Furrovine++/Graphics/PrimitiveTopology.h> | |
#include <Furrovine++/Graphics/MonitorScaling.h> | |
#include <Furrovine++/Graphics/MonitorRotation.h> | |
#include <Furrovine++/Graphics/SurfaceScanlineOrder.h> | |
#include <Furrovine++/Graphics/DisplayFilterFlags.h> | |
#include <Furrovine++/Graphics/ResourceOptionFlags.h> | |
#include <Furrovine++/Graphics/ResourceMapping.h> | |
#include <Furrovine++/Graphics/CpuAccessFlags.h> | |
#include <Furrovine++/Graphics/ResourceUsage.h> | |
#include <Furrovine++/Graphics/BindFlags.h> | |
#include <Furrovine++/Graphics/DepthStencilViewFlags.h> | |
#include <Furrovine++/Graphics/IndexElementFormat.h> | |
#include <Furrovine++/Graphics/IndexElementSize.h> | |
#include <Furrovine++/Graphics/IndexElementSize.h> | |
#include <Furrovine++/Graphics/VertexElementComponent.h> | |
#include <Furrovine++/Graphics/VertexElementFormat.h> | |
#include <Furrovine++/Graphics/VertexDataUsage.h> | |
#include <Furrovine++/Graphics/GraphicsDriverType.h> | |
#include <Furrovine++/Graphics/GraphicsDeviceCreationFlags.h> | |
#include <Furrovine++/Graphics/ShaderVersion.h> | |
#include <Furrovine++/Graphics/ShaderCompilationFlags.h> | |
#include <Furrovine++/Graphics/ShaderVariableFlags.h> | |
#include <Furrovine++/Graphics/ShaderVariablePrimitive.h> | |
#include <Furrovine++/Graphics/ShaderVariableType.h> | |
#include <Furrovine++/Graphics/ShaderBufferType.h> | |
#include <Furrovine++/Graphics/ShaderBufferFlags.h> | |
#include <Furrovine++/Graphics/ShaderResourceType.h> | |
#include <Furrovine++/Graphics/ShaderResourceReturnType.h> | |
#include <Furrovine++/Graphics/ShaderResourceFlags.h> | |
#include <Furrovine++/Graphics/ShaderResourceViewDimension.h> | |
#include <Furrovine++/Graphics/DepthStencilViewDimension.h> | |
#include <Furrovine++/Graphics/RenderBufferViewDimension.h> | |
#include <Furrovine++/Graphics/ResourceDimension.h> | |
#include <Furrovine++/Graphics/UnorderedAccessViewDimension.h> | |
#include <Furrovine++/Graphics/ShaderIncludeMode.h> | |
namespace Furrovine { namespace Graphics { namespace Dx { | |
#ifdef FURROVINEDIRECTX | |
enum class FeatureLevel { | |
LevelDx091 = D3D_FEATURE_LEVEL_9_1, | |
LevelDx092 = D3D_FEATURE_LEVEL_9_2, | |
LevelDx093 = D3D_FEATURE_LEVEL_9_3, | |
LevelDx100 = D3D_FEATURE_LEVEL_10_0, | |
LevelDx101 = D3D_FEATURE_LEVEL_10_1, | |
LevelDx110 = D3D_FEATURE_LEVEL_11_0, | |
LevelDx111 = D3D_FEATURE_LEVEL_11_1, | |
}; | |
enum class ShaderResourceReturnType { | |
UNorm = D3D_RETURN_TYPE_UNORM, | |
Normalized = D3D_RETURN_TYPE_SNORM, | |
Int = D3D_RETURN_TYPE_SINT, | |
UInt = D3D_RETURN_TYPE_UINT, | |
Float = D3D_RETURN_TYPE_FLOAT, | |
Mixed = D3D_RETURN_TYPE_MIXED, | |
Double = D3D_RETURN_TYPE_DOUBLE, | |
Continued = D3D_RETURN_TYPE_CONTINUED, | |
}; | |
enum class ShaderResourceType { | |
ConstantBuffer = D3D_SIT_CBUFFER, | |
TextureBuffer = D3D_SIT_TBUFFER, | |
Texture = D3D_SIT_TEXTURE, | |
Sampler = D3D_SIT_SAMPLER, | |
UorderedAccessViewRWTyped = D3D_SIT_UAV_RWTYPED, | |
Structured = D3D_SIT_STRUCTURED, | |
UnorderedAccessViewRWStructured = D3D_SIT_UAV_RWSTRUCTURED, | |
ByteAddress = D3D_SIT_BYTEADDRESS, | |
RWByteAddress = D3D_SIT_UAV_RWBYTEADDRESS, | |
UnorderedAccessViewAppendStructured = D3D_SIT_UAV_APPEND_STRUCTURED, | |
UnorderedAccessViewConsumeStructured = D3D_SIT_UAV_CONSUME_STRUCTURED, | |
UnorderedAccessViewRWStructuredCounter = D3D_SIT_UAV_RWSTRUCTURED_WITH_COUNTER, | |
}; | |
enum class ShaderVariableType { | |
Scalar = D3D_SVC_SCALAR, | |
Vector = D3D_SVC_VECTOR, | |
MatrixRows = D3D_SVC_MATRIX_ROWS, | |
MatrixColums = D3D_SVC_MATRIX_COLUMNS, | |
Object = D3D_SVC_OBJECT, | |
Struct = D3D_SVC_STRUCT, | |
InterfaceClass = D3D_SVC_INTERFACE_CLASS, | |
InterfacePointer = D3D_SVC_INTERFACE_POINTER, | |
}; | |
enum class ShaderVariablePrimitive { | |
Void = D3D_SVT_VOID, | |
Bool = D3D_SVT_BOOL, | |
Int = D3D_SVT_INT, | |
Float = D3D_SVT_FLOAT, | |
String = D3D_SVT_STRING, | |
Texture = D3D_SVT_TEXTURE, | |
Texture1D = D3D_SVT_TEXTURE1D, | |
Texture2D = D3D_SVT_TEXTURE2D, | |
Texture3D = D3D_SVT_TEXTURE3D, | |
TextureCube = D3D_SVT_TEXTURECUBE, | |
Sampler = D3D_SVT_SAMPLER, | |
Sampler1D = D3D_SVT_SAMPLER1D, | |
Sampler2D = D3D_SVT_SAMPLER2D, | |
Sampler3D = D3D_SVT_SAMPLER3D, | |
SamplerCube = D3D_SVT_SAMPLERCUBE, | |
PixelShader = D3D_SVT_PIXELSHADER, | |
VertexShader = D3D_SVT_VERTEXSHADER, | |
PixelFragment = D3D_SVT_PIXELFRAGMENT, | |
VertexFragment = D3D_SVT_VERTEXFRAGMENT, | |
UInt = D3D_SVT_UINT, | |
UInt8 = D3D_SVT_UINT8, | |
GeometryShader = D3D_SVT_GEOMETRYSHADER, | |
Rasterizer = D3D_SVT_RASTERIZER, | |
DepthStencil = D3D_SVT_DEPTHSTENCIL, | |
Blend = D3D_SVT_BLEND, | |
Buffer = D3D_SVT_BUFFER, | |
CBuffer = D3D_SVT_CBUFFER, | |
TBuffer = D3D_SVT_TBUFFER, | |
Texture1DArray = D3D_SVT_TEXTURE1DARRAY, | |
Texture2DArray = D3D_SVT_TEXTURE2DARRAY, | |
RenderBufferView = D3D_SVT_RENDERTARGETVIEW, | |
DepthStencilView = D3D_SVT_DEPTHSTENCILVIEW, | |
Texture2DMS = D3D_SVT_TEXTURE2DMS, | |
Texture2DMSArray = D3D_SVT_TEXTURE2DMSARRAY, | |
TextureCubeArray = D3D_SVT_TEXTURECUBEARRAY, | |
HullShader = D3D_SVT_HULLSHADER, | |
DomainShader = D3D_SVT_DOMAINSHADER, | |
InterfacePointer = D3D_SVT_INTERFACE_POINTER, | |
ComputeShader = D3D_SVT_COMPUTESHADER, | |
Double = D3D_SVT_DOUBLE, | |
RWTexture1D = D3D_SVT_RWTEXTURE1D, | |
RWTexture1DArray = D3D_SVT_RWTEXTURE1DARRAY, | |
RWTexture2D = D3D_SVT_RWTEXTURE2D, | |
RWTexture2DArray = D3D_SVT_RWTEXTURE2DARRAY, | |
RWTexture3D = D3D_SVT_RWTEXTURE3D, | |
RWBuffer = D3D_SVT_RWBUFFER, | |
ByteAddressBuffer = D3D_SVT_BYTEADDRESS_BUFFER, | |
RWByteAddressBuffer = D3D_SVT_RWBYTEADDRESS_BUFFER, | |
StructuredBuffer = D3D_SVT_STRUCTURED_BUFFER, | |
RWStructuredBuffer = D3D_SVT_RWSTRUCTURED_BUFFER, | |
AppendStructuredBuffer = D3D_SVT_APPEND_STRUCTURED_BUFFER, | |
ConsumeStructuredBuffer = D3D_SVT_CONSUME_STRUCTURED_BUFFER, | |
Min8Float = D3D_SVT_MIN8FLOAT, | |
Min10Float = D3D_SVT_MIN10FLOAT, | |
Min16Float = D3D_SVT_MIN16FLOAT, | |
Min12Int = D3D_SVT_MIN12INT, | |
Min16Int = D3D_SVT_MIN16INT, | |
Min16UInt = D3D_SVT_MIN16UINT, | |
}; | |
enum class ShaderBufferType { | |
ConstantBuffer = D3D11_CT_CBUFFER, | |
TextureBuffer = D3D11_CT_TBUFFER, | |
InterfacePointers = D3D11_CT_INTERFACE_POINTERS, | |
ResourceBindInfo = D3D11_CT_RESOURCE_BIND_INFO | |
}; | |
enum class ShaderBufferFlags { | |
None = 0x0, | |
Userpacked = D3D_CBF_USERPACKED, | |
}; | |
enum class ShaderVersion { | |
Version20Software, | |
Version20, | |
Version20a, | |
Version20b, | |
Version30Software, | |
Version30, | |
Version40Level91, | |
Version40Level93, | |
Version40, | |
Version41, | |
Version50, | |
ShaderModel20 = Version20, | |
ShaderModel30 = Version30, | |
ShaderModel40_d3d91 = Version40Level91, | |
ShaderModel40_d3d93 = Version40Level93, | |
ShaderModel40 = Version40, | |
ShaderModel41 = Version41, | |
ShaderModel50 = Version50, | |
Default = ShaderModel40_d3d93 | |
}; | |
const std::array<String, 11> ModelVersion = { | |
"2_sw", | |
"2_0", | |
"2_a", | |
"2_b", | |
"3_sw", | |
"3_0", | |
"4_0_level_9_1", | |
"4_0_level_9_3", | |
"4_0", | |
"4_1", | |
"5_0" | |
}; | |
enum class DepthWriteMask { | |
None = D3D11_DEPTH_WRITE_MASK_ZERO, | |
All = D3D11_DEPTH_WRITE_MASK_ALL | |
}; | |
enum class StencilOperations { | |
Keep = D3D11_STENCIL_OP_KEEP, | |
Zero = D3D11_STENCIL_OP_ZERO, | |
Replace = D3D11_STENCIL_OP_REPLACE, | |
IncrementClamp = D3D11_STENCIL_OP_INCR_SAT, | |
DecrementClamp = D3D11_STENCIL_OP_DECR_SAT, | |
Invert = D3D11_STENCIL_OP_INVERT, | |
Increment = D3D11_STENCIL_OP_INCR, | |
Decrement = D3D11_STENCIL_OP_DECR, | |
}; | |
enum class ShaderVariableFlags { | |
None = 0, | |
Userpacked = D3D_SVF_USERPACKED, | |
Used = D3D_SVF_USED, | |
InterfacePointer = D3D_SVF_INTERFACE_POINTER, | |
InterfaceParameter = D3D_SVF_INTERFACE_PARAMETER, | |
}; | |
enum class ShaderResourceFlags { | |
None = 0x0, | |
Userpacked = D3D_SIF_USERPACKED, | |
ComparisonSampler = D3D_SIF_COMPARISON_SAMPLER, | |
TextureComponent0 = D3D_SIF_TEXTURE_COMPONENT_0, | |
TextureComponent1 = D3D_SIF_TEXTURE_COMPONENT_1, | |
Unused = D3D_SIF_UNUSED, | |
TextureComponent01 = TextureComponent0 | TextureComponent1, | |
}; | |
enum class TextureAddress { | |
Wrap = D3D11_TEXTURE_ADDRESS_WRAP, | |
Mirror = D3D11_TEXTURE_ADDRESS_MIRROR, | |
Clamp = D3D11_TEXTURE_ADDRESS_CLAMP, | |
Border = D3D11_TEXTURE_ADDRESS_BORDER, | |
MirrorOnce = D3D11_TEXTURE_ADDRESS_MIRROR_ONCE, | |
Repeat = Wrap, | |
MirrorRepeat = Mirror, | |
Default = Clamp, | |
}; | |
enum class TextureFilter { | |
Point = D3D11_FILTER_MIN_MAG_MIP_POINT, | |
Linear = D3D11_FILTER_MIN_MAG_MIP_LINEAR, | |
Anisotropic = D3D11_FILTER_ANISOTROPIC, | |
MinPointMagLinearMipPoint = D3D11_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT, | |
MinLinearMagPointMipLinear = D3D11_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR, | |
MinMagPointMipLinear = D3D11_FILTER_MIN_MAG_POINT_MIP_LINEAR, | |
MinMagLinearMipPoint = D3D11_FILTER_MIN_MAG_LINEAR_MIP_POINT, | |
}; | |
enum class Comparison { | |
Never = D3D11_COMPARISON_NEVER, | |
Less = D3D11_COMPARISON_LESS, | |
Equal = D3D11_COMPARISON_EQUAL, | |
LessEqual = D3D11_COMPARISON_LESS_EQUAL, | |
Greater = D3D11_COMPARISON_GREATER, | |
NotEqual = D3D11_COMPARISON_NOT_EQUAL, | |
GreaterEqual = D3D11_COMPARISON_GREATER_EQUAL, | |
Always = D3D11_COMPARISON_ALWAYS, | |
}; | |
enum class ComparisonFlags { | |
None = 0, | |
Never = 1 << (unsigned)Comparison::Never, | |
Less = 1 << (unsigned)Comparison::Less, | |
Equal = 1 << (unsigned)Comparison::Equal, | |
LessEqual = 1 << (unsigned)Comparison::LessEqual, | |
Greater = 1 << (unsigned)Comparison::Greater, | |
NotEqual = 1 << (unsigned)Comparison::NotEqual, | |
GreaterEqual = 1 << (unsigned)Comparison::GreaterEqual, | |
Always = 1 << (unsigned)Comparison::Always | |
}; | |
enum class DepthStencilViewFlags { | |
None = 0x0, | |
ReadOnlyDepth = 0x1L, | |
ReadOnlyStencil = 0x2L | |
}; | |
enum class BlendFactor { | |
Zero = D3D11_BLEND_ZERO, | |
One = D3D11_BLEND_ONE, | |
SourceColor = D3D11_BLEND_SRC_COLOR, | |
InverseSourceColor = D3D11_BLEND_INV_SRC_COLOR, | |
SourceAlpha = D3D11_BLEND_SRC_ALPHA, | |
InverseSourceAlpha = D3D11_BLEND_INV_SRC_ALPHA, | |
DestinationAlpha = D3D11_BLEND_DEST_ALPHA, | |
InverseDestinationAlpha = D3D11_BLEND_INV_DEST_ALPHA, | |
DestinationColor = D3D11_BLEND_DEST_COLOR, | |
InverseDestinationColor = D3D11_BLEND_INV_DEST_COLOR, | |
SourceAlphaClamped = D3D11_BLEND_SRC_ALPHA_SAT, | |
Manual = D3D11_BLEND_BLEND_FACTOR, | |
InverseManual = D3D11_BLEND_INV_BLEND_FACTOR, | |
PixelShaderSourceColor = D3D11_BLEND_SRC1_COLOR, | |
InversePixelShaderSourceColor = D3D11_BLEND_INV_SRC1_COLOR, | |
PixelShaderSourceAlpha = D3D11_BLEND_SRC1_ALPHA, | |
InversePixelShaderSourceAlpha = D3D11_BLEND_INV_SRC1_ALPHA | |
}; | |
enum class BlendOperation { | |
Add = D3D11_BLEND_OP_ADD, | |
Subtract = D3D11_BLEND_OP_SUBTRACT, | |
ReverseSubtract = D3D11_BLEND_OP_REV_SUBTRACT, | |
Min = D3D11_BLEND_OP_MIN, | |
Max = D3D11_BLEND_OP_MAX | |
}; | |
enum class ColorWriteChannels : byte { | |
None = 0x0, | |
Red = D3D11_COLOR_WRITE_ENABLE_RED, | |
Green = D3D11_COLOR_WRITE_ENABLE_GREEN, | |
Blue = D3D11_COLOR_WRITE_ENABLE_BLUE, | |
Alpha = D3D11_COLOR_WRITE_ENABLE_ALPHA, | |
All = Red | Green | Blue | Alpha, | |
}; | |
enum class ClearFlags { | |
None = 0x0, | |
Depth = D3D11_CLEAR_DEPTH, | |
Stencil = D3D11_CLEAR_STENCIL, | |
Color = 0x04, | |
DepthStencil = Depth | Stencil, | |
DepthStencilColor = Depth | Stencil | Color | |
}; | |
enum class FrontFace { | |
Clockwise = 0, | |
CounterClockwise = 1, | |
}; | |
enum class CullMode { | |
None = D3D11_CULL_NONE, | |
Front = D3D11_CULL_FRONT, | |
Back = D3D11_CULL_BACK, | |
}; | |
enum class PrimitiveTopology { | |
Points = D3D11_PRIMITIVE_TOPOLOGY_POINTLIST, | |
PointList = Points, | |
Lines = D3D11_PRIMITIVE_TOPOLOGY_LINELIST, | |
LineList = Lines, | |
LineStrip = D3D11_PRIMITIVE_TOPOLOGY_LINESTRIP, | |
Triangles = D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST, | |
TriangleList = Triangles, | |
TriangleStrip = D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP, | |
}; | |
enum class GraphicsDeviceCreationFlags { | |
None = 0, | |
SingleThreaded = D3D11_CREATE_DEVICE_SINGLETHREADED, | |
Debug = D3D11_CREATE_DEVICE_DEBUG, | |
SwitchToReference = D3D11_CREATE_DEVICE_SWITCH_TO_REF, | |
PreventInternalThreadingOptimizations = D3D11_CREATE_DEVICE_PREVENT_INTERNAL_THREADING_OPTIMIZATIONS, | |
BlueGreenRedAlphaSupport = D3D11_CREATE_DEVICE_BGRA_SUPPORT, | |
Debuggable = D3D11_CREATE_DEVICE_DEBUGGABLE, | |
PreventRegistryDeviceAlterting = D3D11_CREATE_DEVICE_PREVENT_ALTERING_LAYER_SETTINGS_FROM_REGISTRY, | |
NoTimeout = D3D11_CREATE_DEVICE_DISABLE_GPU_TIMEOUT, | |
VideoSupport = D3D11_CREATE_DEVICE_VIDEO_SUPPORT, | |
}; | |
enum class FillMode { | |
Point = 1, | |
Wireframe = D3D11_FILL_WIREFRAME, | |
Solid = D3D11_FILL_SOLID, | |
}; | |
enum class GraphicsDriverType { | |
Unknown = D3D_DRIVER_TYPE_UNKNOWN, | |
Hardware = D3D_DRIVER_TYPE_HARDWARE, | |
Reference = D3D_DRIVER_TYPE_REFERENCE, | |
Null = D3D_DRIVER_TYPE_NULL, | |
Software = D3D_DRIVER_TYPE_SOFTWARE, | |
Warp = D3D_DRIVER_TYPE_WARP, | |
}; | |
enum class VertexDataUsage { | |
PerVertex = D3D11_INPUT_PER_VERTEX_DATA, | |
PerInstance = D3D11_INPUT_PER_INSTANCE_DATA, | |
}; | |
enum class MonitorScaling { | |
Unknown = DXGI_MODE_SCALING_UNSPECIFIED, | |
Centered = DXGI_MODE_SCALING_CENTERED, | |
Stretched = DXGI_MODE_SCALING_STRETCHED | |
}; | |
enum class MonitorRotation { | |
Unspecified = DXGI_MODE_ROTATION_UNSPECIFIED, | |
Identity = DXGI_MODE_ROTATION_IDENTITY, | |
Rotate90 = DXGI_MODE_ROTATION_ROTATE90, | |
Rotate180 = DXGI_MODE_ROTATION_ROTATE180, | |
Rotate270 = DXGI_MODE_ROTATION_ROTATE270 | |
}; | |
enum class SurfaceScanlineOrder { | |
Unknown = DXGI_MODE_SCANLINE_ORDER_UNSPECIFIED, | |
Progressive = DXGI_MODE_SCANLINE_ORDER_PROGRESSIVE, | |
UpperField = DXGI_MODE_SCANLINE_ORDER_UPPER_FIELD_FIRST, | |
LowerField = DXGI_MODE_SCANLINE_ORDER_LOWER_FIELD_FIRST, | |
}; | |
enum DisplayFilterFlags { | |
None = 0, | |
Interlaced = DXGI_ENUM_MODES_INTERLACED, | |
Scaling = DXGI_ENUM_MODES_SCALING, | |
Stereo = /*DXGI_ENUM_MODES_STEREO*/4, | |
HiddenStereo = /*DXGI_ENUM_MODES_DISABLED_STEREO*/8 | |
}; | |
enum class ResourceOptionFlags { | |
None = 0, | |
GENERATE_MIPS = D3D11_RESOURCE_MISC_GENERATE_MIPS, | |
SHARED = D3D11_RESOURCE_MISC_SHARED, | |
TEXTURECUBE = D3D11_RESOURCE_MISC_TEXTURECUBE, | |
DRAWINDIRECT_ARGS = D3D11_RESOURCE_MISC_DRAWINDIRECT_ARGS, | |
BUFFER_ALLOW_RAW_VIEWS = D3D11_RESOURCE_MISC_BUFFER_ALLOW_RAW_VIEWS, | |
BUFFER_STRUCTURED = D3D11_RESOURCE_MISC_BUFFER_STRUCTURED, | |
RESOURCE_CLAMP = D3D11_RESOURCE_MISC_RESOURCE_CLAMP, | |
SHARED_KEYEDMUTEX = D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX, | |
GDI_COMPATIBLE = D3D11_RESOURCE_MISC_GDI_COMPATIBLE, | |
SHARED_NTHANDLE = D3D11_RESOURCE_MISC_SHARED_NTHANDLE, | |
RESTRICTED_CONTENT = D3D11_RESOURCE_MISC_RESTRICTED_CONTENT, | |
RESTRICT_SHARED_RESOURCE = D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE, | |
RESTRICT_SHARED_RESOURCE_DRIVER = D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE_DRIVER, | |
GUARDED = D3D11_RESOURCE_MISC_GUARDED, | |
TILE_POOL = D3D11_RESOURCE_MISC_TILE_POOL, | |
TILED = D3D11_RESOURCE_MISC_TILED, | |
}; | |
enum class ShaderIncludeMode { | |
Local = D3D_INCLUDE_LOCAL, | |
System = D3D_INCLUDE_SYSTEM | |
}; | |
enum class BindFlags { | |
None = 0, | |
VertexBuffer = D3D11_BIND_VERTEX_BUFFER, | |
IndexBuffer = D3D11_BIND_INDEX_BUFFER, | |
UniformConstantBuffer = D3D11_BIND_CONSTANT_BUFFER, | |
ShaderResource = D3D11_BIND_SHADER_RESOURCE, | |
StreamOutput = D3D11_BIND_STREAM_OUTPUT, | |
RenderBuffer = D3D11_BIND_RENDER_TARGET, | |
DepthStencil = D3D11_BIND_DEPTH_STENCIL | |
}; | |
enum class CpuAccessFlags { | |
None = 0, | |
Readable = D3D11_CPU_ACCESS_READ, | |
Writable = D3D11_CPU_ACCESS_WRITE, | |
}; | |
enum class ResourceMapping { | |
Read = D3D11_MAP_READ, | |
Write = D3D11_MAP_WRITE, | |
ReadWrite = D3D11_MAP_READ_WRITE, | |
WriteAndDiscard = D3D11_MAP_WRITE_DISCARD, | |
WriteAndDiscardNoOverwrite = D3D11_MAP_WRITE_NO_OVERWRITE, | |
}; | |
enum class IndexElementFormat { | |
Zero = 0, | |
EightBits = DXGI_FORMAT_R8_UINT, | |
SixteenBits = DXGI_FORMAT_R16_UINT, | |
ThirtyTwoBits = DXGI_FORMAT_R32_UINT, | |
SixtyFourBits = DXGI_FORMAT_R32G32_UINT, | |
Default = SixteenBits | |
}; | |
enum class ResourceUsage { | |
Default = D3D11_USAGE_DEFAULT, | |
Immutable = D3D11_USAGE_IMMUTABLE, | |
Dynamic = D3D11_USAGE_DYNAMIC, | |
Staging = D3D11_USAGE_STAGING, | |
}; | |
enum class ShaderResourceViewDimension { | |
Unknown = D3D11_SRV_DIMENSION_UNKNOWN, | |
Buffer = D3D11_SRV_DIMENSION_BUFFER, | |
Texture1D = D3D11_SRV_DIMENSION_TEXTURE1D, | |
Texture1DArray = D3D11_SRV_DIMENSION_TEXTURE1DARRAY, | |
Texture2D = D3D11_SRV_DIMENSION_TEXTURE2D, | |
Texture2DArray = D3D11_SRV_DIMENSION_TEXTURE2DARRAY, | |
Texture2DMultiSampled = D3D11_SRV_DIMENSION_TEXTURE2DMS, | |
Texture2DMultiSampledArray = D3D11_SRV_DIMENSION_TEXTURE2DMSARRAY, | |
Texture3D = D3D11_SRV_DIMENSION_TEXTURE3D, | |
TextureCube = D3D11_SRV_DIMENSION_TEXTURECUBE, | |
TextureCubeArray = D3D11_SRV_DIMENSION_TEXTURECUBEARRAY, | |
BufferExtended = D3D11_SRV_DIMENSION_BUFFEREX, | |
}; | |
enum class RenderBufferViewDimension { | |
Unknown = D3D11_RTV_DIMENSION_UNKNOWN, | |
Buffer = D3D11_RTV_DIMENSION_BUFFER, | |
Texture1D = D3D11_RTV_DIMENSION_TEXTURE1D, | |
Texture1DArray = D3D11_RTV_DIMENSION_TEXTURE1DARRAY, | |
Texture2D = D3D11_RTV_DIMENSION_TEXTURE2D, | |
Texture2DArray = D3D11_RTV_DIMENSION_TEXTURE2DARRAY, | |
Texture2DMultiSampled = D3D11_RTV_DIMENSION_TEXTURE2DMS, | |
Texture2DMultiSampledArray = D3D11_RTV_DIMENSION_TEXTURE2DMSARRAY, | |
Texture3D = D3D11_RTV_DIMENSION_TEXTURE3D, | |
}; | |
enum class ResourceDimension { | |
Unknown = D3D11_RESOURCE_DIMENSION_UNKNOWN, | |
Buffer = D3D11_RESOURCE_DIMENSION_BUFFER, | |
Texture1D = D3D11_RESOURCE_DIMENSION_TEXTURE1D, | |
Texture2D = D3D11_RESOURCE_DIMENSION_TEXTURE2D, | |
Texture3D = D3D11_RESOURCE_DIMENSION_TEXTURE3D, | |
}; | |
enum class DepthStencilViewDimension { | |
Unknown = D3D11_DSV_DIMENSION_UNKNOWN, | |
Texture1D = D3D11_DSV_DIMENSION_TEXTURE1D, | |
Texture1DArray = D3D11_DSV_DIMENSION_TEXTURE1DARRAY, | |
Texture2D = D3D11_DSV_DIMENSION_TEXTURE2D, | |
Texture2DArray = D3D11_DSV_DIMENSION_TEXTURE2DARRAY, | |
Texture2DMultiSampled = D3D11_DSV_DIMENSION_TEXTURE2DMS, | |
Texture2DMultiSampledArray = D3D11_DSV_DIMENSION_TEXTURE2DMSARRAY, | |
}; | |
enum class ShaderCompilationFlags { | |
None = 0x0, | |
Debug = D3D10_SHADER_DEBUG, | |
SkipValidation = D3D10_SHADER_SKIP_VALIDATION, | |
NoOptimizations = D3D10_SHADER_SKIP_OPTIMIZATION, | |
MatrixRowMajor = D3D10_SHADER_PACK_MATRIX_ROW_MAJOR, | |
MatrixColumnMajor = D3D10_SHADER_PACK_MATRIX_COLUMN_MAJOR, | |
LessAccurateFastMath = D3D10_SHADER_PARTIAL_PRECISION, | |
ForceVertexSoftwareVersionDebug = D3D10_SHADER_FORCE_VS_SOFTWARE_NO_OPT, | |
ForcePixelSoftwareVersionDebug = D3D10_SHADER_FORCE_PS_SOFTWARE_NO_OPT, | |
DisableStaticOptomization = D3D10_SHADER_NO_PRESHADER, | |
AvoidFlowControl = D3D10_SHADER_AVOID_FLOW_CONTROL, | |
PreferFlowControl = D3D10_SHADER_PREFER_FLOW_CONTROL, | |
Strict = D3D10_SHADER_ENABLE_STRICTNESS, | |
BackwardsCompatibility = D3D10_SHADER_ENABLE_BACKWARDS_COMPATIBILITY, | |
IEEEStrict = D3D10_SHADER_IEEE_STRICTNESS, | |
}; | |
enum class DepthStencilFormat { | |
None = 0, | |
Depth16NoStencil = DXGI_FORMAT_D16_UNORM, | |
Depth24Stencil8 = DXGI_FORMAT_D24_UNORM_S8_UINT, | |
Depth32Stencil8 = DXGI_FORMAT_D32_FLOAT_S8X24_UINT, | |
}; | |
enum class SurfaceFormat { | |
Unknown = DXGI_FORMAT_UNKNOWN, | |
Red8Green8Blue8Alpha8NormalizedsRGB = DXGI_FORMAT_R8G8B8A8_UNORM_SRGB, | |
Red8Green8Blue8Alpha8Normalized = DXGI_FORMAT_R8G8B8A8_UNORM, | |
Red8Green8Blue8Alpha8UInt32 = DXGI_FORMAT_R8G8B8A8_UINT, | |
Red8Green8Blue8Alpha8 = DXGI_FORMAT_R8G8B8A8_TYPELESS, | |
Red8Green8Blue8NormalizedsRGB = DXGI_FORMAT_B8G8R8X8_UNORM_SRGB, | |
Red8Green8Blue8Normalized = DXGI_FORMAT_B8G8R8X8_UNORM, | |
Red8Green8Blue8 = DXGI_FORMAT_B8G8R8X8_TYPELESS, | |
Red32Green32Blue32Alpha32 = DXGI_FORMAT_R32G32B32A32_FLOAT, | |
Red16Green16Blue16Alpha16 = DXGI_FORMAT_R16G16B16A16_FLOAT, | |
Red32Green32Blue32 = DXGI_FORMAT_R32G32B32_FLOAT, | |
Red10Green10Blue10Alpha2Normalized = DXGI_FORMAT_R10G10B10A2_UNORM, | |
Red10Green10Blue10Alpha2UInt32 = DXGI_FORMAT_R10G10B10A2_UINT, | |
Red10Green10Blue10Alpha2 = DXGI_FORMAT_R10G10B10A2_TYPELESS, | |
Blue8Green8Red8Alpha8NormalizedsRGB = DXGI_FORMAT_B8G8R8A8_UNORM_SRGB, | |
Blue8Green8Red8Alpha8Normalized = DXGI_FORMAT_B8G8R8A8_UNORM, | |
Blue8Green8Red8Alpha8 = DXGI_FORMAT_B8G8R8A8_TYPELESS, | |
Blue5Green6Red5Alpha1Normalized = DXGI_FORMAT_B5G5R5A1_UNORM, | |
Blue5Green6Red5Normalized = DXGI_FORMAT_B5G6R5_UNORM, | |
Alpha8 = DXGI_FORMAT_A8_UNORM, | |
Float = DXGI_FORMAT_R32_FLOAT, | |
Red16Green16 = DXGI_FORMAT_R16G16_FLOAT, | |
DXT1 = DXGI_FORMAT_BC1_TYPELESS, | |
DXT2 = DXGI_FORMAT_BC1_TYPELESS, | |
DXT3 = DXGI_FORMAT_BC2_TYPELESS, | |
DXT4 = DXGI_FORMAT_BC2_TYPELESS, | |
DXT5 = DXGI_FORMAT_BC3_TYPELESS, | |
DXT1Normalized = DXGI_FORMAT_BC1_UNORM, | |
DXT2Normalized = DXGI_FORMAT_BC1_UNORM, | |
DXT3Normalized = DXGI_FORMAT_BC2_UNORM, | |
DXT4Normalized = DXGI_FORMAT_BC2_UNORM, | |
DXT5Normalized = DXGI_FORMAT_BC3_UNORM, | |
DXT1NormalizedsRGB = DXGI_FORMAT_BC1_UNORM_SRGB, | |
DXT2NormalizedsRGB = DXGI_FORMAT_BC1_UNORM_SRGB, | |
DXT3NormalizedsRGB = DXGI_FORMAT_BC2_UNORM_SRGB, | |
DXT4NormalizedsRGB = DXGI_FORMAT_BC2_UNORM_SRGB, | |
DXT5NormalizedsRGB = DXGI_FORMAT_BC3_UNORM_SRGB, | |
ATI1 = DXGI_FORMAT_BC4_TYPELESS, | |
ATI2 = DXGI_FORMAT_BC5_TYPELESS, | |
ATI1Normalized = DXGI_FORMAT_BC4_UNORM, | |
ATI2Normalized = DXGI_FORMAT_BC5_UNORM, | |
BlockCompression6HDR = DXGI_FORMAT_BC6H_TYPELESS, | |
BlockCompression7 = DXGI_FORMAT_BC7_TYPELESS, | |
Single = Float, | |
Vector3 = Red32Green32Blue32, | |
Vector4 = Red32Green32Blue32Alpha32, | |
HalfVector4 = Red16Green16Blue16Alpha16, | |
HalfVector2 = Red16Green16, | |
FloatColor = Red32Green32Blue32Alpha32, | |
ByteColor = Red8Green8Blue8Alpha8Normalized, | |
#ifdef FURROVINEFLOATCOLOR | |
Color = FloatColor, | |
#else | |
Color = ByteColor, | |
#endif | |
Rgb = Red8Green8Blue8Normalized, | |
Rgba = Red8Green8Blue8Alpha8Normalized, | |
sRgb = Red8Green8Blue8NormalizedsRGB, | |
sRgba = Red8Green8Blue8Alpha8NormalizedsRGB, | |
}; | |
enum class VertexElementComponent { | |
Unknown = D3D_REGISTER_COMPONENT_UNKNOWN, | |
UInt = D3D_REGISTER_COMPONENT_UINT32, | |
Int = D3D_REGISTER_COMPONENT_SINT32, | |
Float = D3D_REGISTER_COMPONENT_FLOAT32, | |
Double = 4, | |
Byte = 5, | |
Bool = 6, | |
SByte = 7, | |
Short = 8, | |
UShort = 9, | |
Half = 10 | |
}; | |
enum class VertexElementFormat { | |
None = 0, | |
Any = 0x7FFFFFFF, | |
Bool = DXGI_FORMAT_R1_UNORM, | |
Bool2 = -2, | |
Bool3 = -3, | |
Bool4 = -4, | |
Int = DXGI_FORMAT_R32_SINT, | |
Int2 = DXGI_FORMAT_R32G32_SINT, | |
Int3 = DXGI_FORMAT_R32G32B32_SINT, | |
Int4 = DXGI_FORMAT_R32G32B32A32_SINT, | |
Point = Int2, | |
Point3 = Int3, | |
Point4 = Int4, | |
UInt = DXGI_FORMAT_R32_UINT, | |
UInt2 = DXGI_FORMAT_R32G32_UINT, | |
UInt3 = DXGI_FORMAT_R32G32B32_UINT, | |
UInt4 = DXGI_FORMAT_R32G32B32A32_UINT, | |
Short = DXGI_FORMAT_R16_SINT, | |
Short2 = DXGI_FORMAT_R16G16_SINT, | |
Short4 = DXGI_FORMAT_R16G16B16A16_SINT, | |
UShort = DXGI_FORMAT_R16_UINT, | |
UShort2 = DXGI_FORMAT_R16G16_UINT, | |
UShort4 = DXGI_FORMAT_R16G16B16A16_UINT, | |
Half = DXGI_FORMAT_R16_FLOAT, | |
Half2 = DXGI_FORMAT_R16G16_FLOAT, | |
Half3 = -32, | |
Half4 = DXGI_FORMAT_R16G16B16A16_FLOAT, | |
Float = DXGI_FORMAT_R32_FLOAT, | |
Float2 = DXGI_FORMAT_R32G32_FLOAT, | |
Float3 = DXGI_FORMAT_R32G32B32_FLOAT, | |
Float4 = DXGI_FORMAT_R32G32B32A32_FLOAT, | |
Vector2 = Float2, | |
Vector3 = Float3, | |
Vector4 = Float4, | |
#ifdef FURROVINEFLOATCOLOR | |
Color = Vector4, | |
#endif | |
Float2x2 = -5, | |
Float2x3 = -6, | |
Float2x4 = -7, | |
Float3x2 = -9, | |
Float3x3 = -10, | |
Float3x4 = -11, | |
Float4x2 = -12, | |
Float4x3 = -13, | |
Float4x4 = -14, | |
Double = -200, | |
Double2 = -15, | |
Double3 = -16, | |
Double4 = -17, | |
Double2x2 = -18, | |
Double2x3 = -19, | |
Double2x4 = -20, | |
Double3x2 = -21, | |
Double3x3 = -22, | |
Double3x4 = -23, | |
Double4x2 = -24, | |
Double4x3 = -25, | |
Double4x4 = -26, | |
Byte = DXGI_FORMAT_R8_UNORM, | |
Byte2 = DXGI_FORMAT_R8G8_UNORM, | |
Byte3 = DXGI_FORMAT_B8G8R8X8_UNORM, | |
Byte4 = DXGI_FORMAT_R8G8B8A8_UNORM, | |
SByte = DXGI_FORMAT_R8_SNORM, | |
SByte2 = DXGI_FORMAT_R8G8_SNORM, | |
SByte3 = -30, | |
SByte4 = DXGI_FORMAT_R8G8B8A8_SNORM, | |
#ifndef FURROVINEFLOATCOLOR | |
Color = Byte4, | |
#endif | |
}; | |
enumflagoperators( ClearFlags ); | |
enumflagoperators( DisplayFilterFlags ); | |
enumflagoperators( ResourceOptionFlags ); | |
enumflagoperators( CpuAccessFlags ); | |
enumflagoperators( BindFlags ); | |
enumflagoperators( ColorWriteChannels ); | |
enumflagoperators( ComparisonFlags ); | |
enumflagoperators( ShaderResourceFlags ); | |
enumflagoperators( ShaderVariableFlags ); | |
furrovineapi Graphics::FeatureLevel FromPlatform( FeatureLevel value ); | |
furrovineapi Graphics::ShaderVersion FromPlatform( ShaderVersion value ); | |
furrovineapi Graphics::ShaderVersion ShaderVersionFromPlatform( const String& longversion ); | |
furrovineapi Graphics::VertexDataUsage FromPlatform( VertexDataUsage value ); | |
furrovineapi Graphics::ShaderIncludeMode FromPlatform( ShaderIncludeMode value ); | |
furrovineapi Graphics::DepthWriteMask FromPlatform( DepthWriteMask value ); | |
furrovineapi Graphics::StencilOperation FromPlatform( StencilOperation value ); | |
furrovineapi Graphics::VertexElementFormat FromPlatform( VertexElementFormat value ); | |
furrovineapi Graphics::CpuAccessFlags FromPlatform( CpuAccessFlags value ); | |
furrovineapi Graphics::ShaderResourceFlags FromPlatform( ShaderResourceFlags value ); | |
furrovineapi Graphics::CullMode FromPlatform( CullMode value ); | |
furrovineapi Graphics::ClearFlags FromPlatform( ClearFlags value ); | |
furrovineapi Graphics::DepthStencilViewFlags FromPlatform( DepthStencilViewFlags value ); | |
furrovineapi Graphics::ColorWriteChannels FromPlatform( ColorWriteChannels value ); | |
furrovineapi Graphics::BlendOperation FromPlatform( BlendOperation value ); | |
furrovineapi Graphics::BlendFactor FromPlatform( BlendFactor value ); | |
furrovineapi Graphics::VertexElementComponent FromPlatform( VertexElementComponent value ); | |
furrovineapi Graphics::TextureFilter FromPlatform( TextureFilter value ); | |
furrovineapi Graphics::TextureAddress FromPlatform( TextureAddress value ); | |
furrovineapi Graphics::FillMode FromPlatform( FillMode value ); | |
furrovineapi Graphics::FrontFace FromPlatform( FrontFace value ); | |
furrovineapi Graphics::ShaderCompilationFlags FromPlatform( ShaderCompilationFlags value ); | |
furrovineapi Graphics::ShaderVariableFlags FromPlatform( ShaderVariableFlags value ); | |
furrovineapi Graphics::ShaderVariableType FromPlatform( ShaderVariableType value ); | |
furrovineapi Graphics::ShaderResourceType FromPlatform( ShaderResourceType value ); | |
furrovineapi Graphics::ShaderResourceReturnType FromPlatform( ShaderResourceReturnType value ); | |
furrovineapi Graphics::ShaderVariablePrimitive FromPlatform( ShaderVariablePrimitive value ); | |
furrovineapi Graphics::ShaderBufferType FromPlatform( ShaderBufferType value ); | |
furrovineapi Graphics::ShaderBufferFlags FromPlatform( ShaderBufferFlags value ); | |
furrovineapi Graphics::GraphicsDriverType FromPlatform( GraphicsDriverType value ); | |
furrovineapi Graphics::GraphicsDeviceCreationFlags FromPlatform( GraphicsDeviceCreationFlags value ); | |
furrovineapi Graphics::PrimitiveTopology FromPlatform( PrimitiveTopology value ); | |
furrovineapi Graphics::MonitorScaling FromPlatform( MonitorScaling value ); | |
furrovineapi Graphics::SurfaceScanlineOrder FromPlatform( SurfaceScanlineOrder value ); | |
furrovineapi Furrovine::Comparison FromPlatform( Comparison value ); | |
furrovineapi Graphics::ResourceMapping FromPlatform( ResourceMapping value ); | |
furrovineapi Graphics::ResourceUsage FromPlatform( ResourceUsage value ); | |
furrovineapi Graphics::ResourceOptionFlags FromPlatform( ResourceOptionFlags value ); | |
furrovineapi Graphics::MonitorRotation FromPlatform( MonitorRotation value ); | |
furrovineapi Graphics::ShaderResourceViewDimension FromPlatform( ShaderResourceViewDimension value ); | |
furrovineapi Graphics::UnorderedAccessViewDimension FromPlatform( UnorderedAccessViewDimension value ); | |
furrovineapi Graphics::RenderBufferViewDimension FromPlatform( RenderBufferViewDimension value ); | |
furrovineapi Graphics::DepthStencilViewDimension FromPlatform( DepthStencilViewDimension value ); | |
furrovineapi Graphics::ResourceDimension FromPlatform( ResourceDimension value ); | |
furrovineapi Graphics::BindFlags FromPlatform( BindFlags value ); | |
furrovineapi Graphics::SurfaceFormat FromPlatform( SurfaceFormat value ); | |
furrovineapi FeatureLevel ToPlatform( Graphics::FeatureLevel value ); | |
furrovineapi ClearFlags ToPlatform( Graphics::ClearFlags value ); | |
furrovineapi DepthStencilViewFlags ToPlatform( Graphics::DepthStencilViewFlags value ); | |
furrovineapi StencilOperation ToPlatform( Graphics::StencilOperation value ); | |
furrovineapi ColorWriteChannels ToPlatform( Graphics::ColorWriteChannels value ); | |
furrovineapi VertexElementComponent ToPlatform( Graphics::VertexElementComponent value ); | |
furrovineapi FillMode ToPlatform( Graphics::FillMode value ); | |
furrovineapi CullMode ToPlatform( Graphics::CullMode value ); | |
furrovineapi FrontFace ToPlatform( Graphics::FrontFace value ); | |
furrovineapi DepthWriteMask ToPlatform( Graphics::DepthWriteMask value ); | |
furrovineapi VertexDataUsage ToPlatform( Graphics::VertexDataUsage value ); | |
furrovineapi ShaderCompilationFlags ToPlatform( Graphics::ShaderCompilationFlags value ); | |
furrovineapi PrimitiveTopology ToPlatform( Graphics::PrimitiveTopology value ); | |
furrovineapi GraphicsDriverType ToPlatform( Graphics::GraphicsDriverType value ); | |
furrovineapi ShaderVariableFlags ToPlatform( Graphics::ShaderVariableFlags value ); | |
furrovineapi ShaderResourceFlags ToPlatform( Graphics::ShaderResourceFlags value ); | |
furrovineapi GraphicsDeviceCreationFlags ToPlatform( Graphics::GraphicsDeviceCreationFlags value ); | |
furrovineapi MonitorScaling ToPlatform( Graphics::MonitorScaling value ); | |
furrovineapi MonitorRotation ToPlatform( Graphics::MonitorRotation value ); | |
furrovineapi SurfaceScanlineOrder ToPlatform( Graphics::SurfaceScanlineOrder value ); | |
furrovineapi Comparison ToPlatform( Furrovine::Comparison value ); | |
furrovineapi ResourceMapping ToPlatform( Graphics::ResourceMapping value ); | |
furrovineapi ResourceUsage ToPlatform( Graphics::ResourceUsage value ); | |
furrovineapi ShaderResourceViewDimension ToPlatform( Graphics::ShaderResourceViewDimension value ); | |
furrovineapi UnorderedAccessViewDimension ToPlatform( Graphics::UnorderedAccessViewDimension value ); | |
furrovineapi RenderBufferViewDimension ToPlatform( Graphics::RenderBufferViewDimension value ); | |
furrovineapi DepthStencilViewDimension ToPlatform( Graphics::DepthStencilViewDimension value ); | |
furrovineapi ResourceDimension ToPlatform( Graphics::ResourceDimension value ); | |
furrovineapi ShaderIncludeMode ToPlatform( Graphics::ShaderIncludeMode value ); | |
furrovineapi ShaderVersion ToPlatform( Graphics::ShaderVersion value ); | |
furrovineapi ShaderVersion ToPlatform( Graphics::ShaderVersion value, Graphics::ShaderCompilationFlags flags ); | |
furrovineapi const String& ShaderVersionToPlatform( Graphics::ShaderVersion ver, Graphics::ShaderCompilationFlags flags ); | |
furrovineapi TextureAddress ToPlatform( Graphics::TextureAddress value ); | |
furrovineapi TextureFilter ToPlatform( Graphics::TextureFilter value ); | |
furrovineapi DepthStencilFormat ToPlatform( Graphics::DepthStencilFormat value ); | |
furrovineapi DisplayFilterFlags ToPlatform( Graphics::DisplayFilterFlags value ); | |
furrovineapi CpuAccessFlags ToPlatform( Graphics::CpuAccessFlags value ); | |
furrovineapi BindFlags ToPlatform( Graphics::BindFlags value ); | |
furrovineapi ResourceOptionFlags ToPlatform( Graphics::ResourceOptionFlags value ); | |
furrovineapi IndexElementFormat ToPlatform( Graphics::IndexElementFormat value ); | |
furrovineapi BlendOperation ToPlatform( Graphics::BlendOperation value ); | |
furrovineapi BlendFactor ToPlatform( Graphics::BlendFactor value ); | |
furrovineapi SurfaceFormat ToPlatform( Graphics::SurfaceFormat value ); | |
furrovineapi VertexElementFormat ToPlatform( Graphics::VertexElementFormat value ); | |
furrovineapi bool IsNormalized( VertexElementFormat format ); | |
template <typename T, typename TValue, typename... Tn> | |
auto FromPlatform( TValue value, Tn&&... argn ) -> decltype( FromPlatform( static_cast<T>( value ), std::forward<Tn>( argn )... ) ) { | |
return FromPlatform( static_cast<T>( value ), std::forward<Tn>( argn )... ); | |
} | |
template <typename T, typename TValue, typename... Tn> | |
auto ToPlatform( TValue value, Tn&&... argn ) -> decltype( static_cast<T>( ToPlatform( value, std::forward<Tn>( argn )... ) ) ) { | |
return static_cast<T>( ToPlatform( value, std::forward<Tn>( argn )... ) ); | |
} | |
#endif // DIRECTX | |
}}} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment