1 /***********************************************************************\ 2 * d3d10.d * 3 * * 4 * Windows API header module * 5 * * 6 * Placed into public domain * 7 \***********************************************************************/ 8 module win32.directx.d3d10; 9 10 private import win32.windows; 11 12 public import win32.directx.dxgitype; 13 public import win32.directx.dxgi; 14 public import win32.directx.d3d10misc; 15 16 pragma(lib, "d3d10.lib"); 17 18 const D3D10_16BIT_INDEX_STRIP_CUT_VALUE = 0xffff; 19 const D3D10_32BIT_INDEX_STRIP_CUT_VALUE = 0xffffffff; 20 const D3D10_8BIT_INDEX_STRIP_CUT_VALUE = 0xff; 21 const D3D10_ARRAY_AXIS_ADDRESS_RANGE_BIT_COUNT = 9; 22 const D3D10_CLIP_OR_CULL_DISTANCE_COUNT = 8; 23 const D3D10_CLIP_OR_CULL_DISTANCE_ELEMENT_COUNT = 2; 24 const D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT = 14; 25 const D3D10_COMMONSHADER_CONSTANT_BUFFER_COMPONENTS = 4; 26 const D3D10_COMMONSHADER_CONSTANT_BUFFER_COMPONENT_BIT_COUNT = 32; 27 const D3D10_COMMONSHADER_CONSTANT_BUFFER_HW_SLOT_COUNT = 15; 28 const D3D10_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COMPONENTS = 4; 29 const D3D10_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COUNT = 15; 30 const D3D10_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READS_PER_INST = 1; 31 const D3D10_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READ_PORTS = 1; 32 const D3D10_COMMONSHADER_FLOWCONTROL_NESTING_LIMIT = 64; 33 const D3D10_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COMPONENTS = 4; 34 const D3D10_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COUNT = 1; 35 const D3D10_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READS_PER_INST = 1; 36 const D3D10_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READ_PORTS = 1; 37 const D3D10_COMMONSHADER_IMMEDIATE_VALUE_COMPONENT_BIT_COUNT = 32; 38 const D3D10_COMMONSHADER_INPUT_RESOURCE_REGISTER_COMPONENTS = 1; 39 const D3D10_COMMONSHADER_INPUT_RESOURCE_REGISTER_COUNT = 128; 40 const D3D10_COMMONSHADER_INPUT_RESOURCE_REGISTER_READS_PER_INST = 1; 41 const D3D10_COMMONSHADER_INPUT_RESOURCE_REGISTER_READ_PORTS = 1; 42 const D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT = 128; 43 const D3D10_COMMONSHADER_SAMPLER_REGISTER_COMPONENTS = 1; 44 const D3D10_COMMONSHADER_SAMPLER_REGISTER_COUNT = 16; 45 const D3D10_COMMONSHADER_SAMPLER_REGISTER_READS_PER_INST = 1; 46 const D3D10_COMMONSHADER_SAMPLER_REGISTER_READ_PORTS = 1; 47 const D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT = 16; 48 const D3D10_COMMONSHADER_SUBROUTINE_NESTING_LIMIT = 32; 49 const D3D10_COMMONSHADER_TEMP_REGISTER_COMPONENTS = 4; 50 const D3D10_COMMONSHADER_TEMP_REGISTER_COMPONENT_BIT_COUNT = 32; 51 const D3D10_COMMONSHADER_TEMP_REGISTER_COUNT = 4096; 52 const D3D10_COMMONSHADER_TEMP_REGISTER_READS_PER_INST = 3; 53 const D3D10_COMMONSHADER_TEMP_REGISTER_READ_PORTS = 3; 54 const D3D10_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MAX = 10; 55 const D3D10_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MIN = -10; 56 const D3D10_COMMONSHADER_TEXEL_OFFSET_MAX_NEGATIVE = -8; 57 const D3D10_COMMONSHADER_TEXEL_OFFSET_MAX_POSITIVE = 7; 58 const D3D10_DEFAULT_BLEND_FACTOR_ALPHA = 1.0f; 59 const D3D10_DEFAULT_BLEND_FACTOR_BLUE = 1.0f; 60 const D3D10_DEFAULT_BLEND_FACTOR_GREEN = 1.0f; 61 const D3D10_DEFAULT_BLEND_FACTOR_RED = 1.0f; 62 const D3D10_DEFAULT_BORDER_COLOR_COMPONENT = 0.0f; 63 const D3D10_DEFAULT_DEPTH_BIAS = 0; 64 const D3D10_DEFAULT_DEPTH_BIAS_CLAMP = 0.0f; 65 const D3D10_DEFAULT_MAX_ANISOTROPY = 16.0f; 66 const D3D10_DEFAULT_MIP_LOD_BIAS = 0.0f; 67 const D3D10_DEFAULT_RENDER_TARGET_ARRAY_INDEX = 0; 68 const D3D10_DEFAULT_SAMPLE_MASK = 0xffffffff; 69 const D3D10_DEFAULT_SCISSOR_ENDX = 0; 70 const D3D10_DEFAULT_SCISSOR_ENDY = 0; 71 const D3D10_DEFAULT_SCISSOR_STARTX = 0; 72 const D3D10_DEFAULT_SCISSOR_STARTY = 0; 73 const D3D10_DEFAULT_SLOPE_SCALED_DEPTH_BIAS = 0.0f; 74 const D3D10_DEFAULT_STENCIL_READ_MASK = 0xff; 75 const D3D10_DEFAULT_STENCIL_REFERENCE = 0; 76 const D3D10_DEFAULT_STENCIL_WRITE_MASK = 0xff; 77 const D3D10_DEFAULT_VIEWPORT_AND_SCISSORRECT_INDEX = 0; 78 const D3D10_DEFAULT_VIEWPORT_HEIGHT = 0; 79 const D3D10_DEFAULT_VIEWPORT_MAX_DEPTH = 0.0f; 80 const D3D10_DEFAULT_VIEWPORT_MIN_DEPTH = 0.0f; 81 const D3D10_DEFAULT_VIEWPORT_TOPLEFTX = 0; 82 const D3D10_DEFAULT_VIEWPORT_TOPLEFTY = 0; 83 const D3D10_DEFAULT_VIEWPORT_WIDTH = 0; 84 const D3D10_FLOAT16_FUSED_TOLERANCE_IN_ULP = 0.6; 85 const D3D10_FLOAT32_MAX = 3.402823466e+38f; 86 const D3D10_FLOAT32_TO_INTEGER_TOLERANCE_IN_ULP = 0.6f; 87 const D3D10_FLOAT_TO_SRGB_EXPONENT_DENOMINATOR = 2.4f; 88 const D3D10_FLOAT_TO_SRGB_EXPONENT_NUMERATOR = 1.0f; 89 const D3D10_FLOAT_TO_SRGB_OFFSET = 0.055f; 90 const D3D10_FLOAT_TO_SRGB_SCALE_1 = 12.92f; 91 const D3D10_FLOAT_TO_SRGB_SCALE_2 = 1.055f; 92 const D3D10_FLOAT_TO_SRGB_THRESHOLD = 0.0031308f; 93 const D3D10_FTOI_INSTRUCTION_MAX_INPUT = 2147483647.999f; 94 const D3D10_FTOI_INSTRUCTION_MIN_INPUT = -2147483648.999f; 95 const D3D10_FTOU_INSTRUCTION_MAX_INPUT = 4294967295.999f; 96 const D3D10_FTOU_INSTRUCTION_MIN_INPUT = 0.0f; 97 const D3D10_GS_INPUT_PRIM_CONST_REGISTER_COMPONENTS = 1; 98 const D3D10_GS_INPUT_PRIM_CONST_REGISTER_COMPONENT_BIT_COUNT = 32; 99 const D3D10_GS_INPUT_PRIM_CONST_REGISTER_COUNT = 1; 100 const D3D10_GS_INPUT_PRIM_CONST_REGISTER_READS_PER_INST = 2; 101 const D3D10_GS_INPUT_PRIM_CONST_REGISTER_READ_PORTS = 1; 102 const D3D10_GS_INPUT_REGISTER_COMPONENTS = 4; 103 const D3D10_GS_INPUT_REGISTER_COMPONENT_BIT_COUNT = 32; 104 const D3D10_GS_INPUT_REGISTER_COUNT = 16; 105 const D3D10_GS_INPUT_REGISTER_READS_PER_INST = 2; 106 const D3D10_GS_INPUT_REGISTER_READ_PORTS = 1; 107 const D3D10_GS_INPUT_REGISTER_VERTICES = 6; 108 const D3D10_GS_OUTPUT_ELEMENTS = 32; 109 const D3D10_GS_OUTPUT_REGISTER_COMPONENTS = 4; 110 const D3D10_GS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT = 32; 111 const D3D10_GS_OUTPUT_REGISTER_COUNT = 32; 112 const D3D10_IA_DEFAULT_INDEX_BUFFER_OFFSET_IN_BYTES = 0; 113 const D3D10_IA_DEFAULT_PRIMITIVE_TOPOLOGY = 0; 114 const D3D10_IA_DEFAULT_VERTEX_BUFFER_OFFSET_IN_BYTES = 0; 115 const D3D10_IA_INDEX_INPUT_RESOURCE_SLOT_COUNT = 1; 116 const D3D10_IA_INSTANCE_ID_BIT_COUNT = 32; 117 const D3D10_IA_INTEGER_ARITHMETIC_BIT_COUNT = 32; 118 const D3D10_IA_PRIMITIVE_ID_BIT_COUNT = 32; 119 const D3D10_IA_VERTEX_ID_BIT_COUNT = 32; 120 const D3D10_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT = 16; 121 const D3D10_IA_VERTEX_INPUT_STRUCTURE_ELEMENTS_COMPONENTS = 64; 122 const D3D10_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT = 16; 123 const D3D10_INTEGER_DIVIDE_BY_ZERO_QUOTIENT = 0xffffffff; 124 const D3D10_INTEGER_DIVIDE_BY_ZERO_REMAINDER = 0xffffffff; 125 const D3D10_LINEAR_GAMMA = 1.0f; 126 const D3D10_MAX_BORDER_COLOR_COMPONENT = 1.0f; 127 const D3D10_MAX_DEPTH = 1.0f; 128 const D3D10_MAX_MAXANISOTROPY = 16; 129 const D3D10_MAX_MULTISAMPLE_SAMPLE_COUNT = 32; 130 const D3D10_MAX_POSITION_VALUE = 3.402823466e+34f; 131 const D3D10_MAX_TEXTURE_DIMENSION_2_TO_EXP = 17; 132 const D3D10_MIN_BORDER_COLOR_COMPONENT = 0.0f; 133 const D3D10_MIN_DEPTH = 0.0f; 134 const D3D10_MIN_MAXANISOTROPY = 0; 135 const D3D10_MIP_LOD_BIAS_MAX = 15.99f; 136 const D3D10_MIP_LOD_BIAS_MIN = -16.0f; 137 const D3D10_MIP_LOD_FRACTIONAL_BIT_COUNT = 6; 138 const D3D10_MIP_LOD_RANGE_BIT_COUNT = 8; 139 const D3D10_MULTISAMPLE_ANTIALIAS_LINE_WIDTH = 1.4f; 140 const D3D10_NONSAMPLE_FETCH_OUT_OF_RANGE_ACCESS_RESULT = 0; 141 const D3D10_PIXEL_ADDRESS_RANGE_BIT_COUNT = 13; 142 const D3D10_PRE_SCISSOR_PIXEL_ADDRESS_RANGE_BIT_COUNT = 15; 143 const D3D10_PS_FRONTFACING_DEFAULT_VALUE = 0xffffffff; 144 const D3D10_PS_FRONTFACING_FALSE_VALUE = 0; 145 const D3D10_PS_FRONTFACING_TRUE_VALUE = 0xffffffff; 146 const D3D10_PS_INPUT_REGISTER_COMPONENTS = 4; 147 const D3D10_PS_INPUT_REGISTER_COMPONENT_BIT_COUNT = 32; 148 const D3D10_PS_INPUT_REGISTER_COUNT = 32; 149 const D3D10_PS_INPUT_REGISTER_READS_PER_INST = 2; 150 const D3D10_PS_INPUT_REGISTER_READ_PORTS = 1; 151 const D3D10_PS_LEGACY_PIXEL_CENTER_FRACTIONAL_COMPONENT = 0.0f; 152 const D3D10_PS_OUTPUT_DEPTH_REGISTER_COMPONENTS = 1; 153 const D3D10_PS_OUTPUT_DEPTH_REGISTER_COMPONENT_BIT_COUNT = 32; 154 const D3D10_PS_OUTPUT_DEPTH_REGISTER_COUNT = 1; 155 const D3D10_PS_OUTPUT_REGISTER_COMPONENTS = 4; 156 const D3D10_PS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT = 32; 157 const D3D10_PS_OUTPUT_REGISTER_COUNT = 8; 158 const D3D10_PS_PIXEL_CENTER_FRACTIONAL_COMPONENT = 0.5f; 159 const D3D10_REQ_BLEND_OBJECT_COUNT_PER_CONTEXT = 4096; 160 const D3D10_REQ_BUFFER_RESOURCE_TEXEL_COUNT_2_TO_EXP = 27; 161 const D3D10_REQ_CONSTANT_BUFFER_ELEMENT_COUNT = 4096; 162 const D3D10_REQ_DEPTH_STENCIL_OBJECT_COUNT_PER_CONTEXT = 4096; 163 const D3D10_REQ_DRAWINDEXED_INDEX_COUNT_2_TO_EXP = 32; 164 const D3D10_REQ_DRAW_VERTEX_COUNT_2_TO_EXP = 32; 165 const D3D10_REQ_FILTERING_HW_ADDRESSABLE_RESOURCE_DIMENSION = 8192; 166 const D3D10_REQ_GS_INVOCATION_32BIT_OUTPUT_COMPONENT_LIMIT = 1024; 167 const D3D10_REQ_IMMEDIATE_CONSTANT_BUFFER_ELEMENT_COUNT = 4096; 168 const D3D10_REQ_MAXANISOTROPY = 16; 169 const D3D10_REQ_MIP_LEVELS = 14; 170 const D3D10_REQ_MULTI_ELEMENT_STRUCTURE_SIZE_IN_BYTES = 2048; 171 const D3D10_REQ_RASTERIZER_OBJECT_COUNT_PER_CONTEXT = 4096; 172 const D3D10_REQ_RENDER_TO_BUFFER_WINDOW_WIDTH = 8192; 173 const D3D10_REQ_RESOURCE_SIZE_IN_MEGABYTES = 128; 174 const D3D10_REQ_RESOURCE_VIEW_COUNT_PER_CONTEXT_2_TO_EXP = 20; 175 const D3D10_REQ_SAMPLER_OBJECT_COUNT_PER_CONTEXT = 4096; 176 const D3D10_REQ_TEXTURE1D_ARRAY_AXIS_DIMENSION = 512; 177 const D3D10_REQ_TEXTURE1D_U_DIMENSION = 8192; 178 const D3D10_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION = 512; 179 const D3D10_REQ_TEXTURE2D_U_OR_V_DIMENSION = 8192; 180 const D3D10_REQ_TEXTURE3D_U_V_OR_W_DIMENSION = 2048; 181 const D3D10_REQ_TEXTURECUBE_DIMENSION = 8192; 182 const D3D10_RESINFO_INSTRUCTION_MISSING_COMPONENT_RETVAL = 0; 183 const D3D10_SHADER_MAJOR_VERSION = 4; 184 const D3D10_SHADER_MINOR_VERSION = 0; 185 const D3D10_SHIFT_INSTRUCTION_PAD_VALUE = 0; 186 const D3D10_SHIFT_INSTRUCTION_SHIFT_VALUE_BIT_COUNT = 5; 187 const D3D10_SIMULTANEOUS_RENDER_TARGET_COUNT = 8; 188 const D3D10_SO_BUFFER_MAX_STRIDE_IN_BYTES = 2048; 189 const D3D10_SO_BUFFER_MAX_WRITE_WINDOW_IN_BYTES = 256; 190 const D3D10_SO_BUFFER_SLOT_COUNT = 4; 191 const D3D10_SO_DDI_REGISTER_INDEX_DENOTING_GAP = 0xffffffff; 192 const D3D10_SO_MULTIPLE_BUFFER_ELEMENTS_PER_BUFFER = 1; 193 const D3D10_SO_SINGLE_BUFFER_COMPONENT_LIMIT = 64; 194 const D3D10_SRGB_GAMMA = 2.2f; 195 const D3D10_SRGB_TO_FLOAT_DENOMINATOR_1 = 12.92f; 196 const D3D10_SRGB_TO_FLOAT_DENOMINATOR_2 = 1.055f; 197 const D3D10_SRGB_TO_FLOAT_EXPONENT = 2.4f; 198 const D3D10_SRGB_TO_FLOAT_OFFSET = 0.055f; 199 const D3D10_SRGB_TO_FLOAT_THRESHOLD = 0.04045f; 200 const D3D10_SRGB_TO_FLOAT_TOLERANCE_IN_ULP = 0.5f; 201 const D3D10_STANDARD_COMPONENT_BIT_COUNT = 32; 202 const D3D10_STANDARD_COMPONENT_BIT_COUNT_DOUBLED = 64; 203 const D3D10_STANDARD_MAXIMUM_ELEMENT_ALIGNMENT_BYTE_MULTIPLE = 4; 204 const D3D10_STANDARD_PIXEL_COMPONENT_COUNT = 128; 205 const D3D10_STANDARD_PIXEL_ELEMENT_COUNT = 32; 206 const D3D10_STANDARD_VECTOR_SIZE = 4; 207 const D3D10_STANDARD_VERTEX_ELEMENT_COUNT = 16; 208 const D3D10_STANDARD_VERTEX_TOTAL_COMPONENT_COUNT = 64; 209 const D3D10_SUBPIXEL_FRACTIONAL_BIT_COUNT = 8; 210 const D3D10_SUBTEXEL_FRACTIONAL_BIT_COUNT = 6; 211 const D3D10_TEXEL_ADDRESS_RANGE_BIT_COUNT = 18; 212 const D3D10_UNBOUND_MEMORY_ACCESS_RESULT = 0; 213 const D3D10_VIEWPORT_AND_SCISSORRECT_MAX_INDEX = 15; 214 const D3D10_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE = 16; 215 const D3D10_VIEWPORT_BOUNDS_MAX = 16383; 216 const D3D10_VIEWPORT_BOUNDS_MIN = -16384; 217 const D3D10_VS_INPUT_REGISTER_COMPONENTS = 4; 218 const D3D10_VS_INPUT_REGISTER_COMPONENT_BIT_COUNT = 32; 219 const D3D10_VS_INPUT_REGISTER_COUNT = 16; 220 const D3D10_VS_INPUT_REGISTER_READS_PER_INST = 2; 221 const D3D10_VS_INPUT_REGISTER_READ_PORTS = 1; 222 const D3D10_VS_OUTPUT_REGISTER_COMPONENTS = 4; 223 const D3D10_VS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT = 32; 224 const D3D10_VS_OUTPUT_REGISTER_COUNT = 16; 225 const D3D10_WHQL_CONTEXT_COUNT_FOR_RESOURCE_LIMIT = 10; 226 const D3D10_WHQL_DRAWINDEXED_INDEX_COUNT_2_TO_EXP = 25; 227 const D3D10_WHQL_DRAW_VERTEX_COUNT_2_TO_EXP = 25; 228 const D3D_MAJOR_VERSION = 10; 229 const D3D_MINOR_VERSION = 0; 230 const D3D_SPEC_DATE_DAY = 8; 231 const D3D_SPEC_DATE_MONTH = 8; 232 const D3D_SPEC_DATE_YEAR = 2006; 233 const D3D_SPEC_VERSION = 1.050005; 234 235 const _FACD3D10 = 0x879; 236 const _FACD3D10DEBUG = _FACD3D10 + 1; 237 238 HRESULT MAKE_D3D10_HRESULT(T)(T code) { 239 return MAKE_HRESULT(1, _FACD3D10, code); 240 } 241 242 HRESULT MAKE_D3D10_STATUS(T)(T code) { 243 return MAKE_HRESULT(0, _FACD3D10, code); 244 } 245 246 const D3D10_ERROR_TOO_MANY_UNIQUE_STATE_OBJECTS = MAKE_D3D10_HRESULT(1); 247 const D3D10_ERROR_FILE_NOT_FOUND = MAKE_D3D10_HRESULT(2); 248 249 enum D3D10_INPUT_CLASSIFICATION { 250 D3D10_INPUT_PER_VERTEX_DATA = 0, 251 D3D10_INPUT_PER_INSTANCE_DATA = 1 252 } 253 254 const D3D10_APPEND_ALIGNED_ELEMENT = 0xffffffff; 255 256 struct D3D10_INPUT_ELEMENT_DESC { 257 LPCSTR SemanticName; 258 UINT SemanticIndex; 259 DXGI_FORMAT Format; 260 UINT InputSlot; 261 UINT AlignedByteOffset; 262 D3D10_INPUT_CLASSIFICATION InputSlotClass; 263 UINT InstanceDataStepRate; 264 } 265 266 enum D3D10_FILL_MODE { 267 D3D10_FILL_WIREFRAME = 2, 268 D3D10_FILL_SOLID = 3 269 } 270 271 enum D3D10_PRIMITIVE_TOPOLOGY { 272 D3D10_PRIMITIVE_TOPOLOGY_UNDEFINED = 0, 273 D3D10_PRIMITIVE_TOPOLOGY_POINTLIST = 1, 274 D3D10_PRIMITIVE_TOPOLOGY_LINELIST = 2, 275 D3D10_PRIMITIVE_TOPOLOGY_LINESTRIP = 3, 276 D3D10_PRIMITIVE_TOPOLOGY_TRIANGLELIST = 4, 277 D3D10_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP = 5, 278 D3D10_PRIMITIVE_TOPOLOGY_LINELIST_ADJ = 10, 279 D3D10_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ = 11, 280 D3D10_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ = 12, 281 D3D10_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ = 13 282 } 283 284 enum D3D10_PRIMITIVE { 285 D3D10_PRIMITIVE_UNDEFINED = 0, 286 D3D10_PRIMITIVE_POINT = 1, 287 D3D10_PRIMITIVE_LINE = 2, 288 D3D10_PRIMITIVE_TRIANGLE = 3, 289 D3D10_PRIMITIVE_LINE_ADJ = 6, 290 D3D10_PRIMITIVE_TRIANGLE_ADJ = 7 291 } 292 293 enum D3D10_CULL_MODE { 294 D3D10_CULL_NONE = 1, 295 D3D10_CULL_FRONT, 296 D3D10_CULL_BACK 297 } 298 299 struct D3D10_SO_DECLARATION_ENTRY { 300 LPCSTR SemanticName; 301 UINT SemanticIndex; 302 BYTE StartComponent; 303 BYTE ComponentCount; 304 BYTE OutputSlot; 305 } 306 307 struct D3D10_VIEWPORT { 308 INT TopLeftX; 309 INT TopLeftY; 310 UINT Width; 311 UINT Height; 312 FLOAT MinDepth; 313 FLOAT MaxDepth; 314 } 315 316 enum D3D10_RESOURCE_DIMENSION { 317 D3D10_RESOURCE_DIMENSION_UNKNOWN = 0, 318 D3D10_RESOURCE_DIMENSION_BUFFER, 319 D3D10_RESOURCE_DIMENSION_TEXTURE1D, 320 D3D10_RESOURCE_DIMENSION_TEXTURE2D, 321 D3D10_RESOURCE_DIMENSION_TEXTURE3D 322 } 323 324 enum D3D10_SRV_DIMENSION { 325 D3D10_SRV_DIMENSION_UNKNOWN = 0, 326 D3D10_SRV_DIMENSION_BUFFER, 327 D3D10_SRV_DIMENSION_TEXTURE1D, 328 D3D10_SRV_DIMENSION_TEXTURE1DARRAY, 329 D3D10_SRV_DIMENSION_TEXTURE2D, 330 D3D10_SRV_DIMENSION_TEXTURE2DARRAY, 331 D3D10_SRV_DIMENSION_TEXTURE2DMS, 332 D3D10_SRV_DIMENSION_TEXTURE2DMSARRAY, 333 D3D10_SRV_DIMENSION_TEXTURE3D, 334 D3D10_SRV_DIMENSION_TEXTURECUBE 335 } 336 337 enum D3D10_DSV_DIMENSION { 338 D3D10_DSV_DIMENSION_UNKNOWN = 0, 339 D3D10_DSV_DIMENSION_TEXTURE1D, 340 D3D10_DSV_DIMENSION_TEXTURE1DARRAY, 341 D3D10_DSV_DIMENSION_TEXTURE2D, 342 D3D10_DSV_DIMENSION_TEXTURE2DARRAY, 343 D3D10_DSV_DIMENSION_TEXTURE2DMS, 344 D3D10_DSV_DIMENSION_TEXTURE2DMSARRAY6 345 } 346 347 enum D3D10_RTV_DIMENSION { 348 D3D10_RTV_DIMENSION_UNKNOWN = 0, 349 D3D10_RTV_DIMENSION_BUFFER, 350 D3D10_RTV_DIMENSION_TEXTURE1D, 351 D3D10_RTV_DIMENSION_TEXTURE1DARRAY, 352 D3D10_RTV_DIMENSION_TEXTURE2D, 353 D3D10_RTV_DIMENSION_TEXTURE2DARRAY, 354 D3D10_RTV_DIMENSION_TEXTURE2DMS, 355 D3D10_RTV_DIMENSION_TEXTURE2DMSARRAY, 356 D3D10_RTV_DIMENSION_TEXTURE3D 357 } 358 359 enum D3D10_USAGE { 360 D3D10_USAGE_DEFAULT = 0, 361 D3D10_USAGE_IMMUTABLE, 362 D3D10_USAGE_DYNAMIC, 363 D3D10_USAGE_STAGING 364 } 365 366 enum D3D10_BIND_FLAG { 367 D3D10_BIND_VERTEX_BUFFER = 0x01, 368 D3D10_BIND_INDEX_BUFFER = 0x02, 369 D3D10_BIND_CONSTANT_BUFFER = 0x04, 370 D3D10_BIND_SHADER_RESOURCE = 0x08, 371 D3D10_BIND_STREAM_OUTPUT = 0x10, 372 D3D10_BIND_RENDER_TARGET = 0x20, 373 D3D10_BIND_DEPTH_STENCIL = 0x40 374 } 375 376 enum D3D10_CPU_ACCESS_FLAG { 377 D3D10_CPU_ACCESS_WRITE = 0x10000, 378 D3D10_CPU_ACCESS_READ = 0x20000 379 } 380 381 enum D3D10_RESOURCE_MISC_FLAG { 382 D3D10_RESOURCE_MISC_GENERATE_MIPS = 0x01, 383 D3D10_RESOURCE_MISC_SHARED = 0x02, 384 D3D10_RESOURCE_MISC_TEXTURECUBE = 0x04 385 } 386 387 enum D3D10_MAP { 388 D3D10_MAP_READ = 1, 389 D3D10_MAP_WRITE, 390 D3D10_MAP_READ_WRITE, 391 D3D10_MAP_WRITE_DISCARD, 392 D3D10_MAP_WRITE_NO_OVERWRITE 393 } 394 395 enum D3D10_MAP_FLAG { 396 D3D10_MAP_FLAG_DO_NOT_WAIT = 0x100000 397 } 398 399 enum D3D10_RAISE_FLAG { 400 D3D10_RAISE_FLAG_DRIVER_INTERNAL_ERROR = 0x01 401 } 402 403 enum D3D10_CLEAR_FLAG { 404 D3D10_CLEAR_DEPTH = 0x01, 405 D3D10_CLEAR_STENCIL = 0x02 406 } 407 408 alias RECT D3D10_RECT; 409 410 struct D3D10_BOX { 411 UINT left; 412 UINT top; 413 UINT front; 414 UINT right; 415 UINT bottom; 416 UINT back; 417 } 418 419 extern (Windows) interface ID3D10DeviceChild : IUnknown { 420 //extern(Windows) : 421 void GetDevice(ID3D10Device* ppDevice); 422 HRESULT GetPrivateData(REFGUID guid, UINT *pDataSize, void *pData); 423 HRESULT SetPrivateData(REFGUID guid, UINT DataSize, void *pData); 424 HRESULT SetPrivateDataInterface(REFGUID guid, IUnknown pData); 425 } 426 427 enum D3D10_COMPARISON_FUNC { 428 D3D10_COMPARISON_NEVER = 1, 429 D3D10_COMPARISON_LESS, 430 D3D10_COMPARISON_EQUAL, 431 D3D10_COMPARISON_LESS_EQUAL, 432 D3D10_COMPARISON_GREATER, 433 D3D10_COMPARISON_NOT_EQUAL, 434 D3D10_COMPARISON_GREATER_EQUAL, 435 D3D10_COMPARISON_ALWAYS 436 } 437 438 enum D3D10_DEPTH_WRITE_MASK { 439 D3D10_DEPTH_WRITE_MASK_ZERO = 0, 440 D3D10_DEPTH_WRITE_MASK_ALL 441 } 442 443 enum D3D10_STENCIL_OP { 444 D3D10_STENCIL_OP_KEEP = 1, 445 D3D10_STENCIL_OP_ZERO, 446 D3D10_STENCIL_OP_REPLACE, 447 D3D10_STENCIL_OP_INCR_SAT, 448 D3D10_STENCIL_OP_DECR_SAT, 449 D3D10_STENCIL_OP_INVERT, 450 D3D10_STENCIL_OP_INCR, 451 D3D10_STENCIL_OP_DECR 452 } 453 454 struct D3D10_DEPTH_STENCILOP_DESC { 455 D3D10_STENCIL_OP StencilFailOp; 456 D3D10_STENCIL_OP StencilDepthFailOp; 457 D3D10_STENCIL_OP StencilPassOp; 458 D3D10_COMPARISON_FUNC StencilFunc; 459 } 460 461 struct D3D10_DEPTH_STENCIL_DESC { 462 BOOL DepthEnable; 463 D3D10_DEPTH_WRITE_MASK DepthWriteMask; 464 D3D10_COMPARISON_FUNC DepthFunc; 465 BOOL StencilEnable; 466 UINT8 StencilReadMask; 467 UINT8 StencilWriteMask; 468 D3D10_DEPTH_STENCILOP_DESC FrontFace; 469 D3D10_DEPTH_STENCILOP_DESC BackFace; 470 } 471 472 interface ID3D10DepthStencilState : ID3D10DeviceChild { 473 extern(Windows) : 474 void GetDesc(D3D10_DEPTH_STENCIL_DESC *pDesc); 475 } 476 477 enum D3D10_BLEND { 478 D3D10_BLEND_ZERO = 1, 479 D3D10_BLEND_ONE = 2, 480 D3D10_BLEND_SRC_COLOR = 3, 481 D3D10_BLEND_INV_SRC_COLOR = 4, 482 D3D10_BLEND_SRC_ALPHA = 5, 483 D3D10_BLEND_INV_SRC_ALPHA = 6, 484 D3D10_BLEND_DEST_ALPHA = 7, 485 D3D10_BLEND_INV_DEST_ALPHA = 8, 486 D3D10_BLEND_DEST_COLOR = 9, 487 D3D10_BLEND_INV_DEST_COLOR = 10, 488 D3D10_BLEND_SRC_ALPHA_SAT = 11, 489 D3D10_BLEND_BLEND_FACTOR = 14, 490 D3D10_BLEND_INV_BLEND_FACTOR = 15, 491 D3D10_BLEND_SRC1_COLOR = 16, 492 D3D10_BLEND_INV_SRC1_COLOR = 17, 493 D3D10_BLEND_SRC1_ALPHA = 18, 494 D3D10_BLEND_INV_SRC1_ALPHA = 19 495 } 496 497 enum D3D10_BLEND_OP { 498 D3D10_BLEND_OP_ADD = 1, 499 D3D10_BLEND_OP_SUBTRACT, 500 D3D10_BLEND_OP_REV_SUBTRACT, 501 D3D10_BLEND_OP_MIN, 502 D3D10_BLEND_OP_MAX 503 } 504 505 enum D3D10_COLOR_WRITE_ENABLE { 506 D3D10_COLOR_WRITE_ENABLE_RED = 1, 507 D3D10_COLOR_WRITE_ENABLE_GREEN = 2, 508 D3D10_COLOR_WRITE_ENABLE_BLUE = 4, 509 D3D10_COLOR_WRITE_ENABLE_ALPHA = 8, 510 D3D10_COLOR_WRITE_ENABLE_ALL = (((D3D10_COLOR_WRITE_ENABLE_RED | D3D10_COLOR_WRITE_ENABLE_GREEN) | D3D10_COLOR_WRITE_ENABLE_BLUE) | D3D10_COLOR_WRITE_ENABLE_ALPHA) 511 } 512 513 struct D3D10_BLEND_DESC { 514 BOOL AlphaToCoverageEnable; 515 BOOL[8] BlendEnable; 516 D3D10_BLEND SrcBlend; 517 D3D10_BLEND DestBlend; 518 D3D10_BLEND_OP BlendOp; 519 D3D10_BLEND SrcBlendAlpha; 520 D3D10_BLEND DestBlendAlpha; 521 D3D10_BLEND_OP BlendOpAlpha; 522 UINT8[8] RenderTargetWriteMask; 523 } 524 525 interface ID3D10BlendState : ID3D10DeviceChild { 526 extern(Windows) : 527 void GetDesc(D3D10_BLEND_DESC *pDesc); 528 } 529 530 struct D3D10_RASTERIZER_DESC { 531 D3D10_FILL_MODE FillMode; 532 D3D10_CULL_MODE CullMode; 533 BOOL FrontCounterClockwise; 534 INT DepthBias; 535 FLOAT DepthBiasClamp; 536 FLOAT SlopeScaledDepthBias; 537 BOOL DepthClipEnable; 538 BOOL ScissorEnable; 539 BOOL MultisampleEnable; 540 BOOL AntialiasedLineEnable; 541 } 542 543 interface ID3D10RasterizerState : ID3D10DeviceChild { 544 extern(Windows) : 545 void GetDesc(D3D10_RASTERIZER_DESC *pDesc); 546 } 547 548 UINT D3D10CalcSubresource(UINT MipSlice, UINT ArraySlice, UINT MipLevels) { 549 return MipSlice + ArraySlice * MipLevels; 550 } 551 552 struct D3D10_SUBRESOURCE_DATA { 553 void *pSysMem; 554 UINT SysMemPitch; 555 UINT SysMemSlicePitch; 556 } 557 558 interface ID3D10Resource : ID3D10DeviceChild { 559 extern(Windows) : 560 void GetType(D3D10_RESOURCE_DIMENSION *rType); 561 void SetEvictionPriority(UINT EvictionPriority); 562 UINT GetEvictionPriority(); 563 } 564 565 struct D3D10_BUFFER_DESC { 566 UINT ByteWidth; 567 D3D10_USAGE Usage; 568 UINT BindFlags; 569 UINT CPUAccessFlags; 570 UINT MiscFlags; 571 } 572 573 interface ID3D10Buffer : ID3D10Resource { 574 extern(Windows) : 575 HRESULT Map(D3D10_MAP MapType, UINT MapFlags, void **ppData); 576 void Unmap(); 577 void GetDesc(D3D10_BUFFER_DESC *pDesc); 578 } 579 580 struct D3D10_TEXTURE1D_DESC { 581 UINT Width; 582 UINT MipLevels; 583 UINT ArraySize; 584 DXGI_FORMAT Format; 585 D3D10_USAGE Usage; 586 UINT BindFlags; 587 UINT CPUAccessFlags; 588 UINT MiscFlags; 589 } 590 591 interface ID3D10Texture1D : ID3D10Resource { 592 extern(Windows) : 593 HRESULT Map(UINT Subresource, D3D10_MAP MapType, UINT MapFlags, void **ppData); 594 void Unmap(UINT Subresource); 595 void GetDesc(D3D10_TEXTURE1D_DESC *pDesc); 596 } 597 598 struct D3D10_TEXTURE2D_DESC { 599 UINT Width; 600 UINT Height; 601 UINT MipLevels; 602 UINT ArraySize; 603 DXGI_FORMAT Format; 604 DXGI_SAMPLE_DESC SampleDesc; 605 D3D10_USAGE Usage; 606 UINT BindFlags; 607 UINT CPUAccessFlags; 608 UINT MiscFlags; 609 } 610 611 struct D3D10_MAPPED_TEXTURE2D { 612 void *pData; 613 UINT RowPitch; 614 } 615 616 interface ID3D10Texture2D : ID3D10Resource { 617 extern(Windows) : 618 HRESULT Map(UINT Subresource, D3D10_MAP MapType, UINT MapFlags, D3D10_MAPPED_TEXTURE2D *pMappedTex2D); 619 void Unmap(UINT Subresource); 620 void GetDesc(D3D10_TEXTURE2D_DESC *pDesc); 621 } 622 623 struct D3D10_TEXTURE3D_DESC { 624 UINT Width; 625 UINT Height; 626 UINT Depth; 627 UINT MipLevels; 628 DXGI_FORMAT Format; 629 D3D10_USAGE Usage; 630 UINT BindFlags; 631 UINT CPUAccessFlags; 632 UINT MiscFlags; 633 } 634 635 struct D3D10_MAPPED_TEXTURE3D { 636 void *pData; 637 UINT RowPitch; 638 UINT DepthPitch; 639 } 640 641 interface ID3D10Texture3D : ID3D10Resource { 642 extern(Windows) : 643 HRESULT Map(UINT Subresource, D3D10_MAP MapType, UINT MapFlags, D3D10_MAPPED_TEXTURE3D *pMappedTex3D); 644 void Unmap(UINT Subresource); 645 void GetDesc(D3D10_TEXTURE3D_DESC *pDesc); 646 } 647 648 enum D3D10_TEXTURECUBE_FACE { 649 D3D10_TEXTURECUBE_FACE_POSITIVE_X = 0, 650 D3D10_TEXTURECUBE_FACE_NEGATIVE_X, 651 D3D10_TEXTURECUBE_FACE_POSITIVE_Y, 652 D3D10_TEXTURECUBE_FACE_NEGATIVE_Y, 653 D3D10_TEXTURECUBE_FACE_POSITIVE_Z, 654 D3D10_TEXTURECUBE_FACE_NEGATIVE_Z 655 } 656 657 interface ID3D10View : ID3D10DeviceChild { 658 extern(Windows) : 659 void GetResource(ID3D10Resource *ppResource); 660 } 661 662 struct D3D10_BUFFER_SRV { 663 UINT ElementOffset; 664 UINT ElementWidth; 665 } 666 667 struct D3D10_TEX1D_SRV { 668 UINT MostDetailedMip; 669 UINT MipLevels; 670 } 671 672 struct D3D10_TEX1D_ARRAY_SRV { 673 UINT MostDetailedMip; 674 UINT MipLevels; 675 UINT FirstArraySlice; 676 UINT ArraySize; 677 } 678 679 struct D3D10_TEX2D_SRV { 680 UINT MostDetailedMip; 681 UINT MipLevels; 682 } 683 684 struct D3D10_TEX2D_ARRAY_SRV { 685 UINT MostDetailedMip; 686 UINT MipLevels; 687 UINT FirstArraySlice; 688 UINT ArraySize; 689 } 690 691 struct D3D10_TEX3D_SRV { 692 UINT MostDetailedMip; 693 UINT MipLevels; 694 } 695 696 struct D3D10_TEXCUBE_SRV { 697 UINT MostDetailedMip; 698 UINT MipLevels; 699 } 700 701 struct D3D10_TEX2DMS_SRV { 702 UINT UnusedField_NothingToDefine; 703 } 704 705 struct D3D10_TEX2DMS_ARRAY_SRV { 706 UINT FirstArraySlice; 707 UINT ArraySize; 708 } 709 710 struct D3D10_SHADER_RESOURCE_VIEW_DESC { 711 DXGI_FORMAT Format; 712 D3D10_SRV_DIMENSION ViewDimension; 713 union { 714 D3D10_BUFFER_SRV Buffer; 715 D3D10_TEX1D_SRV Texture1D; 716 D3D10_TEX1D_ARRAY_SRV Texture1DArray; 717 D3D10_TEX2D_SRV Texture2D; 718 D3D10_TEX2D_ARRAY_SRV Texture2DArray; 719 D3D10_TEX2DMS_SRV Texture2DMS; 720 D3D10_TEX2DMS_ARRAY_SRV Texture2DMSArray; 721 D3D10_TEX3D_SRV Texture3D; 722 D3D10_TEXCUBE_SRV TextureCube; 723 } 724 } 725 726 interface ID3D10ShaderResourceView : ID3D10View { 727 extern(Windows) : 728 void GetDesc(D3D10_SHADER_RESOURCE_VIEW_DESC *pDesc); 729 } 730 731 struct D3D10_BUFFER_RTV { 732 UINT ElementOffset; 733 UINT ElementWidth; 734 } 735 736 struct D3D10_TEX1D_RTV { 737 UINT MipSlice; 738 } 739 740 struct D3D10_TEX1D_ARRAY_RTV { 741 UINT MipSlice; 742 UINT FirstArraySlice; 743 UINT ArraySize; 744 } 745 746 struct D3D10_TEX2D_RTV { 747 UINT MipSlice; 748 } 749 750 struct D3D10_TEX2DMS_RTV { 751 UINT UnusedField_NothingToDefine; 752 } 753 754 struct D3D10_TEX2D_ARRAY_RTV { 755 UINT MipSlice; 756 UINT FirstArraySlice; 757 UINT ArraySize; 758 } 759 760 struct D3D10_TEX2DMS_ARRAY_RTV { 761 UINT FirstArraySlice; 762 UINT ArraySize; 763 } 764 765 struct D3D10_TEX3D_RTV { 766 UINT MipSlice; 767 UINT FirstWSlice; 768 UINT WSize; 769 } 770 771 struct D3D10_RENDER_TARGET_VIEW_DESC { 772 DXGI_FORMAT Format; 773 D3D10_RTV_DIMENSION ViewDimension; 774 union { 775 D3D10_BUFFER_RTV Buffer; 776 D3D10_TEX1D_RTV Texture1D; 777 D3D10_TEX1D_ARRAY_RTV Texture1DArray; 778 D3D10_TEX2D_RTV Texture2D; 779 D3D10_TEX2D_ARRAY_RTV Texture2DArray; 780 D3D10_TEX2DMS_RTV Texture2DMS; 781 D3D10_TEX2DMS_ARRAY_RTV Texture2DMSArray; 782 D3D10_TEX3D_RTV Texture3D; 783 } 784 } 785 786 interface ID3D10RenderTargetView : ID3D10View { 787 extern(Windows) : 788 void GetDesc(D3D10_RENDER_TARGET_VIEW_DESC *pDesc); 789 } 790 791 struct D3D10_TEX1D_DSV { 792 UINT MipSlice; 793 } 794 795 struct D3D10_TEX1D_ARRAY_DSV { 796 UINT MipSlice; 797 UINT FirstArraySlice; 798 UINT ArraySize; 799 } 800 801 struct D3D10_TEX2D_DSV { 802 UINT MipSlice; 803 } 804 805 struct D3D10_TEX2D_ARRAY_DSV { 806 UINT MipSlice; 807 UINT FirstArraySlice; 808 UINT ArraySize; 809 } 810 811 struct D3D10_TEX2DMS_DSV { 812 UINT UnusedField_NothingToDefine; 813 } 814 815 struct D3D10_TEX2DMS_ARRAY_DSV { 816 UINT FirstArraySlice; 817 UINT ArraySize; 818 } 819 820 struct D3D10_DEPTH_STENCIL_VIEW_DESC { 821 DXGI_FORMAT Format; 822 D3D10_DSV_DIMENSION ViewDimension; 823 union { 824 D3D10_TEX1D_DSV Texture1D; 825 D3D10_TEX1D_ARRAY_DSV Texture1DArray; 826 D3D10_TEX2D_DSV Texture2D; 827 D3D10_TEX2D_ARRAY_DSV Texture2DArray; 828 D3D10_TEX2DMS_DSV Texture2DMS; 829 D3D10_TEX2DMS_ARRAY_DSV Texture2DMSArray; 830 } 831 } 832 833 interface ID3D10DepthStencilView : ID3D10View { 834 extern(Windows) : 835 void GetDesc(D3D10_DEPTH_STENCIL_VIEW_DESC *pDesc); 836 } 837 838 interface ID3D10VertexShader : ID3D10DeviceChild { } 839 840 interface ID3D10GeometryShader : ID3D10DeviceChild { } 841 842 interface ID3D10PixelShader : ID3D10DeviceChild { } 843 844 interface ID3D10InputLayout : ID3D10DeviceChild { } 845 846 enum D3D10_FILTER { 847 D3D10_FILTER_MIN_MAG_MIP_POINT = 0x00, 848 D3D10_FILTER_MIN_MAG_POINT_MIP_LINEAR = 0x01, 849 D3D10_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x04, 850 D3D10_FILTER_MIN_POINT_MAG_MIP_LINEAR = 0x05, 851 D3D10_FILTER_MIN_LINEAR_MAG_MIP_POINT = 0x10, 852 D3D10_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x11, 853 D3D10_FILTER_MIN_MAG_LINEAR_MIP_POINT = 0x14, 854 D3D10_FILTER_MIN_MAG_MIP_LINEAR = 0x15, 855 D3D10_FILTER_ANISOTROPIC = 0x55, 856 D3D10_FILTER_COMPARISON_MIN_MAG_MIP_POINT = 0x80, 857 D3D10_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR = 0x81, 858 D3D10_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x84, 859 D3D10_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR = 0x85, 860 D3D10_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT = 0x90, 861 D3D10_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x91, 862 D3D10_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT = 0x94, 863 D3D10_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR = 0x95, 864 D3D10_FILTER_COMPARISON_ANISOTROPIC = 0xd5, 865 D3D10_FILTER_TEXT_1BIT = 0x80000000 866 } 867 868 869 enum D3D10_FILTER_TYPE { 870 D3D10_FILTER_TYPE_POINT = 0, 871 D3D10_FILTER_TYPE_LINEAR 872 } 873 874 const D3D10_FILTER_TYPE_MASK = 0x03; 875 876 const D3D10_MIN_FILTER_SHIFT = 4; 877 878 const D3D10_MAG_FILTER_SHIFT = 2; 879 880 const D3D10_MIP_FILTER_SHIFT = 0; 881 882 const D3D10_COMPARISON_FILTERING_BIT = 0x80; 883 884 const D3D10_ANISOTROPIC_FILTERING_BIT = 0x40; 885 886 const D3D10_TEXT_1BIT_BIT = 0x80000000; 887 888 D3D10_FILTER D3D10_ENCODE_BASIC_FILTER(int min, int mag, int mip, bool bComparison) { 889 return cast(D3D10_FILTER)(((bComparison) ? D3D10_COMPARISON_FILTERING_BIT : 0) | 890 ((min & D3D10_FILTER_TYPE_MASK) << D3D10_MIN_FILTER_SHIFT) | 891 ((mag & D3D10_FILTER_TYPE_MASK) << D3D10_MAG_FILTER_SHIFT) | 892 ((mip & D3D10_FILTER_TYPE_MASK) << D3D10_MIP_FILTER_SHIFT)); 893 } 894 895 D3D10_FILTER D3D10_ENCODE_ANISOTROPIC_FILTER(bool bComparison) { 896 return cast(D3D10_FILTER)(D3D10_ANISOTROPIC_FILTERING_BIT | 897 D3D10_ENCODE_BASIC_FILTER(D3D10_FILTER_TYPE.D3D10_FILTER_TYPE_LINEAR, 898 D3D10_FILTER_TYPE.D3D10_FILTER_TYPE_LINEAR, D3D10_FILTER_TYPE.D3D10_FILTER_TYPE_LINEAR, 899 bComparison)); 900 } 901 902 D3D10_FILTER_TYPE D3D10_DECODE_MIN_FILTER(D3D10_FILTER d3d10Filter) { 903 return cast(D3D10_FILTER_TYPE)((d3d10Filter >> D3D10_MIN_FILTER_SHIFT) & D3D10_FILTER_TYPE_MASK); 904 } 905 906 D3D10_FILTER_TYPE D3D10_DECODE_MAG_FILTER(D3D10_FILTER d3d10Filter) { 907 return cast(D3D10_FILTER_TYPE)((d3d10Filter >> D3D10_MAG_FILTER_SHIFT) & D3D10_FILTER_TYPE_MASK); 908 } 909 910 D3D10_FILTER_TYPE D3D10_DECODE_MIP_FILTER(D3D10_FILTER d3d10Filter) { 911 return cast(D3D10_FILTER_TYPE)((d3d10Filter >> D3D10_MIP_FILTER_SHIFT) & D3D10_FILTER_TYPE_MASK); 912 } 913 914 bool D3D10_DECODE_IS_COMPARISON_FILTER(D3D10_FILTER d3d10Filter) { 915 return (d3d10Filter & D3D10_COMPARISON_FILTERING_BIT) == D3D10_COMPARISON_FILTERING_BIT; 916 } 917 918 bool D3D10_DECODE_IS_ANISOTROPIC_FILTER(D3D10_FILTER d3d10Filter) { 919 return ((d3d10Filter & D3D10_ANISOTROPIC_FILTERING_BIT) && 920 (D3D10_FILTER_TYPE.D3D10_FILTER_TYPE_LINEAR == D3D10_DECODE_MIN_FILTER(d3d10Filter)) && 921 (D3D10_FILTER_TYPE.D3D10_FILTER_TYPE_LINEAR == D3D10_DECODE_MAG_FILTER(d3d10Filter)) && 922 (D3D10_FILTER_TYPE.D3D10_FILTER_TYPE_LINEAR == D3D10_DECODE_MIP_FILTER(d3d10Filter))); 923 } 924 925 bool D3D10_DECODE_IS_TEXT_1BIT_FILTER(D3D10_FILTER d3d10Filter) { 926 return d3d10Filter == D3D10_TEXT_1BIT_BIT; 927 } 928 929 enum D3D10_TEXTURE_ADDRESS_MODE { 930 D3D10_TEXTURE_ADDRESS_WRAP = 1, 931 D3D10_TEXTURE_ADDRESS_MIRROR, 932 D3D10_TEXTURE_ADDRESS_CLAMP, 933 D3D10_TEXTURE_ADDRESS_BORDER, 934 D3D10_TEXTURE_ADDRESS_MIRROR_ONCE 935 } 936 937 struct D3D10_SAMPLER_DESC { 938 D3D10_FILTER Filter; 939 D3D10_TEXTURE_ADDRESS_MODE AddressU; 940 D3D10_TEXTURE_ADDRESS_MODE AddressV; 941 D3D10_TEXTURE_ADDRESS_MODE AddressW; 942 FLOAT MipLODBias; 943 UINT MaxAnisotropy; 944 D3D10_COMPARISON_FUNC ComparisonFunc; 945 FLOAT[4] BorderColor; 946 FLOAT MinLOD; 947 FLOAT MaxLOD; 948 } 949 950 interface ID3D10SamplerState : ID3D10DeviceChild { 951 extern(Windows) : 952 void GetDesc(D3D10_SAMPLER_DESC *pDesc); 953 } 954 955 enum D3D10_FORMAT_SUPPORT { 956 D3D10_FORMAT_SUPPORT_BUFFER = 0x000001, 957 D3D10_FORMAT_SUPPORT_IA_VERTEX_BUFFER = 0x000002, 958 D3D10_FORMAT_SUPPORT_IA_INDEX_BUFFER = 0x000004, 959 D3D10_FORMAT_SUPPORT_SO_BUFFER = 0x000008, 960 D3D10_FORMAT_SUPPORT_TEXTURE1D = 0x000010, 961 D3D10_FORMAT_SUPPORT_TEXTURE2D = 0x000020, 962 D3D10_FORMAT_SUPPORT_TEXTURE3D = 0x000040, 963 D3D10_FORMAT_SUPPORT_TEXTURECUBE = 0x000080, 964 D3D10_FORMAT_SUPPORT_SHADER_LOAD = 0x000100, 965 D3D10_FORMAT_SUPPORT_SHADER_SAMPLE = 0x000200, 966 D3D10_FORMAT_SUPPORT_SHADER_SAMPLE_COMPARISON = 0x000400, 967 D3D10_FORMAT_SUPPORT_SHADER_SAMPLE_MONO_TEXT = 0x000800, 968 D3D10_FORMAT_SUPPORT_MIP = 0x001000, 969 D3D10_FORMAT_SUPPORT_MIP_AUTOGEN = 0x002000, 970 D3D10_FORMAT_SUPPORT_RENDER_TARGET = 0x004000, 971 D3D10_FORMAT_SUPPORT_BLENDABLE = 0x008000, 972 D3D10_FORMAT_SUPPORT_DEPTH_STENCIL = 0x010000, 973 D3D10_FORMAT_SUPPORT_CPU_LOCKABLE = 0x020000, 974 D3D10_FORMAT_SUPPORT_MULTISAMPLE_RESOLVE = 0x040000, 975 D3D10_FORMAT_SUPPORT_DISPLAY = 0x080000, 976 D3D10_FORMAT_SUPPORT_CAST_WITHIN_BIT_LAYOUT = 0x100000, 977 D3D10_FORMAT_SUPPORT_MULTISAMPLE_RENDERTARGET = 0x200000, 978 D3D10_FORMAT_SUPPORT_MULTISAMPLE_LOAD = 0x400000, 979 D3D10_FORMAT_SUPPORT_SHADER_GATHER = 0x800000 980 } 981 982 interface ID3D10Asynchronous : ID3D10DeviceChild { 983 extern(Windows) : 984 void Begin(); 985 void End(); 986 HRESULT GetData(void *pData, UINT DataSize, UINT GetDataFlags); 987 UINT GetDataSize(); 988 } 989 990 enum D3D10_ASYNC_GETDATA_FLAG { 991 D3D10_ASYNC_GETDATA_DONOTFLUSH = 0x1 992 } 993 994 enum D3D10_QUERY { 995 D3D10_QUERY_EVENT = 0, 996 D3D10_QUERY_OCCLUSION = (D3D10_QUERY_EVENT + 1), 997 D3D10_QUERY_TIMESTAMP = (D3D10_QUERY_OCCLUSION + 1), 998 D3D10_QUERY_TIMESTAMP_DISJOINT = (D3D10_QUERY_TIMESTAMP + 1), 999 D3D10_QUERY_PIPELINE_STATISTICS = (D3D10_QUERY_TIMESTAMP_DISJOINT + 1), 1000 D3D10_QUERY_OCCLUSION_PREDICATE = (D3D10_QUERY_PIPELINE_STATISTICS + 1), 1001 D3D10_QUERY_SO_STATISTICS = (D3D10_QUERY_OCCLUSION_PREDICATE + 1), 1002 D3D10_QUERY_SO_OVERFLOW_PREDICATE = (D3D10_QUERY_SO_STATISTICS + 1) 1003 } 1004 1005 enum D3D10_QUERY_MISC_FLAG { 1006 D3D10_QUERY_MISC_PREDICATEHINT = 0x01 1007 } 1008 1009 struct D3D10_QUERY_DESC { 1010 D3D10_QUERY Query; 1011 UINT MiscFlags; 1012 } 1013 1014 interface ID3D10Query : ID3D10Asynchronous { 1015 extern(Windows) : 1016 void GetDesc(D3D10_QUERY_DESC *pDesc); 1017 } 1018 1019 interface ID3D10Predicate : ID3D10Query { } 1020 1021 struct D3D10_QUERY_DATA_TIMESTAMP_DISJOINT { 1022 UINT64 Frequency; 1023 BOOL Disjoint; 1024 } 1025 1026 struct D3D10_QUERY_DATA_PIPELINE_STATISTICS { 1027 UINT64 IAVertices; 1028 UINT64 IAPrimitives; 1029 UINT64 VSInvocations; 1030 UINT64 GSInvocations; 1031 UINT64 GSPrimitives; 1032 UINT64 CInvocations; 1033 UINT64 CPrimitives; 1034 UINT64 PSInvocations; 1035 } 1036 1037 struct D3D10_QUERY_DATA_SO_STATISTICS { 1038 UINT64 NumPrimitivesWritten; 1039 UINT64 PrimitivesStorageNeeded; 1040 } 1041 1042 enum D3D10_COUNTER { 1043 D3D10_COUNTER_GPU_IDLE = 0, 1044 D3D10_COUNTER_VERTEX_PROCESSING = (D3D10_COUNTER_GPU_IDLE + 1), 1045 D3D10_COUNTER_GEOMETRY_PROCESSING = (D3D10_COUNTER_VERTEX_PROCESSING + 1), 1046 D3D10_COUNTER_PIXEL_PROCESSING = (D3D10_COUNTER_GEOMETRY_PROCESSING + 1), 1047 D3D10_COUNTER_OTHER_GPU_PROCESSING = (D3D10_COUNTER_PIXEL_PROCESSING + 1), 1048 D3D10_COUNTER_HOST_ADAPTER_BANDWIDTH_UTILIZATION = (D3D10_COUNTER_OTHER_GPU_PROCESSING + 1), 1049 D3D10_COUNTER_LOCAL_VIDMEM_BANDWIDTH_UTILIZATION = (D3D10_COUNTER_HOST_ADAPTER_BANDWIDTH_UTILIZATION + 1), 1050 D3D10_COUNTER_VERTEX_THROUGHPUT_UTILIZATION = (D3D10_COUNTER_LOCAL_VIDMEM_BANDWIDTH_UTILIZATION + 1), 1051 D3D10_COUNTER_TRIANGLE_SETUP_THROUGHPUT_UTILIZATION = (D3D10_COUNTER_VERTEX_THROUGHPUT_UTILIZATION + 1), 1052 D3D10_COUNTER_FILLRATE_THROUGHPUT_UTILIZATION = (D3D10_COUNTER_TRIANGLE_SETUP_THROUGHPUT_UTILIZATION + 1), 1053 D3D10_COUNTER_VS_MEMORY_LIMITED = (D3D10_COUNTER_FILLRATE_THROUGHPUT_UTILIZATION + 1), 1054 D3D10_COUNTER_VS_COMPUTATION_LIMITED = (D3D10_COUNTER_VS_MEMORY_LIMITED + 1), 1055 D3D10_COUNTER_GS_MEMORY_LIMITED = (D3D10_COUNTER_VS_COMPUTATION_LIMITED + 1), 1056 D3D10_COUNTER_GS_COMPUTATION_LIMITED = (D3D10_COUNTER_GS_MEMORY_LIMITED + 1), 1057 D3D10_COUNTER_PS_MEMORY_LIMITED = (D3D10_COUNTER_GS_COMPUTATION_LIMITED + 1), 1058 D3D10_COUNTER_PS_COMPUTATION_LIMITED = (D3D10_COUNTER_PS_MEMORY_LIMITED + 1), 1059 D3D10_COUNTER_POST_TRANSFORM_CACHE_HIT_RATE = (D3D10_COUNTER_PS_COMPUTATION_LIMITED + 1), 1060 D3D10_COUNTER_TEXTURE_CACHE_HIT_RATE = (D3D10_COUNTER_POST_TRANSFORM_CACHE_HIT_RATE + 1), 1061 D3D10_COUNTER_DEVICE_DEPENDENT_0 = 0x40000000 1062 } 1063 1064 enum D3D10_COUNTER_TYPE { 1065 D3D10_COUNTER_TYPE_FLOAT32 = 0, 1066 D3D10_COUNTER_TYPE_UINT16 = (D3D10_COUNTER_TYPE_FLOAT32 + 1), 1067 D3D10_COUNTER_TYPE_UINT32 = (D3D10_COUNTER_TYPE_UINT16 + 1), 1068 D3D10_COUNTER_TYPE_UINT64 = (D3D10_COUNTER_TYPE_UINT32 + 1) 1069 } 1070 1071 struct D3D10_COUNTER_DESC { 1072 D3D10_COUNTER Counter; 1073 UINT MiscFlags; 1074 } 1075 1076 struct D3D10_COUNTER_INFO { 1077 D3D10_COUNTER LastDeviceDependentCounter; 1078 UINT NumSimultaneousCounters; 1079 UINT8 NumDetectableParallelUnits; 1080 } 1081 1082 interface ID3D10Counter : ID3D10Asynchronous { 1083 extern(Windows) : 1084 void GetDesc(D3D10_COUNTER_DESC *pDesc); 1085 } 1086 1087 interface ID3D10Device : IUnknown { 1088 extern(Windows) : 1089 void VSSetConstantBuffers(UINT StartSlot, UINT NumBuffers, ID3D10Buffer* ppConstantBuffers); 1090 void PSSetShaderResources(UINT StartSlot, UINT NumViews, ID3D10ShaderResourceView* ppShaderResourceViews); 1091 void PSSetShader(ID3D10PixelShader pPixelShader); 1092 void PSSetSamplers(UINT StartSlot, UINT NumSamplers, ID3D10SamplerState* ppSamplers); 1093 void VSSetShader(ID3D10VertexShader pVertexShader); 1094 void DrawIndexed(UINT IndexCount, UINT StartIndexLocation, INT BaseVertexLocation); 1095 void Draw(UINT VertexCount, UINT StartVertexLocation); 1096 void PSSetConstantBuffers(UINT StartSlot, UINT NumBuffers, ID3D10Buffer* ppConstantBuffers); 1097 void IASetInputLayout(ID3D10InputLayout pInputLayout); 1098 void IASetVertexBuffers(UINT StartSlot, UINT NumBuffers, ID3D10Buffer* ppVertexBuffers, UINT* pStrides, UINT* pOffsets); 1099 void IASetIndexBuffer(ID3D10Buffer pIndexBuffer, DXGI_FORMAT Format, UINT Offset); 1100 void DrawIndexedInstanced(UINT IndexCountPerInstance, UINT InstanceCount, UINT StartIndexLocation, INT BaseVertexLocation, UINT StartInstanceLocation); 1101 void DrawInstanced(UINT VertexCountPerInstance, UINT InstanceCount, UINT StartVertexLocation, UINT StartInstanceLocation); 1102 void GSSetConstantBuffers(UINT StartSlot, UINT NumBuffers, ID3D10Buffer* ppConstantBuffers); 1103 void GSSetShader(ID3D10GeometryShader pShader); 1104 void IASetPrimitiveTopology(D3D10_PRIMITIVE_TOPOLOGY Topology); 1105 void VSSetShaderResources(UINT StartSlot, UINT NumViews, ID3D10ShaderResourceView* ppShaderResourceViews); 1106 void VSSetSamplers(UINT StartSlot, UINT NumSamplers, ID3D10SamplerState* ppSamplers); 1107 void SetPredication(ID3D10Predicate pPredicate, BOOL PredicateValue); 1108 void GSSetShaderResources(UINT StartSlot, UINT NumViews, ID3D10ShaderResourceView* ppShaderResourceViews); 1109 void GSSetSamplers(UINT StartSlot, UINT NumSamplers, ID3D10SamplerState* ppSamplers); 1110 void OMSetRenderTargets(UINT NumViews, ID3D10RenderTargetView* ppRenderTargetViews, ID3D10DepthStencilView pDepthStencilView); 1111 void OMSetBlendState(ID3D10BlendState pBlendState, FLOAT[4] BlendFactor, UINT SampleMask); 1112 void OMSetDepthStencilState(ID3D10DepthStencilState pDepthStencilState, UINT StencilRef); 1113 void SOSetTargets(UINT NumBuffers, ID3D10Buffer* ppSOTargets, UINT* pOffsets); 1114 void DrawAuto(); 1115 void RSSetState(ID3D10RasterizerState pRasterizerState); 1116 void RSSetViewports(UINT NumViewports, D3D10_VIEWPORT* pViewports); 1117 void RSSetScissorRects(UINT NumRects, D3D10_RECT* pRects); 1118 void CopySubresourceRegion(ID3D10Resource pDstResource, UINT DstSubresource, UINT DstX, UINT DstY, UINT DstZ, ID3D10Resource pSrcResource, UINT SrcSubresource, D3D10_BOX* pSrcBox); 1119 void CopyResource(ID3D10Resource pDstResource, ID3D10Resource pSrcResource); 1120 void UpdateSubresource(ID3D10Resource pDstResource, UINT DstSubresource, D3D10_BOX* pDstBox, void* pSrcData, UINT SrcRowPitch, UINT SrcDepthPitch); 1121 void ClearRenderTargetView(ID3D10RenderTargetView pRenderTargetView, FLOAT[4]* ColorRGBA); 1122 void ClearDepthStencilView(ID3D10DepthStencilView pDepthStencilView, UINT ClearFlags, FLOAT Depth, UINT8 Stencil); 1123 void GenerateMips(ID3D10ShaderResourceView pShaderResourceView); 1124 void ResolveSubresource(ID3D10Resource pDstResource, UINT DstSubresource, ID3D10Resource pSrcResource, UINT SrcSubresource, DXGI_FORMAT Format); 1125 void VSGetConstantBuffers(UINT StartSlot, UINT NumBuffers, ID3D10Buffer* ppConstantBuffers); 1126 void PSGetShaderResources(UINT StartSlot, UINT NumViews, ID3D10ShaderResourceView* ppShaderResourceViews); 1127 void PSGetShader(ID3D10PixelShader* ppPixelShader); 1128 void PSGetSamplers(UINT StartSlot, UINT NumSamplers, ID3D10SamplerState* ppSamplers); 1129 void VSGetShader(ID3D10VertexShader* ppVertexShader); 1130 void PSGetConstantBuffers(UINT StartSlot, UINT NumBuffers, ID3D10Buffer* ppConstantBuffers); 1131 void IAGetInputLayout(ID3D10InputLayout* ppInputLayout); 1132 void IAGetVertexBuffers(UINT StartSlot, UINT NumBuffers, ID3D10Buffer* ppVertexBuffers, UINT* pStrides, UINT* pOffsets); 1133 void IAGetIndexBuffer(ID3D10Buffer* pIndexBuffer, DXGI_FORMAT* Format, UINT* Offset); 1134 void GSGetConstantBuffers(UINT StartSlot, UINT NumBuffers, ID3D10Buffer* ppConstantBuffers); 1135 void GSGetShader(ID3D10GeometryShader* ppGeometryShader); 1136 void IAGetPrimitiveTopology(D3D10_PRIMITIVE_TOPOLOGY* pTopology); 1137 void VSGetShaderResources(UINT StartSlot, UINT NumViews, ID3D10ShaderResourceView* ppShaderResourceViews); 1138 void VSGetSamplers(UINT StartSlot, UINT NumSamplers, ID3D10SamplerState* ppSamplers); 1139 void GetPredication(ID3D10Predicate* ppPredicate, BOOL* pPredicateValue); 1140 void GSGetShaderResources(UINT StartSlot, UINT NumViews, ID3D10ShaderResourceView* ppShaderResourceViews); 1141 void GSGetSamplers(UINT StartSlot, UINT NumSamplers, ID3D10SamplerState* ppSamplers); 1142 void OMGetRenderTargets(UINT NumViews, ID3D10RenderTargetView* ppRenderTargetViews, ID3D10DepthStencilView* ppDepthStencilView); 1143 void OMGetBlendState(ID3D10BlendState* ppBlendState, FLOAT BlendFactor[ 4 ], UINT* pSampleMask); 1144 void OMGetDepthStencilState(ID3D10DepthStencilState* ppDepthStencilState, UINT* pStencilRef); 1145 void SOGetTargets(UINT NumBuffers, ID3D10Buffer* ppSOTargets, UINT* pOffsets); 1146 void RSGetState(ID3D10RasterizerState* ppRasterizerState); 1147 void RSGetViewports(UINT* NumViewports, D3D10_VIEWPORT* pViewports); 1148 void RSGetScissorRects(UINT* NumRects, D3D10_RECT* pRects); 1149 HRESULT GetDeviceRemovedReason(); 1150 HRESULT SetExceptionMode(UINT RaiseFlags); 1151 UINT GetExceptionMode(); 1152 HRESULT GetPrivateData(REFGUID guid, UINT* pDataSize, void* pData); 1153 HRESULT SetPrivateData(REFGUID guid, UINT DataSize, void* pData); 1154 HRESULT SetPrivateDataInterface(REFGUID guid, IUnknown pData); 1155 void ClearState(); 1156 void Flush(); 1157 HRESULT CreateBuffer(D3D10_BUFFER_DESC* pDesc, D3D10_SUBRESOURCE_DATA* pInitialData, ID3D10Buffer* ppBuffer); 1158 HRESULT CreateTexture1D(D3D10_TEXTURE1D_DESC* pDesc, D3D10_SUBRESOURCE_DATA* pInitialData, ID3D10Texture1D* ppTexture1D); 1159 HRESULT CreateTexture2D(D3D10_TEXTURE2D_DESC* pDesc, D3D10_SUBRESOURCE_DATA* pInitialData, ID3D10Texture2D* ppTexture2D); 1160 HRESULT CreateTexture3D(D3D10_TEXTURE3D_DESC* pDesc, D3D10_SUBRESOURCE_DATA* pInitialData, ID3D10Texture3D* ppTexture3D); 1161 HRESULT CreateShaderResourceView(ID3D10Resource pResource, D3D10_SHADER_RESOURCE_VIEW_DESC* pDesc, ID3D10ShaderResourceView* ppSRView); 1162 HRESULT CreateRenderTargetView(ID3D10Resource pResource, D3D10_RENDER_TARGET_VIEW_DESC* pDesc, ID3D10RenderTargetView* ppRTView); 1163 HRESULT CreateDepthStencilView(ID3D10Resource pResource, D3D10_DEPTH_STENCIL_VIEW_DESC* pDesc, ID3D10DepthStencilView* ppDepthStencilView); 1164 HRESULT CreateInputLayout(D3D10_INPUT_ELEMENT_DESC* pInputElementDescs, UINT NumElements, void* pShaderBytecodeWithInputSignature, SIZE_T BytecodeLength, ID3D10InputLayout* ppInputLayout); 1165 HRESULT CreateVertexShader(void* pShaderBytecode, SIZE_T BytecodeLength, ID3D10VertexShader* ppVertexShader); 1166 HRESULT CreateGeometryShader(void* pShaderBytecode, SIZE_T BytecodeLength, ID3D10GeometryShader* ppGeometryShader); 1167 HRESULT CreateGeometryShaderWithStreamOutput(void* pShaderBytecode, SIZE_T BytecodeLength, D3D10_SO_DECLARATION_ENTRY* pSODeclaration, UINT NumEntries, UINT OutputStreamStride, ID3D10GeometryShader* ppGeometryShader); 1168 HRESULT CreatePixelShader(void* pShaderBytecode, SIZE_T BytecodeLength, ID3D10PixelShader* ppPixelShader); 1169 HRESULT CreateBlendState(D3D10_BLEND_DESC* pBlendStateDesc, ID3D10BlendState* ppBlendState); 1170 HRESULT CreateDepthStencilState(D3D10_DEPTH_STENCIL_DESC* pDepthStencilDesc, ID3D10DepthStencilState* ppDepthStencilState); 1171 HRESULT CreateRasterizerState(D3D10_RASTERIZER_DESC* pRasterizerDesc, ID3D10RasterizerState* ppRasterizerState); 1172 HRESULT CreateSamplerState(D3D10_SAMPLER_DESC* pSamplerDesc, ID3D10SamplerState* ppSamplerState); 1173 HRESULT CreateQuery(D3D10_QUERY_DESC* pQueryDesc, ID3D10Query* ppQuery); 1174 HRESULT CreatePredicate(D3D10_QUERY_DESC* pPredicateDesc, ID3D10Predicate* ppPredicate); 1175 HRESULT CreateCounter(D3D10_COUNTER_DESC* pCounterDesc, ID3D10Counter* ppCounter); 1176 HRESULT CheckFormatSupport(DXGI_FORMAT Format, UINT* pFormatSupport); 1177 HRESULT CheckMultisampleQualityLevels(DXGI_FORMAT Format, UINT SampleCount, UINT* pNumQualityLevels); 1178 void CheckCounterInfo(D3D10_COUNTER_INFO* pCounterInfo); 1179 HRESULT CheckCounter(D3D10_COUNTER_DESC* pDesc, D3D10_COUNTER_TYPE* pType, UINT* pActiveCounters, LPSTR szName, UINT* pNameLength, LPSTR szUnits, UINT* pUnitsLength, LPSTR szDescription, UINT* pDescriptionLength); 1180 UINT GetCreationFlags(); 1181 HRESULT OpenSharedResource(HANDLE hResource, REFIID ReturnedInterface, void** ppResource); 1182 void SetTextFilterSize(UINT Width, UINT Height); 1183 void GetTextFilterSize(UINT* pWidth, UINT* pHeight); 1184 } 1185 1186 interface ID3D10Multithread : IUnknown { 1187 extern(Windows) : 1188 void Enter(); 1189 void Leave(); 1190 BOOL SetMultithreadProtected(BOOL bMTProtect); 1191 BOOL GetMultithreadProtected(); 1192 } 1193 1194 enum D3D10_CREATE_DEVICE_FLAG { 1195 D3D10_CREATE_DEVICE_SINGLETHREADED = 0x01, 1196 D3D10_CREATE_DEVICE_DEBUG = 0x02, 1197 D3D10_CREATE_DEVICE_SWITCH_TO_REF = 0x04, 1198 D3D10_CREATE_DEVICE_PREVENT_INTERNAL_THREADING_OPTIMIZATIONS = 0x08 1199 } 1200 1201 const D3D10_SDK_VERSION = 29; 1202 1203 extern(C) const GUID IID_ID3D10DeviceChild = {0x9B7E4C00, 0x342C, 0x4106, [0xA1, 0x9F, 0x4F, 0x27, 0x04, 0xF6, 0x89, 0xF0]}; 1204 extern(C) const GUID IID_ID3D10DepthStencilState = {0x2B4B1CC8, 0xA4AD, 0x41f8, [0x83, 0x22, 0xCA, 0x86, 0xFC, 0x3E, 0xC6, 0x75]}; 1205 extern(C) const GUID IID_ID3D10BlendState = {0xEDAD8D19, 0x8A35, 0x4d6d, [0x85, 0x66, 0x2E, 0xA2, 0x76, 0xCD, 0xE1, 0x61]}; 1206 extern(C) const GUID IID_ID3D10RasterizerState = {0xA2A07292, 0x89AF, 0x4345, [0xBE, 0x2E, 0xC5, 0x3D, 0x9F, 0xBB, 0x6E, 0x9F]}; 1207 extern(C) const GUID IID_ID3D10Resource = {0x9B7E4C01, 0x342C, 0x4106, [0xA1, 0x9F, 0x4F, 0x27, 0x04, 0xF6, 0x89, 0xF0]}; 1208 extern(C) const GUID IID_ID3D10Buffer = {0x9B7E4C02, 0x342C, 0x4106, [0xA1, 0x9F, 0x4F, 0x27, 0x04, 0xF6, 0x89, 0xF0]}; 1209 extern(C) const GUID IID_ID3D10Texture1D = {0x9B7E4C03, 0x342C, 0x4106, [0xA1, 0x9F, 0x4F, 0x27, 0x04, 0xF6, 0x89, 0xF0]}; 1210 extern(C) const GUID IID_ID3D10Texture2D = {0x9B7E4C04, 0x342C, 0x4106, [0xA1, 0x9F, 0x4F, 0x27, 0x04, 0xF6, 0x89, 0xF0]}; 1211 extern(C) const GUID IID_ID3D10Texture3D = {0x9B7E4C05, 0x342C, 0x4106, [0xA1, 0x9F, 0x4F, 0x27, 0x04, 0xF6, 0x89, 0xF0]}; 1212 extern(C) const GUID IID_ID3D10View = {0xC902B03F, 0x60A7, 0x49BA, [0x99, 0x36, 0x2A, 0x3A, 0xB3, 0x7A, 0x7E, 0x33]}; 1213 extern(C) const GUID IID_ID3D10ShaderResourceView = {0x9B7E4C07, 0x342C, 0x4106, [0xA1, 0x9F, 0x4F, 0x27, 0x04, 0xF6, 0x89, 0xF0]}; 1214 extern(C) const GUID IID_ID3D10RenderTargetView = {0x9B7E4C08, 0x342C, 0x4106, [0xA1, 0x9F, 0x4F, 0x27, 0x04, 0xF6, 0x89, 0xF0]}; 1215 extern(C) const GUID IID_ID3D10DepthStencilView = {0x9B7E4C09, 0x342C, 0x4106, [0xA1, 0x9F, 0x4F, 0x27, 0x04, 0xF6, 0x89, 0xF0]}; 1216 extern(C) const GUID IID_ID3D10VertexShader = {0x9B7E4C0A, 0x342C, 0x4106, [0xA1, 0x9F, 0x4F, 0x27, 0x04, 0xF6, 0x89, 0xF0]}; 1217 extern(C) const GUID IID_ID3D10GeometryShader = {0x6316BE88, 0x54CD, 0x4040, [0xAB, 0x44, 0x20, 0x46, 0x1B, 0xC8, 0x1F, 0x68]}; 1218 extern(C) const GUID IID_ID3D10PixelShader = {0x4968B601, 0x9D00, 0x4cde, [0x83, 0x46, 0x8E, 0x7F, 0x67, 0x58, 0x19, 0xB6]}; 1219 extern(C) const GUID IID_ID3D10InputLayout = {0x9B7E4C0B, 0x342C, 0x4106, [0xA1, 0x9F, 0x4F, 0x27, 0x04, 0xF6, 0x89, 0xF0]}; 1220 extern(C) const GUID IID_ID3D10SamplerState = {0x9B7E4C0C, 0x342C, 0x4106, [0xA1, 0x9F, 0x4F, 0x27, 0x04, 0xF6, 0x89, 0xF0]}; 1221 extern(C) const GUID IID_ID3D10Asynchronous = {0x9B7E4C0D, 0x342C, 0x4106, [0xA1, 0x9F, 0x4F, 0x27, 0x04, 0xF6, 0x89, 0xF0]}; 1222 extern(C) const GUID IID_ID3D10Query = {0x9B7E4C0E, 0x342C, 0x4106, [0xA1, 0x9F, 0x4F, 0x27, 0x04, 0xF6, 0x89, 0xF0]}; 1223 extern(C) const GUID IID_ID3D10Predicate = {0x9B7E4C10, 0x342C, 0x4106, [0xA1, 0x9F, 0x4F, 0x27, 0x04, 0xF6, 0x89, 0xF0]}; 1224 extern(C) const GUID IID_ID3D10Counter = {0x9B7E4C11, 0x342C, 0x4106, [0xA1, 0x9F, 0x4F, 0x27, 0x04, 0xF6, 0x89, 0xF0]}; 1225 extern(C) const GUID IID_ID3D10Device = {0x9B7E4C0F, 0x342C, 0x4106, [0xA1, 0x9F, 0x4F, 0x27, 0x04, 0xF6, 0x89, 0xF0]}; 1226 extern(C) const GUID IID_ID3D10Multithread = {0x9B7E4E00, 0x342C, 0x4106, [0xA1, 0x9F, 0x4F, 0x27, 0x04, 0xF6, 0x89, 0xF0]}; 1227 1228 public import win32.directx.d3d10shader; 1229 public import win32.directx.d3d10effect;