Sleeping Wombat Graphic API  1.010
swGraphicAPI
GraphicAPIConstants.h
Go to the documentation of this file.
1 #pragma once
2 
8 #include "swCommonLib/Common/TypesDefinitions.h"
9 
14 enum class BlendOperation : uint8
15 {
16  Add = 0,
17  Subtract = 1,
18  ReverseSubtract = 2,
19  Min = 3,
20  Max = 4
21 };
22 
23 
28 enum class BlendFactor : uint8
29 {
30  Zero = 0,
31  One = 1,
32  SrcColor,
33  DstColor,
34  SrcAlpha,
35  DstAlpha,
36  BlendFactor,
42 };
43 
44 
45 
50 enum class CullMode : uint8
51 {
52  Front = 0,
53  Back = 1,
54  None = 2
55 };
56 
61 enum class FillMode : uint8
62 {
63  Solid = 0,
64  Wireframe = 1
65 };
66 
67 
72 enum class ResourceUsage : uint8
73 {
78 };
79 
84 enum class PrimitiveTopology : uint8
85 {
86  PRIMITIVE_TOPOLOGY_POINTLIST = 0,
87  PRIMITIVE_TOPOLOGY_LINELIST = 1,
88  PRIMITIVE_TOPOLOGY_LINESTRIP = 2,
89  PRIMITIVE_TOPOLOGY_TRIANGLELIST = 3,
90  PRIMITIVE_TOPOLOGY_TRIANGLESTRIP = 4,
91  PRIMITIVE_TOPOLOGY_LINELIST_ADJ = 5,
92  PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ = 6,
93  PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ = 7,
94  PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ = 8
95 };
96 
103 enum ResourceBinding : uint8
104 {
105  BIND_RESOURCE_VERTEX_BUFFER = 0x0L,
106  BIND_RESOURCE_INDEX_BUFFER = 0x1L,
107  BIND_RESOURCE_CONSTANT_BUFFER = 0x2L,
108  BIND_RESOURCE_SHADER_RESOURCE = 0x3L,
109  BIND_RESOURCE_STREAM_OUTPUT = 0x4L,
110  BIND_RESOURCE_RENDER_TARGET = 0x5L,
111  BIND_RESOURCE_DEPTH_STENCIL = 0x6L,
112  BIND_RESOURCE_UNORDERED_ACCESS = 0x7L,
113  BIND_RESOURCE_DECODER = 0x8L,
114  BIND_RESOURCE_VIDEO_ENCODER = 0x9L
115 
116 };
117 
118 
123 enum class TextureType : uint8
124 {
125  TEXTURE_TYPE_UNKNOW = 0,
126  TEXTURE_TYPE_BUFFER = 1,
127  TEXTURE_TYPE_TEXTURE1D = 2,
128  TEXTURE_TYPE_TEXTURE1D_ARRAY = 3,
129  TEXTURE_TYPE_TEXTURE2D = 4,
130  TEXTURE_TYPE_TEXTURE2D_ARRAY = 5,
131  TEXTURE_TYPE_TEXTURE2D_MULTISAMPLE = 6,
132  TEXTURE_TYPE_TEXTURE2D_MULTISAMPLE_ARRAY = 7,
133  TEXTURE_TYPE_TEXTURE3D = 8
134 };
135 
136 
141 enum class DepthStencilFormat : uint8
142 {
143  DEPTH_STENCIL_FORMAT_D32_FLOAT_S8X24_UINT = 0,
144  DEPTH_STENCIL_FORMAT_D32_FLOAT = 1,
145  DEPTH_STENCIL_FORMAT_D24_UNORM_S8_UINT = 2,
146  DEPTH_STENCIL_FORMAT_D16_UNORM = 3
147 };
148 
153 enum class ResourceFormat : uint8
154 {
155  RESOURCE_FORMAT_UNKNOWN = 0,
156  RESOURCE_FORMAT_R32G32B32A32_TYPELESS = 1,
157  RESOURCE_FORMAT_R32G32B32A32_FLOAT = 2,
158  RESOURCE_FORMAT_R32G32B32A32_UINT = 3,
159  RESOURCE_FORMAT_R32G32B32A32_SINT = 4,
160  RESOURCE_FORMAT_R32G32B32_TYPELESS = 5,
161  RESOURCE_FORMAT_R32G32B32_FLOAT = 6,
162  RESOURCE_FORMAT_R32G32B32_UINT = 7,
163  RESOURCE_FORMAT_R32G32B32_SINT = 8,
164  RESOURCE_FORMAT_R16G16B16A16_TYPELESS = 9,
165  RESOURCE_FORMAT_R16G16B16A16_FLOAT = 10,
166  RESOURCE_FORMAT_R16G16B16A16_UNORM = 11,
167  RESOURCE_FORMAT_R16G16B16A16_UINT = 12,
168  RESOURCE_FORMAT_R16G16B16A16_SNORM = 13,
169  RESOURCE_FORMAT_R16G16B16A16_SINT = 14,
170  RESOURCE_FORMAT_R32G32_TYPELESS = 15,
171  RESOURCE_FORMAT_R32G32_FLOAT = 16,
172  RESOURCE_FORMAT_R32G32_UINT = 17,
173  RESOURCE_FORMAT_R32G32_SINT = 18,
174  RESOURCE_FORMAT_R32G8X24_TYPELESS = 19,
175  RESOURCE_FORMAT_D32_FLOAT_S8X24_UINT = 20,
176  RESOURCE_FORMAT_R32_FLOAT_X8X24_TYPELESS = 21,
177  RESOURCE_FORMAT_X32_TYPELESS_G8X24_UINT = 22,
178  RESOURCE_FORMAT_R10G10B10A2_TYPELESS = 23,
179  RESOURCE_FORMAT_R10G10B10A2_UNORM = 24,
180  RESOURCE_FORMAT_R10G10B10A2_UINT = 25,
181  RESOURCE_FORMAT_R11G11B10_FLOAT = 26,
182  RESOURCE_FORMAT_R8G8B8A8_TYPELESS = 27,
183  RESOURCE_FORMAT_R8G8B8A8_UNORM = 28,
184  RESOURCE_FORMAT_R8G8B8A8_UNORM_SRGB = 29,
185  RESOURCE_FORMAT_R8G8B8A8_UINT = 30,
186  RESOURCE_FORMAT_R8G8B8A8_SNORM = 31,
187  RESOURCE_FORMAT_R8G8B8A8_SINT = 32,
188  RESOURCE_FORMAT_R16G16_TYPELESS = 33,
189  RESOURCE_FORMAT_R16G16_FLOAT = 34,
190  RESOURCE_FORMAT_R16G16_UNORM = 35,
191  RESOURCE_FORMAT_R16G16_UINT = 36,
192  RESOURCE_FORMAT_R16G16_SNORM = 37,
193  RESOURCE_FORMAT_R16G16_SINT = 38,
194  RESOURCE_FORMAT_R32_TYPELESS = 39,
195  RESOURCE_FORMAT_D32_FLOAT = 40,
196  RESOURCE_FORMAT_R32_FLOAT = 41,
197  RESOURCE_FORMAT_R32_UINT = 42,
198  RESOURCE_FORMAT_R32_SINT = 43,
199  RESOURCE_FORMAT_R24G8_TYPELESS = 44,
200  RESOURCE_FORMAT_D24_UNORM_S8_UINT = 45,
201  RESOURCE_FORMAT_R24_UNORM_X8_TYPELESS = 46,
202  RESOURCE_FORMAT_X24_TYPELESS_G8_UINT = 47,
203  RESOURCE_FORMAT_R8G8_TYPELESS = 48,
204  RESOURCE_FORMAT_R8G8_UNORM = 49,
205  RESOURCE_FORMAT_R8G8_UINT = 50,
206  RESOURCE_FORMAT_R8G8_SNORM = 51,
207  RESOURCE_FORMAT_R8G8_SINT = 52,
208  RESOURCE_FORMAT_R16_TYPELESS = 53,
209  RESOURCE_FORMAT_R16_FLOAT = 54,
210  RESOURCE_FORMAT_D16_UNORM = 55,
211  RESOURCE_FORMAT_R16_UNORM = 56,
212  RESOURCE_FORMAT_R16_UINT = 57,
213  RESOURCE_FORMAT_R16_SNORM = 58,
214  RESOURCE_FORMAT_R16_SINT = 59,
215  RESOURCE_FORMAT_R8_TYPELESS = 60,
216  RESOURCE_FORMAT_R8_UNORM = 61,
217  RESOURCE_FORMAT_R8_UINT = 62,
218  RESOURCE_FORMAT_R8_SNORM = 63,
219  RESOURCE_FORMAT_R8_SINT = 64,
220  RESOURCE_FORMAT_A8_UNORM = 65,
221  RESOURCE_FORMAT_R1_UNORM = 66,
222  RESOURCE_FORMAT_R9G9B9E5_SHAREDEXP = 67,
223  RESOURCE_FORMAT_R8G8_B8G8_UNORM = 68,
224  RESOURCE_FORMAT_G8R8_G8B8_UNORM = 69,
225  RESOURCE_FORMAT_BC1_TYPELESS = 70,
226  RESOURCE_FORMAT_BC1_UNORM = 71,
227  RESOURCE_FORMAT_BC1_UNORM_SRGB = 72,
228  RESOURCE_FORMAT_BC2_TYPELESS = 73,
229  RESOURCE_FORMAT_BC2_UNORM = 74,
230  RESOURCE_FORMAT_BC2_UNORM_SRGB = 75,
231  RESOURCE_FORMAT_BC3_TYPELESS = 76,
232  RESOURCE_FORMAT_BC3_UNORM = 77,
233  RESOURCE_FORMAT_BC3_UNORM_SRGB = 78,
234  RESOURCE_FORMAT_BC4_TYPELESS = 79,
235  RESOURCE_FORMAT_BC4_UNORM = 80,
236  RESOURCE_FORMAT_BC4_SNORM = 81,
237  RESOURCE_FORMAT_BC5_TYPELESS = 82,
238  RESOURCE_FORMAT_BC5_UNORM = 83,
239  RESOURCE_FORMAT_BC5_SNORM = 84,
240  RESOURCE_FORMAT_B5G6R5_UNORM = 85,
241  RESOURCE_FORMAT_B5G5R5A1_UNORM = 86,
242  RESOURCE_FORMAT_B8G8R8A8_UNORM = 87,
243  RESOURCE_FORMAT_B8G8R8X8_UNORM = 88,
244  RESOURCE_FORMAT_R10G10B10_XR_BIAS_A2_UNORM = 89,
245  RESOURCE_FORMAT_B8G8R8A8_TYPELESS = 90,
246  RESOURCE_FORMAT_B8G8R8A8_UNORM_SRGB = 91,
247  RESOURCE_FORMAT_B8G8R8X8_TYPELESS = 92,
248  RESOURCE_FORMAT_B8G8R8X8_UNORM_SRGB = 93,
249  RESOURCE_FORMAT_BC6H_TYPELESS = 94,
250  RESOURCE_FORMAT_BC6H_UF16 = 95,
251  RESOURCE_FORMAT_BC6H_SF16 = 96,
252  RESOURCE_FORMAT_BC7_TYPELESS = 97,
253  RESOURCE_FORMAT_BC7_UNORM = 98,
254  RESOURCE_FORMAT_BC7_UNORM_SRGB = 99,
255  RESOURCE_FORMAT_AYUV = 100,
256  RESOURCE_FORMAT_Y410 = 101,
257  RESOURCE_FORMAT_Y416 = 102,
258  RESOURCE_FORMAT_NV12 = 103,
259  RESOURCE_FORMAT_P010 = 104,
260  RESOURCE_FORMAT_P016 = 105,
261  RESOURCE_FORMAT_420_OPAQUE = 106,
262  RESOURCE_FORMAT_YUY2 = 107,
263  RESOURCE_FORMAT_Y210 = 108,
264  RESOURCE_FORMAT_Y216 = 109,
265  RESOURCE_FORMAT_NV11 = 110,
266  RESOURCE_FORMAT_AI44 = 111,
267  RESOURCE_FORMAT_IA44 = 112,
268  RESOURCE_FORMAT_P8 = 113,
269  RESOURCE_FORMAT_A8P8 = 114,
270  RESOURCE_FORMAT_B4G4R4A4_UNORM = 115,
271  RESOURCE_FORMAT_P208 = 130,
272  RESOURCE_FORMAT_V208 = 131,
273  RESOURCE_FORMAT_V408 = 132,
274 };
275 
276 
277 extern uint32 BitsPerPixel ( ResourceFormat fmt );
278 extern uint32 BytesPerPixel ( ResourceFormat fmt );
Custom blend factor.
One minus DstAlpha.
DepthStencilFormat
Typy dostępne dla bufora głębokości.
Definition: GraphicAPIConstants.h:141
ResourceFormat
Specyfikuje format tekstury bądź innego zasobu.
Definition: GraphicAPIConstants.h:153
One minus SrcColor.
TextureType
Definiuje typ tekstury.
Definition: GraphicAPIConstants.h:123
One minus SrcAlpha.
Pozawala GPU na zapis i odczyt.
Zasób raz stworzony i nigdy nie jest zmieniany.
uint32 BitsPerPixel(ResourceFormat fmt)
Liczba bitów na piksel danego formatu. Funkcja wymaga zaimplementrowania przez API graficzne...
Definition: DX11ConstantsMapper.cpp:14
One minus DstColor.
Pozwala GPU na odczyt, a CPU na zapis. Dobre do często updatowanych zasobów.
CullMode
Polygon culling mode.
Definition: GraphicAPIConstants.h:50
ResourceUsage
Specyfikuje typ dostępu do pamięci danego zasobu.
Definition: GraphicAPIConstants.h:72
BlendFactor
Blend factor for blending equation.
Definition: GraphicAPIConstants.h:28
GPU może jedynie kopiować, poza tym wszystkie prawa dostępu są po stronie CPU. Zobacz D3D11_USAGE_STA...
FillMode
Polygon fill mode.
Definition: GraphicAPIConstants.h:61
uint32 BytesPerPixel(ResourceFormat fmt)
Liczba bajtów na piksel danego formatu. Funkcja wymaga zaimplementrowania przez API graficzne...
Definition: DX11ConstantsMapper.cpp:20
One minus custom blend factor.
ResourceBinding
Określa jak będzie używany dany zasób w potoku karty graficznej.
Definition: GraphicAPIConstants.h:103
BlendOperation
Blending operation.
Definition: GraphicAPIConstants.h:14
PrimitiveTopology
Topologia wierzchołków.
Definition: GraphicAPIConstants.h:84