Home | History | Annotate | Download | only in include
      1 /*
      2  * Copyright 2007 Andras Kovacs
      3  *
      4  * This library is free software; you can redistribute it and/or
      5  * modify it under the terms of the GNU Lesser General Public
      6  * License as published by the Free Software Foundation; either
      7  * version 2.1 of the License, or (at your option) any later version.
      8  *
      9  * This library is distributed in the hope that it will be useful,
     10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
     11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     12  * Lesser General Public License for more details.
     13  *
     14  * You should have received a copy of the GNU Lesser General Public
     15  * License along with this library; if not, write to the Free Software
     16  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
     17  */
     18 
     19 import "oaidl.idl";
     20 import "ocidl.idl";
     21 import "dxgi.idl";
     22 import "d3dcommon.idl";
     23 
     24 cpp_quote("#ifndef _D3D10_CONSTANTS")
     25 cpp_quote("#define _D3D10_CONSTANTS")
     26 const float D3D10_DEFAULT_BLEND_FACTOR_ALPHA                                            = 1.0;
     27 const float D3D10_DEFAULT_BLEND_FACTOR_BLUE                                             = 1.0;
     28 const float D3D10_DEFAULT_BLEND_FACTOR_GREEN                                            = 1.0;
     29 const float D3D10_DEFAULT_BLEND_FACTOR_RED                                              = 1.0;
     30 const float D3D10_DEFAULT_BORDER_COLOR_COMPONENT                                        = 0.0;
     31 const float D3D10_DEFAULT_SLOPE_SCALED_DEPTH_BIAS                                       = 0.0;
     32 const float D3D10_DEFAULT_DEPTH_BIAS_CLAMP                                              = 0.0;
     33 const float D3D10_DEFAULT_MAX_ANISOTROPY                                                = 16.0;
     34 const float D3D10_DEFAULT_MIP_LOD_BIAS                                                  = 0.0;
     35 const float D3D10_DEFAULT_VIEWPORT_MAX_DEPTH                                            = 0.0;
     36 const float D3D10_DEFAULT_VIEWPORT_MIN_DEPTH                                            = 0.0;
     37 const float D3D10_FLOAT16_FUSED_TOLERANCE_IN_ULP                                        = 0.6;
     38 const float D3D10_FLOAT32_MAX                                                           = 3.402823466e+38;
     39 const float D3D10_FLOAT32_TO_INTEGER_TOLERANCE_IN_ULP                                   = 0.6;
     40 const float D3D10_FLOAT_TO_SRGB_EXPONENT_DENOMINATOR                                    = 2.4;
     41 const float D3D10_FLOAT_TO_SRGB_EXPONENT_NUMERATOR                                      = 1.0;
     42 const float D3D10_FLOAT_TO_SRGB_OFFSET                                                  = 0.055;
     43 const float D3D10_FLOAT_TO_SRGB_SCALE_1                                                 = 12.92;
     44 const float D3D10_FLOAT_TO_SRGB_SCALE_2                                                 = 1.055;
     45 const float D3D10_FLOAT_TO_SRGB_THRESHOLD                                               = 0.0031308;
     46 const float D3D10_FTOI_INSTRUCTION_MAX_INPUT                                            = 2147483647.999;
     47 const float D3D10_FTOI_INSTRUCTION_MIN_INPUT                                            = -2147483648.999;
     48 const float D3D10_FTOU_INSTRUCTION_MAX_INPUT                                            = 4294967295.999;
     49 const float D3D10_FTOU_INSTRUCTION_MIN_INPUT                                            = 0.0;
     50 const float D3D10_LINEAR_GAMMA                                                          = 1.0;
     51 const float D3D10_MAX_BORDER_COLOR_COMPONENT                                            = 1.0;
     52 const float D3D10_MAX_DEPTH                                                             = 1.0;
     53 const float D3D10_MAX_POSITION_VALUE                                                    = 3.402823466e+34;
     54 const float D3D10_MIN_BORDER_COLOR_COMPONENT                                            = 0.0;
     55 const float D3D10_MIN_DEPTH                                                             = 0.0;
     56 const float D3D10_MIP_LOD_BIAS_MAX                                                      = 15.99;
     57 const float D3D10_MIP_LOD_BIAS_MIN                                                      = -16.0;
     58 const float D3D10_PS_PIXEL_CENTER_FRACTIONAL_COMPONENT                                  = 0.5;
     59 const float D3D10_MULTISAMPLE_ANTIALIAS_LINE_WIDTH                                      = 1.4;
     60 const float D3D10_SRGB_GAMMA                                                            = 2.2;
     61 const float D3D10_SRGB_TO_FLOAT_DENOMINATOR_1                                           = 12.92;
     62 const float D3D10_SRGB_TO_FLOAT_DENOMINATOR_2                                           = 1.055;
     63 const float D3D10_SRGB_TO_FLOAT_EXPONENT                                                = 2.4;
     64 const float D3D10_SRGB_TO_FLOAT_OFFSET                                                  = 0.055;
     65 const float D3D10_SRGB_TO_FLOAT_THRESHOLD                                               = 0.04045;
     66 const float D3D10_SRGB_TO_FLOAT_TOLERANCE_IN_ULP                                        = 0.5;
     67 const float D3D10_PS_LEGACY_PIXEL_CENTER_FRACTIONAL_COMPONENT                           = 0.0;
     68 const float D3D_SPEC_VERSION                                                            = 1.050005;
     69 const unsigned int D3D10_16BIT_INDEX_STRIP_CUT_VALUE                                    = 0xffff;
     70 const unsigned int D3D10_32BIT_INDEX_STRIP_CUT_VALUE                                    = 0xffffffff;
     71 const unsigned int D3D10_8BIT_INDEX_STRIP_CUT_VALUE                                     = 0xff;
     72 const unsigned int D3D10_ARRAY_AXIS_ADDRESS_RANGE_BIT_COUNT                             = 9;
     73 const unsigned int D3D10_CLIP_OR_CULL_DISTANCE_COUNT                                    = 8;
     74 const unsigned int D3D10_CLIP_OR_CULL_DISTANCE_ELEMENT_COUNT                            = 2;
     75 const unsigned int D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT                    = 14;
     76 const unsigned int D3D10_COMMONSHADER_CONSTANT_BUFFER_COMPONENTS                        = 4;
     77 const unsigned int D3D10_COMMONSHADER_CONSTANT_BUFFER_COMPONENT_BIT_COUNT               = 32;
     78 const unsigned int D3D10_COMMONSHADER_CONSTANT_BUFFER_HW_SLOT_COUNT                     = 15;
     79 const unsigned int D3D10_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COMPONENTS               = 4;
     80 const unsigned int D3D10_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COUNT                    = 15;
     81 const unsigned int D3D10_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READS_PER_INST           = 1;
     82 const unsigned int D3D10_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READ_PORTS               = 1;
     83 const unsigned int D3D10_COMMONSHADER_FLOWCONTROL_NESTING_LIMIT                         = 64;
     84 const unsigned int D3D10_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COMPONENTS     = 4;
     85 const unsigned int D3D10_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COUNT          = 1;
     86 const unsigned int D3D10_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READS_PER_INST = 1;
     87 const unsigned int D3D10_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READ_PORTS     = 1;
     88 const unsigned int D3D10_COMMONSHADER_IMMEDIATE_VALUE_COMPONENT_BIT_COUNT               = 32;
     89 const unsigned int D3D10_COMMONSHADER_INPUT_RESOURCE_REGISTER_COMPONENTS                = 1;
     90 const unsigned int D3D10_COMMONSHADER_INPUT_RESOURCE_REGISTER_COUNT                     = 128;
     91 const unsigned int D3D10_COMMONSHADER_INPUT_RESOURCE_REGISTER_READS_PER_INST            = 1;
     92 const unsigned int D3D10_COMMONSHADER_INPUT_RESOURCE_REGISTER_READ_PORTS                = 1;
     93 const unsigned int D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT                         = 128;
     94 const unsigned int D3D10_COMMONSHADER_SAMPLER_REGISTER_COMPONENTS                       = 1;
     95 const unsigned int D3D10_COMMONSHADER_SAMPLER_REGISTER_COUNT                            = 16;
     96 const unsigned int D3D10_COMMONSHADER_SAMPLER_REGISTER_READS_PER_INST                   = 1;
     97 const unsigned int D3D10_COMMONSHADER_SAMPLER_REGISTER_READ_PORTS                       = 1;
     98 const unsigned int D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT                                = 16;
     99 const unsigned int D3D10_COMMONSHADER_SUBROUTINE_NESTING_LIMIT                          = 32;
    100 const unsigned int D3D10_COMMONSHADER_TEMP_REGISTER_COMPONENTS                          = 4;
    101 const unsigned int D3D10_COMMONSHADER_TEMP_REGISTER_COMPONENT_BIT_COUNT                 = 32;
    102 const unsigned int D3D10_COMMONSHADER_TEMP_REGISTER_COUNT                               = 4096;
    103 const unsigned int D3D10_COMMONSHADER_TEMP_REGISTER_READS_PER_INST                      = 3;
    104 const unsigned int D3D10_COMMONSHADER_TEMP_REGISTER_READ_PORTS                          = 3;
    105 const unsigned int D3D10_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MAX                      = 10;
    106 const int D3D10_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MIN                               = -10;
    107 const int D3D10_COMMONSHADER_TEXEL_OFFSET_MAX_NEGATIVE                                  = -8;
    108 const unsigned int D3D10_COMMONSHADER_TEXEL_OFFSET_MAX_POSITIVE                         = 7;
    109 const unsigned int D3D10_DEFAULT_DEPTH_BIAS                                             = 0;
    110 const unsigned int D3D10_DEFAULT_RENDER_TARGET_ARRAY_INDEX                              = 0;
    111 const unsigned int D3D10_DEFAULT_SAMPLE_MASK                                            = 0xffffffff;
    112 const unsigned int D3D10_DEFAULT_SCISSOR_ENDX                                           = 0;
    113 const unsigned int D3D10_DEFAULT_SCISSOR_ENDY                                           = 0;
    114 const unsigned int D3D10_DEFAULT_SCISSOR_STARTX                                         = 0;
    115 const unsigned int D3D10_DEFAULT_SCISSOR_STARTY                                         = 0;
    116 const unsigned int D3D10_DEFAULT_STENCIL_READ_MASK                                      = 0xff;
    117 const unsigned int D3D10_DEFAULT_STENCIL_REFERENCE                                      = 0;
    118 const unsigned int D3D10_DEFAULT_STENCIL_WRITE_MASK                                     = 0xff;
    119 const unsigned int D3D10_DEFAULT_VIEWPORT_AND_SCISSORRECT_INDEX                         = 0;
    120 const unsigned int D3D10_DEFAULT_VIEWPORT_HEIGHT                                        = 0;
    121 const unsigned int D3D10_DEFAULT_VIEWPORT_TOPLEFTX                                      = 0;
    122 const unsigned int D3D10_DEFAULT_VIEWPORT_TOPLEFTY                                      = 0;
    123 const unsigned int D3D10_DEFAULT_VIEWPORT_WIDTH                                         = 0;
    124 const unsigned int D3D10_GS_INPUT_PRIM_CONST_REGISTER_COMPONENTS                        = 1;
    125 const unsigned int D3D10_GS_INPUT_PRIM_CONST_REGISTER_COMPONENT_BIT_COUNT               = 32;
    126 const unsigned int D3D10_GS_INPUT_PRIM_CONST_REGISTER_COUNT                             = 1;
    127 const unsigned int D3D10_GS_INPUT_PRIM_CONST_REGISTER_READS_PER_INST                    = 2;
    128 const unsigned int D3D10_GS_INPUT_PRIM_CONST_REGISTER_READ_PORTS                        = 1;
    129 const unsigned int D3D10_GS_INPUT_REGISTER_COMPONENTS                                   = 4;
    130 const unsigned int D3D10_GS_INPUT_REGISTER_COMPONENT_BIT_COUNT                          =32;
    131 const unsigned int D3D10_GS_INPUT_REGISTER_COUNT                                        = 16;
    132 const unsigned int D3D10_GS_INPUT_REGISTER_READS_PER_INST                               = 2;
    133 const unsigned int D3D10_GS_INPUT_REGISTER_READ_PORTS                                   = 1;
    134 const unsigned int D3D10_GS_INPUT_REGISTER_VERTICES                                     = 6;
    135 const unsigned int D3D10_GS_OUTPUT_ELEMENTS                                             = 32;
    136 const unsigned int D3D10_GS_OUTPUT_REGISTER_COMPONENTS                                  = 4;
    137 const unsigned int D3D10_GS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT                         = 32;
    138 const unsigned int D3D10_GS_OUTPUT_REGISTER_COUNT                                       = 32;
    139 const unsigned int D3D10_IA_DEFAULT_INDEX_BUFFER_OFFSET_IN_BYTES                        = 0;
    140 const unsigned int D3D10_IA_DEFAULT_PRIMITIVE_TOPOLOGY                                  = 0;
    141 const unsigned int D3D10_IA_DEFAULT_VERTEX_BUFFER_OFFSET_IN_BYTES                       = 0;
    142 const unsigned int D3D10_IA_INDEX_INPUT_RESOURCE_SLOT_COUNT                             = 1;
    143 const unsigned int D3D10_IA_INSTANCE_ID_BIT_COUNT                                       = 32;
    144 const unsigned int D3D10_IA_INTEGER_ARITHMETIC_BIT_COUNT                                = 32;
    145 const unsigned int D3D10_IA_PRIMITIVE_ID_BIT_COUNT                                      = 32;
    146 const unsigned int D3D10_IA_VERTEX_ID_BIT_COUNT                                         = 32;
    147 const unsigned int D3D10_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT                            = 16;
    148 const unsigned int D3D10_IA_VERTEX_INPUT_STRUCTURE_ELEMENTS_COMPONENTS                  = 64;
    149 const unsigned int D3D10_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT                        = 16;
    150 const unsigned int D3D10_INTEGER_DIVIDE_BY_ZERO_QUOTIENT                                = 0xffffffff;
    151 const unsigned int D3D10_INTEGER_DIVIDE_BY_ZERO_REMAINDER                               = 0xffffffff;
    152 const unsigned int D3D10_MAX_MAXANISOTROPY                                              = 16;
    153 const unsigned int D3D10_MAX_MULTISAMPLE_SAMPLE_COUNT                                   = 32;
    154 const unsigned int D3D10_MAX_TEXTURE_DIMENSION_2_TO_EXP                                 = 17;
    155 const unsigned int D3D10_MIN_MAXANISOTROPY                                              = 0;
    156 const unsigned int D3D10_MIP_LOD_FRACTIONAL_BIT_COUNT                                   = 6;
    157 const unsigned int D3D10_MIP_LOD_RANGE_BIT_COUNT                                        = 8;
    158 const unsigned int D3D10_NONSAMPLE_FETCH_OUT_OF_RANGE_ACCESS_RESULT                     = 0;
    159 const unsigned int D3D10_PIXEL_ADDRESS_RANGE_BIT_COUNT                                  = 13;
    160 const unsigned int D3D10_PRE_SCISSOR_PIXEL_ADDRESS_RANGE_BIT_COUNT                      = 15;
    161 const unsigned int D3D10_PS_FRONTFACING_DEFAULT_VALUE                                   = 0xffffffff;
    162 const unsigned int D3D10_PS_FRONTFACING_FALSE_VALUE                                     = 0;
    163 const unsigned int D3D10_PS_FRONTFACING_TRUE_VALUE                                      = 0xffffffff;
    164 const unsigned int D3D10_PS_INPUT_REGISTER_COMPONENTS                                   = 4;
    165 const unsigned int D3D10_PS_INPUT_REGISTER_COMPONENT_BIT_COUNT                          = 32;
    166 const unsigned int D3D10_PS_INPUT_REGISTER_COUNT                                        = 32;
    167 const unsigned int D3D10_PS_INPUT_REGISTER_READS_PER_INST                               = 2;
    168 const unsigned int D3D10_PS_INPUT_REGISTER_READ_PORTS                                   = 1;
    169 const unsigned int D3D10_PS_OUTPUT_DEPTH_REGISTER_COMPONENTS                            = 1;
    170 const unsigned int D3D10_PS_OUTPUT_DEPTH_REGISTER_COMPONENT_BIT_COUNT                   = 32;
    171 const unsigned int D3D10_PS_OUTPUT_DEPTH_REGISTER_COUNT                                 = 1;
    172 const unsigned int D3D10_PS_OUTPUT_REGISTER_COMPONENTS                                  = 4;
    173 const unsigned int D3D10_PS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT                         = 32;
    174 const unsigned int D3D10_PS_OUTPUT_REGISTER_COUNT                                       = 8;
    175 const unsigned int D3D10_REQ_BLEND_OBJECT_COUNT_PER_CONTEXT                             = 4096;
    176 const unsigned int D3D10_REQ_BUFFER_RESOURCE_TEXEL_COUNT_2_TO_EXP                       = 27;
    177 const unsigned int D3D10_REQ_CONSTANT_BUFFER_ELEMENT_COUNT                              = 4096;
    178 const unsigned int D3D10_REQ_DEPTH_STENCIL_OBJECT_COUNT_PER_CONTEXT                     = 4096;
    179 const unsigned int D3D10_REQ_DRAWINDEXED_INDEX_COUNT_2_TO_EXP                           = 32;
    180 const unsigned int D3D10_REQ_DRAW_VERTEX_COUNT_2_TO_EXP                                 = 32;
    181 const unsigned int D3D10_REQ_FILTERING_HW_ADDRESSABLE_RESOURCE_DIMENSION                = 8192;
    182 const unsigned int D3D10_REQ_GS_INVOCATION_32BIT_OUTPUT_COMPONENT_LIMIT                 = 1024;
    183 const unsigned int D3D10_REQ_IMMEDIATE_CONSTANT_BUFFER_ELEMENT_COUNT                    = 4096;
    184 const unsigned int D3D10_REQ_MAXANISOTROPY                                              = 16;
    185 const unsigned int D3D10_REQ_MIP_LEVELS                                                 = 14;
    186 const unsigned int D3D10_REQ_MULTI_ELEMENT_STRUCTURE_SIZE_IN_BYTES                      = 2048;
    187 const unsigned int D3D10_REQ_RASTERIZER_OBJECT_COUNT_PER_CONTEXT                        = 4096;
    188 const unsigned int D3D10_REQ_RENDER_TO_BUFFER_WINDOW_WIDTH                              = 8192;
    189 const unsigned int D3D10_REQ_RESOURCE_SIZE_IN_MEGABYTES                                 = 128;
    190 const unsigned int D3D10_REQ_RESOURCE_VIEW_COUNT_PER_CONTEXT_2_TO_EXP                   = 20;
    191 const unsigned int D3D10_REQ_SAMPLER_OBJECT_COUNT_PER_CONTEXT                           = 4096;
    192 const unsigned int D3D10_REQ_TEXTURE1D_ARRAY_AXIS_DIMENSION                             = 512;
    193 const unsigned int D3D10_REQ_TEXTURE1D_U_DIMENSION                                      = 8192;
    194 const unsigned int D3D10_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION                             = 512;
    195 const unsigned int D3D10_REQ_TEXTURE2D_U_OR_V_DIMENSION                                 = 8192;
    196 const unsigned int D3D10_REQ_TEXTURE3D_U_V_OR_W_DIMENSION                               = 2048;
    197 const unsigned int D3D10_REQ_TEXTURECUBE_DIMENSION                                      = 8192;
    198 const unsigned int D3D10_RESINFO_INSTRUCTION_MISSING_COMPONENT_RETVAL                   = 0;
    199 const unsigned int D3D10_SHADER_MAJOR_VERSION                                           = 4;
    200 const unsigned int D3D10_SHADER_MINOR_VERSION                                           = 0;
    201 const unsigned int D3D10_SHIFT_INSTRUCTION_PAD_VALUE                                    = 0;
    202 const unsigned int D3D10_SHIFT_INSTRUCTION_SHIFT_VALUE_BIT_COUNT                        = 5;
    203 const unsigned int D3D10_SIMULTANEOUS_RENDER_TARGET_COUNT                               = 8;
    204 const unsigned int D3D10_SO_BUFFER_MAX_STRIDE_IN_BYTES                                  = 2048;
    205 const unsigned int D3D10_SO_BUFFER_MAX_WRITE_WINDOW_IN_BYTES                            = 256;
    206 const unsigned int D3D10_SO_BUFFER_SLOT_COUNT                                           = 4;
    207 const unsigned int D3D10_SO_DDI_REGISTER_INDEX_DENOTING_GAP                             = 0xffffffff;
    208 const unsigned int D3D10_SO_MULTIPLE_BUFFER_ELEMENTS_PER_BUFFER                         = 1;
    209 const unsigned int D3D10_SO_SINGLE_BUFFER_COMPONENT_LIMIT                               = 64;
    210 const unsigned int D3D10_STANDARD_COMPONENT_BIT_COUNT                                   = 32;
    211 const unsigned int D3D10_STANDARD_COMPONENT_BIT_COUNT_DOUBLED                           = 64;
    212 const unsigned int D3D10_STANDARD_MAXIMUM_ELEMENT_ALIGNMENT_BYTE_MULTIPLE               = 4;
    213 const unsigned int D3D10_STANDARD_PIXEL_COMPONENT_COUNT                                 = 128;
    214 const unsigned int D3D10_STANDARD_PIXEL_ELEMENT_COUNT                                   = 32;
    215 const unsigned int D3D10_STANDARD_VECTOR_SIZE                                           = 4;
    216 const unsigned int D3D10_STANDARD_VERTEX_ELEMENT_COUNT                                  = 16;
    217 const unsigned int D3D10_STANDARD_VERTEX_TOTAL_COMPONENT_COUNT                          = 64;
    218 const unsigned int D3D10_SUBPIXEL_FRACTIONAL_BIT_COUNT                                  = 8;
    219 const unsigned int D3D10_SUBTEXEL_FRACTIONAL_BIT_COUNT                                  = 6;
    220 const unsigned int D3D10_TEXEL_ADDRESS_RANGE_BIT_COUNT                                  = 18;
    221 const unsigned int D3D10_UNBOUND_MEMORY_ACCESS_RESULT                                   = 0;
    222 const unsigned int D3D10_VIEWPORT_AND_SCISSORRECT_MAX_INDEX                             = 15;
    223 const unsigned int D3D10_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE             = 16;
    224 const unsigned int D3D10_VIEWPORT_BOUNDS_MAX                                            = 16383;
    225 const int D3D10_VIEWPORT_BOUNDS_MIN                                                     = -16384;
    226 const unsigned int D3D10_VS_INPUT_REGISTER_COMPONENTS                                   = 4;
    227 const unsigned int D3D10_VS_INPUT_REGISTER_COMPONENT_BIT_COUNT                          = 32;
    228 const unsigned int D3D10_VS_INPUT_REGISTER_COUNT                                        = 16;
    229 const unsigned int D3D10_VS_INPUT_REGISTER_READS_PER_INST                               = 2;
    230 const unsigned int D3D10_VS_INPUT_REGISTER_READ_PORTS                                   = 1;
    231 const unsigned int D3D10_VS_OUTPUT_REGISTER_COMPONENTS                                  = 4;
    232 const unsigned int D3D10_VS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT                         = 32;
    233 const unsigned int D3D10_VS_OUTPUT_REGISTER_COUNT                                       = 16;
    234 const unsigned int D3D10_WHQL_CONTEXT_COUNT_FOR_RESOURCE_LIMIT                          = 10;
    235 const unsigned int D3D10_WHQL_DRAWINDEXED_INDEX_COUNT_2_TO_EXP                          = 25;
    236 const unsigned int D3D10_WHQL_DRAW_VERTEX_COUNT_2_TO_EXP                                = 25;
    237 const unsigned int D3D_MAJOR_VERSION                                                    = 10;
    238 const unsigned int D3D_MINOR_VERSION                                                    = 0;
    239 const unsigned int D3D_SPEC_DATE_DAY                                                    = 8;
    240 const unsigned int D3D_SPEC_DATE_MONTH                                                  = 8;
    241 const unsigned int D3D_SPEC_DATE_YEAR                                                   = 2006;
    242 cpp_quote("#endif")
    243 
    244 const unsigned int D3D10_APPEND_ALIGNED_ELEMENT                                         = 0xffffffff;
    245 const unsigned int _FACD3D10                                                            = 0x87;
    246 const unsigned int _FACD3D10DEBUG                                                       = _FACD3D10 + 1;
    247 const unsigned int D3D10_FILTER_TYPE_MASK                                               = 0x3;
    248 const unsigned int D3D10_SDK_VERSION                                                    = 29;
    249 
    250 cpp_quote("#define MAKE_D3D10_HRESULT(code)                   MAKE_HRESULT( 1, _FACD3D10, code)")
    251 cpp_quote("#define MAKE_D3D10_STATUS(code)                    MAKE_HRESULT( 0, _FACD3D10, code)")
    252 cpp_quote("#define D3D10_ERROR_TOO_MANY_UNIQUE_STATE_OBJECTS  MAKE_D3D10_HRESULT(1)")
    253 cpp_quote("#define D3D10_ERROR_FILE_NOT_FOUND                 MAKE_D3D10_HRESULT(2)")
    254 
    255 typedef enum D3D10_BLEND {
    256     D3D10_BLEND_ZERO             = 1,
    257     D3D10_BLEND_ONE              = 2,
    258     D3D10_BLEND_SRC_COLOR        = 3,
    259     D3D10_BLEND_INV_SRC_COLOR    = 4,
    260     D3D10_BLEND_SRC_ALPHA        = 5,
    261     D3D10_BLEND_INV_SRC_ALPHA    = 6,
    262     D3D10_BLEND_DEST_ALPHA       = 7,
    263     D3D10_BLEND_INV_DEST_ALPHA   = 8,
    264     D3D10_BLEND_DEST_COLOR       = 9,
    265     D3D10_BLEND_INV_DEST_COLOR   = 10,
    266     D3D10_BLEND_SRC_ALPHA_SAT    = 11,
    267     D3D10_BLEND_BLEND_FACTOR     = 14,
    268     D3D10_BLEND_INV_BLEND_FACTOR = 15,
    269     D3D10_BLEND_SRC1_COLOR       = 16,
    270     D3D10_BLEND_INV_SRC1_COLOR   = 17,
    271     D3D10_BLEND_SRC1_ALPHA       = 18,
    272     D3D10_BLEND_INV_SRC1_ALPHA   = 19
    273 } D3D10_BLEND;
    274 
    275 typedef enum D3D10_BLEND_OP {
    276     D3D10_BLEND_OP_ADD = 1,
    277     D3D10_BLEND_OP_SUBTRACT,
    278     D3D10_BLEND_OP_REV_SUBTRACT,
    279     D3D10_BLEND_OP_MIN,
    280     D3D10_BLEND_OP_MAX,
    281 } D3D10_BLEND_OP;
    282 
    283 typedef struct D3D10_BLEND_DESC {
    284     BOOL AlphaToCoverageEnable;
    285     BOOL BlendEnable[8];
    286     D3D10_BLEND SrcBlend;
    287     D3D10_BLEND DestBlend;
    288     D3D10_BLEND_OP BlendOp;
    289     D3D10_BLEND SrcBlendAlpha;
    290     D3D10_BLEND DestBlendAlpha;
    291     D3D10_BLEND_OP BlendOpAlpha;
    292     UINT8 RenderTargetWriteMask[8];
    293 } D3D10_BLEND_DESC;
    294 
    295 typedef enum D3D10_DEPTH_WRITE_MASK {
    296     D3D10_DEPTH_WRITE_MASK_ZERO,
    297     D3D10_DEPTH_WRITE_MASK_ALL,
    298 } D3D10_DEPTH_WRITE_MASK;
    299 
    300 typedef enum D3D10_COMPARISON_FUNC {
    301     D3D10_COMPARISON_NEVER = 1,
    302     D3D10_COMPARISON_LESS,
    303     D3D10_COMPARISON_EQUAL,
    304     D3D10_COMPARISON_LESS_EQUAL,
    305     D3D10_COMPARISON_GREATER,
    306     D3D10_COMPARISON_NOT_EQUAL,
    307     D3D10_COMPARISON_GREATER_EQUAL,
    308     D3D10_COMPARISON_ALWAYS,
    309 } D3D10_COMPARISON_FUNC;
    310 
    311 typedef enum D3D10_STENCIL_OP {
    312     D3D10_STENCIL_OP_KEEP = 1,
    313     D3D10_STENCIL_OP_ZERO,
    314     D3D10_STENCIL_OP_REPLACE,
    315     D3D10_STENCIL_OP_INCR_SAT,
    316     D3D10_STENCIL_OP_DECR_SAT,
    317     D3D10_STENCIL_OP_INVERT,
    318     D3D10_STENCIL_OP_INCR,
    319     D3D10_STENCIL_OP_DECR,
    320 } D3D10_STENCIL_OP;
    321 
    322 typedef struct D3D10_DEPTH_STENCILOP_DESC {
    323     D3D10_STENCIL_OP StencilFailOp;
    324     D3D10_STENCIL_OP StencilDepthFailOp;
    325     D3D10_STENCIL_OP StencilPassOp;
    326     D3D10_COMPARISON_FUNC StencilFunc;
    327 } D3D10_DEPTH_STENCILOP_DESC;
    328 
    329 typedef struct D3D10_DEPTH_STENCIL_DESC {
    330     BOOL DepthEnable;
    331     D3D10_DEPTH_WRITE_MASK DepthWriteMask;
    332     D3D10_COMPARISON_FUNC DepthFunc;
    333     BOOL StencilEnable;
    334     UINT8 StencilReadMask;
    335     UINT8 StencilWriteMask;
    336     D3D10_DEPTH_STENCILOP_DESC FrontFace;
    337     D3D10_DEPTH_STENCILOP_DESC BackFace;
    338 } D3D10_DEPTH_STENCIL_DESC;
    339 
    340 typedef enum D3D10_FILL_MODE {
    341     D3D10_FILL_WIREFRAME = 2,
    342     D3D10_FILL_SOLID,
    343 } D3D10_FILL_MODE;
    344 
    345 typedef enum D3D10_CULL_MODE {
    346     D3D10_CULL_NONE = 1,
    347     D3D10_CULL_FRONT,
    348     D3D10_CULL_BACK,
    349 } D3D10_CULL_MODE;
    350 
    351 typedef struct D3D10_RASTERIZER_DESC {
    352     D3D10_FILL_MODE FillMode;
    353     D3D10_CULL_MODE CullMode;
    354     BOOL FrontCounterClockwise;
    355     INT DepthBias;
    356     FLOAT DepthBiasClamp;
    357     FLOAT SlopeScaledDepthBias;
    358     BOOL DepthClipEnable;
    359     BOOL ScissorEnable;
    360     BOOL MultisampleEnable;
    361     BOOL AntialiasedLineEnable;
    362 } D3D10_RASTERIZER_DESC;
    363 
    364 typedef enum D3D10_FILTER {
    365     D3D10_FILTER_MIN_MAG_MIP_POINT                          = 0,
    366     D3D10_FILTER_MIN_MAG_POINT_MIP_LINEAR                   = 0x1,
    367     D3D10_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT             = 0x4,
    368     D3D10_FILTER_MIN_POINT_MAG_MIP_LINEAR                   = 0x5,
    369     D3D10_FILTER_MIN_LINEAR_MAG_MIP_POINT                   = 0x10,
    370     D3D10_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR            = 0x11,
    371     D3D10_FILTER_MIN_MAG_LINEAR_MIP_POINT                   = 0x14,
    372     D3D10_FILTER_MIN_MAG_MIP_LINEAR                         = 0x15,
    373     D3D10_FILTER_ANISOTROPIC                                = 0x55,
    374     D3D10_FILTER_COMPARISON_MIN_MAG_MIP_POINT               = 0x80,
    375     D3D10_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR        = 0x81,
    376     D3D10_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT  = 0x84,
    377     D3D10_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR        = 0x85,
    378     D3D10_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT        = 0x90,
    379     D3D10_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x91,
    380     D3D10_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT        = 0x94,
    381     D3D10_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR              = 0x95,
    382     D3D10_FILTER_COMPARISON_ANISOTROPIC                     = 0xd5,
    383     D3D10_FILTER_TEXT_1BIT                                  = 0x80000000
    384 } D3D10_FILTER;
    385 
    386 typedef enum D3D10_TEXTURE_ADDRESS_MODE {
    387     D3D10_TEXTURE_ADDRESS_WRAP = 1,
    388     D3D10_TEXTURE_ADDRESS_MIRROR,
    389     D3D10_TEXTURE_ADDRESS_CLAMP,
    390     D3D10_TEXTURE_ADDRESS_BORDER,
    391     D3D10_TEXTURE_ADDRESS_MIRROR_ONCE,
    392 } D3D10_TEXTURE_ADDRESS_MODE;
    393 
    394 typedef struct D3D10_SAMPLER_DESC {
    395     D3D10_FILTER Filter;
    396     D3D10_TEXTURE_ADDRESS_MODE AddressU;
    397     D3D10_TEXTURE_ADDRESS_MODE AddressV;
    398     D3D10_TEXTURE_ADDRESS_MODE AddressW;
    399     FLOAT MipLODBias;
    400     UINT MaxAnisotropy;
    401     D3D10_COMPARISON_FUNC ComparisonFunc;
    402     FLOAT BorderColor[4];
    403     FLOAT MinLOD;
    404     FLOAT MaxLOD;
    405 } D3D10_SAMPLER_DESC;
    406 
    407 typedef enum D3D10_COUNTER {
    408     D3D10_COUNTER_GPU_IDLE,
    409     D3D10_COUNTER_VERTEX_PROCESSING,
    410     D3D10_COUNTER_GEOMETRY_PROCESSING,
    411     D3D10_COUNTER_PIXEL_PROCESSING,
    412     D3D10_COUNTER_OTHER_GPU_PROCESSING,
    413     D3D10_COUNTER_HOST_ADAPTER_BANDWIDTH_UTILIZATION,
    414     D3D10_COUNTER_LOCAL_VIDMEM_BANDWIDTH_UTILIZATION,
    415     D3D10_COUNTER_VERTEX_THROUGHPUT_UTILIZATION,
    416     D3D10_COUNTER_TRIANGLE_SETUP_THROUGHPUT_UTILIZATION,
    417     D3D10_COUNTER_FILLRATE_THROUGHPUT_UTILIZATION,
    418     D3D10_COUNTER_VS_MEMORY_LIMITED,
    419     D3D10_COUNTER_VS_COMPUTATION_LIMITED,
    420     D3D10_COUNTER_GS_MEMORY_LIMITED,
    421     D3D10_COUNTER_GS_COMPUTATION_LIMITED,
    422     D3D10_COUNTER_PS_MEMORY_LIMITED,
    423     D3D10_COUNTER_PS_COMPUTATION_LIMITED,
    424     D3D10_COUNTER_POST_TRANSFORM_CACHE_HIT_RATE,
    425     D3D10_COUNTER_TEXTURE_CACHE_HIT_RATE,
    426     D3D10_COUNTER_DEVICE_DEPENDENT_0 = 0x40000000
    427 } D3D10_COUNTER;
    428 
    429 typedef struct D3D10_COUNTER_DESC {
    430     D3D10_COUNTER Counter;
    431     UINT MiscFlags;
    432 } D3D10_COUNTER_DESC;
    433 
    434 typedef enum D3D10_COUNTER_TYPE {
    435     D3D10_COUNTER_TYPE_FLOAT32,
    436     D3D10_COUNTER_TYPE_UINT16,
    437     D3D10_COUNTER_TYPE_UINT32,
    438     D3D10_COUNTER_TYPE_UINT64,
    439 } D3D10_COUNTER_TYPE;
    440 
    441 typedef struct D3D10_COUNTER_INFO {
    442     D3D10_COUNTER LastDeviceDependentCounter;
    443     UINT NumSimultaneousCounters;
    444     UINT8 NumDetectableParallelUnits;
    445 } D3D10_COUNTER_INFO;
    446 
    447 typedef enum D3D10_RESOURCE_DIMENSION {
    448     D3D10_RESOURCE_DIMENSION_UNKNOWN,
    449     D3D10_RESOURCE_DIMENSION_BUFFER,
    450     D3D10_RESOURCE_DIMENSION_TEXTURE1D,
    451     D3D10_RESOURCE_DIMENSION_TEXTURE2D,
    452     D3D10_RESOURCE_DIMENSION_TEXTURE3D,
    453 } D3D10_RESOURCE_DIMENSION;
    454 
    455 typedef enum D3D10_USAGE {
    456     D3D10_USAGE_DEFAULT,
    457     D3D10_USAGE_IMMUTABLE,
    458     D3D10_USAGE_DYNAMIC,
    459     D3D10_USAGE_STAGING,
    460 } D3D10_USAGE;
    461 
    462 typedef enum D3D10_BIND_FLAG {
    463     D3D10_BIND_VERTEX_BUFFER   = 0x1,
    464     D3D10_BIND_INDEX_BUFFER    = 0x2,
    465     D3D10_BIND_CONSTANT_BUFFER = 0x4,
    466     D3D10_BIND_SHADER_RESOURCE = 0x8,
    467     D3D10_BIND_STREAM_OUTPUT   = 0x10,
    468     D3D10_BIND_RENDER_TARGET   = 0x20,
    469     D3D10_BIND_DEPTH_STENCIL   = 0x40
    470 } D3D10_BIND_FLAG;
    471 
    472 typedef struct D3D10_BUFFER_DESC {
    473     UINT ByteWidth;
    474     D3D10_USAGE Usage;
    475     UINT BindFlags;
    476     UINT CPUAccessFlags;
    477     UINT MiscFlags;
    478 } D3D10_BUFFER_DESC;
    479 
    480 cpp_quote("#if !defined(D3D10_NO_HELPERS) && defined(__cplusplus)")
    481 cpp_quote("struct CD3D10_BUFFER_DESC : public D3D10_BUFFER_DESC {")
    482 cpp_quote("    CD3D10_BUFFER_DESC() {}" )
    483 cpp_quote("    explicit CD3D10_BUFFER_DESC(const D3D10_BUFFER_DESC &o) : D3D10_BUFFER_DESC(o) {}")
    484 cpp_quote("    explicit CD3D10_BUFFER_DESC(UINT byteWidth, UINT bindFlags, D3D10_USAGE usage = D3D10_USAGE_DEFAULT, UINT cpuaccessFlags = 0, UINT miscFlags = 0 ) {")
    485 cpp_quote("        ByteWidth = byteWidth;")
    486 cpp_quote("        Usage = usage;")
    487 cpp_quote("        BindFlags = bindFlags;")
    488 cpp_quote("        CPUAccessFlags = cpuaccessFlags;")
    489 cpp_quote("        MiscFlags = miscFlags;")
    490 cpp_quote("    }")
    491 cpp_quote("    ~CD3D10_BUFFER_DESC() {}")
    492 cpp_quote("    operator const D3D10_BUFFER_DESC&() const {")
    493 cpp_quote("        return *this;")
    494 cpp_quote("    }")
    495 cpp_quote("};")
    496 cpp_quote("#endif")
    497 
    498 typedef enum D3D10_MAP {
    499     D3D10_MAP_READ = 1,
    500     D3D10_MAP_WRITE,
    501     D3D10_MAP_READ_WRITE,
    502     D3D10_MAP_WRITE_DISCARD,
    503     D3D10_MAP_WRITE_NO_OVERWRITE,
    504 } D3D10_MAP;
    505 
    506 typedef struct D3D10_TEXTURE1D_DESC {
    507     UINT Width;
    508     UINT MipLevels;
    509     UINT ArraySize;
    510     DXGI_FORMAT Format;
    511     D3D10_USAGE Usage;
    512     UINT BindFlags;
    513     UINT CPUAccessFlags;
    514     UINT MiscFlags;
    515 } D3D10_TEXTURE1D_DESC;
    516 
    517 cpp_quote("#if !defined(D3D10_NO_HELPERS) && defined(__cplusplus)")
    518 cpp_quote("struct CD3D10_TEXTURE1D_DESC : public D3D10_TEXTURE1D_DESC {")
    519 cpp_quote("    CD3D10_TEXTURE1D_DESC() {}")
    520 cpp_quote("    explicit CD3D10_TEXTURE1D_DESC(const D3D10_TEXTURE1D_DESC &o) : D3D10_TEXTURE1D_DESC(o) {}")
    521 cpp_quote("    explicit CD3D10_TEXTURE1D_DESC(DXGI_FORMAT format, UINT width, UINT arraySize = 1, UINT mipLevels = 0,")
    522 cpp_quote("        UINT bindFlags = D3D10_BIND_SHADER_RESOURCE, D3D10_USAGE usage = D3D10_USAGE_DEFAULT, UINT cpuaccessFlags = 0,")
    523 cpp_quote("        UINT miscFlags = 0) {")
    524 cpp_quote("        Width = width;")
    525 cpp_quote("        MipLevels = mipLevels;")
    526 cpp_quote("        ArraySize = arraySize;")
    527 cpp_quote("        Format = format;")
    528 cpp_quote("        Usage = usage;")
    529 cpp_quote("        BindFlags = bindFlags;")
    530 cpp_quote("        CPUAccessFlags = cpuaccessFlags;")
    531 cpp_quote("        MiscFlags = miscFlags;")
    532 cpp_quote("    }")
    533 cpp_quote("    ~CD3D10_TEXTURE1D_DESC() {}")
    534 cpp_quote("    operator const D3D10_TEXTURE1D_DESC&() const {")
    535 cpp_quote("        return *this;")
    536 cpp_quote("    }")
    537 cpp_quote("};")
    538 cpp_quote("#endif")
    539 
    540 typedef struct D3D10_TEXTURE2D_DESC {
    541     UINT Width;
    542     UINT Height;
    543     UINT MipLevels;
    544     UINT ArraySize;
    545     DXGI_FORMAT Format;
    546     DXGI_SAMPLE_DESC SampleDesc;
    547     D3D10_USAGE Usage;
    548     UINT BindFlags;
    549     UINT CPUAccessFlags;
    550     UINT MiscFlags;
    551 } D3D10_TEXTURE2D_DESC;
    552 
    553 cpp_quote("#if !defined(D3D10_NO_HELPERS) && defined(__cplusplus)")
    554 cpp_quote("struct CD3D10_TEXTURE2D_DESC : public D3D10_TEXTURE2D_DESC {")
    555 cpp_quote("    CD3D10_TEXTURE2D_DESC() {}" )
    556 cpp_quote("    explicit CD3D10_TEXTURE2D_DESC(const D3D10_TEXTURE2D_DESC &o) : D3D10_TEXTURE2D_DESC(o) {}")
    557 cpp_quote("    explicit CD3D10_TEXTURE2D_DESC(DXGI_FORMAT format, UINT width, UINT height,")
    558 cpp_quote("            UINT arraySize = 1,")
    559 cpp_quote("            UINT mipLevels = 0,")
    560 cpp_quote("            UINT bindFlags = D3D10_BIND_SHADER_RESOURCE,")
    561 cpp_quote("            D3D10_USAGE usage = D3D10_USAGE_DEFAULT,")
    562 cpp_quote("            UINT cpuaccessFlags = 0,")
    563 cpp_quote("            UINT sampleCount = 1,")
    564 cpp_quote("            UINT sampleQuality = 0,")
    565 cpp_quote("            UINT miscFlags = 0) {")
    566 cpp_quote("        Width = width;" )
    567 cpp_quote("        Height = height;" )
    568 cpp_quote("        MipLevels = mipLevels;" )
    569 cpp_quote("        ArraySize = arraySize;" )
    570 cpp_quote("        Format = format;" )
    571 cpp_quote("        SampleDesc.Count = sampleCount;" )
    572 cpp_quote("        SampleDesc.Quality = sampleQuality;" )
    573 cpp_quote("        Usage = usage;" )
    574 cpp_quote("        BindFlags = bindFlags;" )
    575 cpp_quote("        CPUAccessFlags = cpuaccessFlags;" )
    576 cpp_quote("        MiscFlags = miscFlags;" )
    577 cpp_quote("    }")
    578 cpp_quote("    ~CD3D10_TEXTURE2D_DESC() {}")
    579 cpp_quote("    operator const D3D10_TEXTURE2D_DESC&() const {")
    580 cpp_quote("        return *this;")
    581 cpp_quote("    }")
    582 cpp_quote("};")
    583 cpp_quote("#endif")
    584 
    585 typedef struct D3D10_TEXTURE3D_DESC {
    586     UINT Width;
    587     UINT Height;
    588     UINT Depth;
    589     UINT MipLevels;
    590     DXGI_FORMAT Format;
    591     D3D10_USAGE Usage;
    592     UINT BindFlags;
    593     UINT CPUAccessFlags;
    594     UINT MiscFlags;
    595 } D3D10_TEXTURE3D_DESC;
    596 
    597 typedef enum D3D10_DSV_DIMENSION
    598 {
    599     D3D10_DSV_DIMENSION_UNKNOWN,
    600     D3D10_DSV_DIMENSION_TEXTURE1D,
    601     D3D10_DSV_DIMENSION_TEXTURE1DARRAY,
    602     D3D10_DSV_DIMENSION_TEXTURE2D,
    603     D3D10_DSV_DIMENSION_TEXTURE2DARRAY,
    604     D3D10_DSV_DIMENSION_TEXTURE2DMS,
    605     D3D10_DSV_DIMENSION_TEXTURE2DMSARRAY,
    606 } D3D10_DSV_DIMENSION;
    607 
    608 typedef struct D3D10_TEX1D_DSV {
    609     UINT MipSlice;
    610 } D3D10_TEX1D_DSV;
    611 
    612 typedef struct D3D10_TEX1D_ARRAY_DSV {
    613     UINT MipSlice;
    614     UINT FirstArraySlice;
    615     UINT ArraySize;
    616 } D3D10_TEX1D_ARRAY_DSV;
    617 
    618 typedef struct D3D10_TEX2D_DSV {
    619     UINT MipSlice;
    620 } D3D10_TEX2D_DSV;
    621 
    622 typedef struct D3D10_TEX2D_ARRAY_DSV {
    623     UINT MipSlice;
    624     UINT FirstArraySlice;
    625     UINT ArraySize;
    626 } D3D10_TEX2D_ARRAY_DSV;
    627 
    628 typedef struct D3D10_TEX2DMS_DSV {
    629     UINT UnusedField_NothingToDefine;
    630 } D3D10_TEX2DMS_DSV;
    631 
    632 typedef struct D3D10_TEX2DMS_ARRAY_DSV {
    633     UINT FirstArraySlice;
    634     UINT ArraySize;
    635 } D3D10_TEX2DMS_ARRAY_DSV;
    636 
    637 typedef struct D3D10_DEPTH_STENCIL_VIEW_DESC {
    638     DXGI_FORMAT Format;
    639     D3D10_DSV_DIMENSION ViewDimension;
    640     union {
    641         D3D10_TEX1D_DSV Texture1D;
    642         D3D10_TEX1D_ARRAY_DSV Texture1DArray;
    643         D3D10_TEX2D_DSV Texture2D;
    644         D3D10_TEX2D_ARRAY_DSV Texture2DArray;
    645         D3D10_TEX2DMS_DSV Texture2DMS;
    646         D3D10_TEX2DMS_ARRAY_DSV Texture2DMSArray;
    647     };
    648 } D3D10_DEPTH_STENCIL_VIEW_DESC;
    649 
    650 typedef enum D3D10_RTV_DIMENSION {
    651     D3D10_RTV_DIMENSION_UNKNOWN,
    652     D3D10_RTV_DIMENSION_BUFFER,
    653     D3D10_RTV_DIMENSION_TEXTURE1D,
    654     D3D10_RTV_DIMENSION_TEXTURE1DARRAY,
    655     D3D10_RTV_DIMENSION_TEXTURE2D,
    656     D3D10_RTV_DIMENSION_TEXTURE2DARRAY,
    657     D3D10_RTV_DIMENSION_TEXTURE2DMS,
    658     D3D10_RTV_DIMENSION_TEXTURE2DMSARRAY,
    659     D3D10_RTV_DIMENSION_TEXTURE3D,
    660 } D3D10_RTV_DIMENSION;
    661 
    662 typedef struct D3D10_BUFFER_RTV {
    663     UINT ElementOffset;
    664     UINT ElementWidth;
    665 } D3D10_BUFFER_RTV;
    666 
    667 typedef struct D3D10_TEX1D_RTV {
    668     UINT MipSlice;
    669 } D3D10_TEX1D_RTV;
    670 
    671 typedef struct D3D10_TEX1D_ARRAY_RTV {
    672     UINT MipSlice;
    673     UINT FirstArraySlice;
    674     UINT ArraySize;
    675 } D3D10_TEX1D_ARRAY_RTV;
    676 
    677 typedef struct D3D10_TEX2D_RTV {
    678     UINT MipSlice;
    679 } D3D10_TEX2D_RTV;
    680 
    681 typedef struct D3D10_TEX2D_ARRAY_RTV {
    682     UINT MipSlice;
    683     UINT FirstArraySlice;
    684     UINT ArraySize;
    685 } D3D10_TEX2D_ARRAY_RTV;
    686 
    687 typedef struct D3D10_TEX2DMS_RTV {
    688     UINT UnusedField_NothingToDefine;
    689 } D3D10_TEX2DMS_RTV;
    690 
    691 typedef struct D3D10_TEX2DMS_ARRAY_RTV {
    692     UINT FirstArraySlice;
    693     UINT ArraySize;
    694 } D3D10_TEX2DMS_ARRAY_RTV;
    695 
    696 typedef struct D3D10_TEX3D_RTV {
    697     UINT MipSlice;
    698     UINT FirstWSlice;
    699     UINT WSize;
    700 } D3D10_TEX3D_RTV;
    701 
    702 typedef struct D3D10_RENDER_TARGET_VIEW_DESC {
    703     DXGI_FORMAT Format;
    704     D3D10_RTV_DIMENSION ViewDimension;
    705     union {
    706         D3D10_BUFFER_RTV Buffer;
    707         D3D10_TEX1D_RTV Texture1D;
    708         D3D10_TEX1D_ARRAY_RTV Texture1DArray;
    709         D3D10_TEX2D_RTV Texture2D;
    710         D3D10_TEX2D_ARRAY_RTV Texture2DArray;
    711         D3D10_TEX2DMS_RTV Texture2DMS;
    712         D3D10_TEX2DMS_ARRAY_RTV Texture2DMSArray;
    713         D3D10_TEX3D_RTV Texture3D;
    714     };
    715 } D3D10_RENDER_TARGET_VIEW_DESC;
    716 
    717 typedef D3D_SRV_DIMENSION D3D10_SRV_DIMENSION;
    718 
    719 typedef struct D3D10_BUFFER_SRV {
    720     UINT ElementOffset;
    721     UINT ElementWidth;
    722 } D3D10_BUFFER_SRV;
    723 
    724 typedef struct D3D10_TEX1D_SRV {
    725     UINT MostDetailedMip;
    726     UINT MipLevels;
    727 } D3D10_TEX1D_SRV;
    728 
    729 typedef struct D3D10_TEX1D_ARRAY_SRV {
    730     UINT MostDetailedMip;
    731     UINT MipLevels;
    732     UINT FirstArraySlice;
    733     UINT ArraySize;
    734 } D3D10_TEX1D_ARRAY_SRV;
    735 
    736 typedef struct D3D10_TEX2D_SRV {
    737     UINT MostDetailedMip;
    738     UINT MipLevels;
    739 } D3D10_TEX2D_SRV;
    740 
    741 typedef struct D3D10_TEX2D_ARRAY_SRV {
    742     UINT MostDetailedMip;
    743     UINT MipLevels;
    744     UINT FirstArraySlice;
    745     UINT ArraySize;
    746 } D3D10_TEX2D_ARRAY_SRV;
    747 
    748 typedef struct D3D10_TEX2DMS_SRV {
    749     UINT UnusedField_NothingToDefine;
    750 } D3D10_TEX2DMS_SRV;
    751 
    752 typedef struct D3D10_TEX2DMS_ARRAY_SRV {
    753     UINT FirstArraySlice;
    754     UINT ArraySize;
    755 } D3D10_TEX2DMS_ARRAY_SRV;
    756 
    757 typedef struct D3D10_TEX3D_SRV {
    758     UINT MostDetailedMip;
    759     UINT MipLevels;
    760 } D3D10_TEX3D_SRV;
    761 
    762 typedef struct D3D10_TEXCUBE_SRV {
    763     UINT MostDetailedMip;
    764     UINT MipLevels;
    765 } D3D10_TEXCUBE_SRV;
    766 
    767 typedef struct D3D10_SHADER_RESOURCE_VIEW_DESC {
    768     DXGI_FORMAT Format;
    769     D3D10_SRV_DIMENSION ViewDimension;
    770     union {
    771         D3D10_BUFFER_SRV Buffer;
    772         D3D10_TEX1D_SRV Texture1D;
    773         D3D10_TEX1D_ARRAY_SRV Texture1DArray;
    774         D3D10_TEX2D_SRV Texture2D;
    775         D3D10_TEX2D_ARRAY_SRV Texture2DArray;
    776         D3D10_TEX2DMS_SRV Texture2DMS;
    777         D3D10_TEX2DMS_ARRAY_SRV Texture2DMSArray;
    778         D3D10_TEX3D_SRV Texture3D;
    779         D3D10_TEXCUBE_SRV TextureCube;
    780     };
    781 } D3D10_SHADER_RESOURCE_VIEW_DESC;
    782 
    783 typedef struct D3D10_BOX {
    784     UINT left;
    785     UINT top;
    786     UINT front;
    787     UINT right;
    788     UINT bottom;
    789     UINT back;
    790 } D3D10_BOX;
    791 
    792 typedef struct D3D10_SUBRESOURCE_DATA {
    793     const void *pSysMem;
    794     UINT SysMemPitch;
    795     UINT SysMemSlicePitch;
    796 } D3D10_SUBRESOURCE_DATA;
    797 
    798 typedef struct D3D10_SO_DECLARATION_ENTRY
    799 {
    800     const char *SemanticName;
    801     UINT SemanticIndex;
    802     BYTE StartComponent;
    803     BYTE ComponentCount;
    804     BYTE OutputSlot;
    805 } D3D10_SO_DECLARATION_ENTRY;
    806 
    807 typedef enum D3D10_INPUT_CLASSIFICATION {
    808     D3D10_INPUT_PER_VERTEX_DATA,
    809     D3D10_INPUT_PER_INSTANCE_DATA,
    810 } D3D10_INPUT_CLASSIFICATION;
    811 
    812 typedef struct D3D10_INPUT_ELEMENT_DESC
    813 {
    814     const char *SemanticName;
    815     UINT SemanticIndex;
    816     DXGI_FORMAT Format;
    817     UINT InputSlot;
    818     UINT AlignedByteOffset;
    819     D3D10_INPUT_CLASSIFICATION InputSlotClass;
    820     UINT InstanceDataStepRate;
    821 } D3D10_INPUT_ELEMENT_DESC;
    822 
    823 typedef enum D3D10_QUERY {
    824     D3D10_QUERY_EVENT,
    825     D3D10_QUERY_OCCLUSION,
    826     D3D10_QUERY_TIMESTAMP,
    827     D3D10_QUERY_TIMESTAMP_DISJOINT,
    828     D3D10_QUERY_PIPELINE_STATISTICS,
    829     D3D10_QUERY_OCCLUSION_PREDICATE,
    830     D3D10_QUERY_SO_STATISTICS,
    831     D3D10_QUERY_SO_OVERFLOW_PREDICATE,
    832 } D3D10_QUERY;
    833 
    834 typedef struct D3D10_QUERY_DESC {
    835     D3D10_QUERY Query;
    836     UINT MiscFlags;
    837 } D3D10_QUERY_DESC;
    838 
    839 typedef D3D_PRIMITIVE_TOPOLOGY D3D10_PRIMITIVE_TOPOLOGY;
    840 
    841 typedef D3D_PRIMITIVE D3D10_PRIMITIVE;
    842 
    843 typedef RECT D3D10_RECT;
    844 
    845 typedef struct D3D10_VIEWPORT {
    846     INT TopLeftX;
    847     INT TopLeftY;
    848     UINT Width;
    849     UINT Height;
    850     FLOAT MinDepth;
    851     FLOAT MaxDepth;
    852 } D3D10_VIEWPORT;
    853 
    854 typedef struct D3D10_MAPPED_TEXTURE2D {
    855     void *pData;
    856     UINT RowPitch;
    857 } D3D10_MAPPED_TEXTURE2D;
    858 
    859 typedef struct D3D10_MAPPED_TEXTURE3D {
    860     void *pData;
    861     UINT RowPitch;
    862     UINT DepthPitch;
    863 } D3D10_MAPPED_TEXTURE3D;
    864 
    865 typedef enum D3D10_CPU_ACCESS_FLAG {
    866     D3D10_CPU_ACCESS_WRITE = 0x10000,
    867     D3D10_CPU_ACCESS_READ  = 0x20000
    868 } D3D10_CPU_ACCESS_FLAG;
    869 
    870 typedef enum D3D10_RESOURCE_MISC_FLAG {
    871     D3D10_RESOURCE_MISC_GENERATE_MIPS      = 0x0001,
    872     D3D10_RESOURCE_MISC_SHARED             = 0x0002,
    873     D3D10_RESOURCE_MISC_TEXTURECUBE        = 0x0004,
    874     D3D10_RESOURCE_MISC_SHARED_KEYEDMUTEX  = 0x0010,
    875     D3D10_RESOURCE_MISC_GDI_COMPATIBLE     = 0x0020
    876 } D3D10_RESOURCE_MISC_FLAG;
    877 
    878 typedef enum D3D10_MAP_FLAG {
    879     D3D10_MAP_FLAG_DO_NOT_WAIT = 0x100000,
    880 } D3D10_MAP_FLAG;
    881 
    882 typedef enum D3D10_CLEAR_FLAG {
    883     D3D10_CLEAR_DEPTH   = 0x1,
    884     D3D10_CLEAR_STENCIL = 0x2
    885 } D3D10_CLEAR_FLAG;
    886 
    887 typedef enum D3D10_COLOR_WRITE_ENABLE {
    888     D3D10_COLOR_WRITE_ENABLE_RED   = 0x1,
    889     D3D10_COLOR_WRITE_ENABLE_GREEN = 0x2,
    890     D3D10_COLOR_WRITE_ENABLE_BLUE  = 0x4,
    891     D3D10_COLOR_WRITE_ENABLE_ALPHA = 0x8,
    892     D3D10_COLOR_WRITE_ENABLE_ALL   = (D3D10_COLOR_WRITE_ENABLE_RED  | D3D10_COLOR_WRITE_ENABLE_GREEN |
    893                                       D3D10_COLOR_WRITE_ENABLE_BLUE | D3D10_COLOR_WRITE_ENABLE_ALPHA)
    894 } D3D10_COLOR_WRITE_ENABLE;
    895 
    896 typedef enum D3D10_TEXTURECUBE_FACE {
    897     D3D10_TEXTURECUBE_FACE_POSITIVE_X,
    898     D3D10_TEXTURECUBE_FACE_NEGATIVE_X,
    899     D3D10_TEXTURECUBE_FACE_POSITIVE_Y,
    900     D3D10_TEXTURECUBE_FACE_NEGATIVE_Y,
    901     D3D10_TEXTURECUBE_FACE_POSITIVE_Z,
    902     D3D10_TEXTURECUBE_FACE_NEGATIVE_Z,
    903 } D3D10_TEXTURECUBE_FACE;
    904 
    905 typedef enum D3D10_ASYNC_GETDATA_FLAG {
    906     D3D10_ASYNC_GETDATA_DONOTFLUSH = 0x1,
    907 } D3D10_ASYNC_GETDATA_FLAG;
    908 
    909 typedef enum D3D10_FILTER_TYPE {
    910     D3D10_FILTER_TYPE_POINT,
    911     D3D10_FILTER_TYPE_LINEAR
    912 } D3D10_FILTER_TYPE;
    913 
    914 typedef enum D3D10_QUERY_MISC_FLAG {
    915     D3D10_QUERY_MISC_PREDICATEHINT = 0x1
    916 } D3D10_QUERY_MISC_FLAG;
    917 
    918 typedef struct D3D10_QUERY_DATA_TIMESTAMP_DISJOINT {
    919     UINT64 Frequency;
    920     BOOL Disjoint;
    921 } D3D10_QUERY_DATA_TIMESTAMP_DISJOINT;
    922 
    923 typedef struct D3D10_QUERY_DATA_PIPELINE_STATISTICS {
    924     UINT64 IAVertices;
    925     UINT64 IAPrimitives;
    926     UINT64 VSInvocations;
    927     UINT64 GSInvocations;
    928     UINT64 GSPrimitives;
    929     UINT64 CInvocations;
    930     UINT64 CPrimitives;
    931     UINT64 PSInvocations;
    932 } D3D10_QUERY_DATA_PIPELINE_STATISTICS;
    933 
    934 typedef struct D3D10_QUERY_DATA_SO_STATISTICS {
    935     UINT64 NumPrimitivesWritten;
    936     UINT64 PrimitivesStorageNeeded;
    937 } D3D10_QUERY_DATA_SO_STATISTICS;
    938 
    939 typedef enum D3D10_CREATE_DEVICE_FLAG {
    940     D3D10_CREATE_DEVICE_SINGLETHREADED                           = 0x1,
    941     D3D10_CREATE_DEVICE_DEBUG                                    = 0x2,
    942     D3D10_CREATE_DEVICE_SWITCH_TO_REF                            = 0x4,
    943     D3D10_CREATE_DEVICE_PREVENT_INTERNAL_THREADING_OPTIMIZATIONS = 0x8,
    944     D3D10_CREATE_DEVICE_ALLOW_NULL_FROM_MAP                      = 0x10,
    945     D3D10_CREATE_DEVICE_BGRA_SUPPORT                             = 0x20,
    946     D3D10_CREATE_DEVICE_STRICT_VALIDATION                        = 0x0200
    947 } D3D10_CREATE_DEVICE_FLAG;
    948 
    949 /* Core */
    950 
    951 interface ID3D10Device;
    952 
    953 [
    954     object,
    955     local,
    956     uuid(9b7e4c00-342c-4106-a19f-4f2704f689f0)
    957 ]
    958 interface ID3D10DeviceChild : IUnknown
    959 {
    960         void GetDevice(
    961             [out] ID3D10Device **ppDevice);
    962         HRESULT GetPrivateData(
    963             [in] REFGUID guid,
    964             [in, out] UINT *pDataSize,
    965             [out] void *pData);
    966         HRESULT SetPrivateData(
    967             [in] REFGUID guid,
    968             [in] UINT DataSize,
    969             [in] const void *pData);
    970         HRESULT SetPrivateDataInterface(
    971             [in] REFGUID guid,
    972             [in] const IUnknown *pData);
    973 }
    974 
    975 /* Resource */
    976 
    977 [
    978     object,
    979     local,
    980     uuid(9b7e4c01-342c-4106-a19f-4f2704f689f0)
    981 ]
    982 interface ID3D10Resource : ID3D10DeviceChild
    983 {
    984         void GetType(
    985             [out] D3D10_RESOURCE_DIMENSION *rType);
    986         void SetEvictionPriority(
    987             [in] UINT EvictionPriority);
    988         UINT GetEvictionPriority();
    989 }
    990 
    991 [
    992     object,
    993     local,
    994     uuid(9b7e4c02-342c-4106-a19f-4f2704f689f0)
    995 ]
    996 interface ID3D10Buffer : ID3D10Resource
    997 {
    998         HRESULT Map(
    999             [in] D3D10_MAP MapType,
   1000             [in] UINT MapFlags,
   1001             [out] void **ppData);
   1002         void Unmap();
   1003         void GetDesc(
   1004             [out] D3D10_BUFFER_DESC *pDesc);
   1005 }
   1006 
   1007 [
   1008     object,
   1009     local,
   1010     uuid(9b7e4c03-342c-4106-a19f-4f2704f689F0)
   1011 ]
   1012 interface ID3D10Texture1D : ID3D10Resource
   1013 {
   1014         HRESULT Map(
   1015             [in] UINT Subresource,
   1016             [in] D3D10_MAP MapType,
   1017             [in] UINT MapFlags,
   1018             [out] void **ppData);
   1019         void Unmap(
   1020             [in] UINT Subresource);
   1021         void GetDesc(
   1022             [out] D3D10_TEXTURE1D_DESC *pDesc);
   1023 }
   1024 
   1025 [
   1026     object,
   1027     local,
   1028     uuid(9b7e4c04-342c-4106-a19f-4f2704f689F0)
   1029 ]
   1030 interface ID3D10Texture2D : ID3D10Resource
   1031 {
   1032         HRESULT Map(
   1033             [in] UINT Subresource,
   1034             [in] D3D10_MAP MapType,
   1035             [in] UINT MapFlags,
   1036             [out] D3D10_MAPPED_TEXTURE2D *pMappedTex2D);
   1037         void Unmap(
   1038             [in] UINT Subresource);
   1039         void GetDesc(
   1040             [out] D3D10_TEXTURE2D_DESC *pDesc);
   1041 }
   1042 
   1043 [
   1044     object,
   1045     local,
   1046     uuid(9b7e4c05-342c-4106-a19f-4f2704f689F0)
   1047 ]
   1048 interface ID3D10Texture3D : ID3D10Resource
   1049 {
   1050         HRESULT Map(
   1051             [in] UINT Subresource,
   1052             [in] D3D10_MAP MapType,
   1053             [in] UINT MapFlags,
   1054             [out] D3D10_MAPPED_TEXTURE3D *pMappedTex3D);
   1055         void Unmap(
   1056             [in] UINT Subresource);
   1057         void GetDesc(
   1058             [out] D3D10_TEXTURE3D_DESC *pDesc);
   1059 }
   1060 
   1061 [
   1062     object,
   1063     local,
   1064     uuid(c902b03f-60a7-49ba-9936-2a3ab37a7e33)
   1065 ]
   1066 interface ID3D10View : ID3D10DeviceChild
   1067 {
   1068         void GetResource(
   1069             [out] ID3D10Resource **ppResource);
   1070 }
   1071 
   1072 [
   1073     object,
   1074     local,
   1075     uuid(9b7e4c09-342c-4106-a19f-4f2704f689f0)
   1076 ]
   1077 interface ID3D10DepthStencilView : ID3D10View
   1078 {
   1079         void GetDesc(
   1080             [out] D3D10_DEPTH_STENCIL_VIEW_DESC *pDesc);
   1081 }
   1082 
   1083 
   1084 [
   1085     object,
   1086     local,
   1087     uuid(9b7e4c08-342c-4106-a19f-4f2704f689f0)
   1088 ]
   1089 interface ID3D10RenderTargetView : ID3D10View
   1090 {
   1091         void GetDesc(
   1092             [out] D3D10_RENDER_TARGET_VIEW_DESC *pDesc);
   1093 }
   1094 
   1095 [
   1096     object,
   1097     local,
   1098     uuid(9b7e4c07-342c-4106-a19f-4f2704f689f0)
   1099 ]
   1100 interface ID3D10ShaderResourceView  : ID3D10View
   1101 {
   1102         void GetDesc(
   1103             [out] D3D10_SHADER_RESOURCE_VIEW_DESC *pDesc);
   1104 }
   1105 
   1106 /* Resource End */
   1107 
   1108 [
   1109     object,
   1110     local,
   1111     uuid(edad8d19-8a35-4d6d-8566-2ea276cde161)
   1112 ]
   1113 interface ID3D10BlendState : ID3D10DeviceChild
   1114 {
   1115     void GetDesc(
   1116             [out] D3D10_BLEND_DESC *pDesc);
   1117 }
   1118 
   1119 [
   1120     object,
   1121     local,
   1122     uuid(2b4b1cc8-a4ad-41f8-8322-ca86fc3ec675)
   1123 ]
   1124 interface ID3D10DepthStencilState : ID3D10DeviceChild
   1125 {
   1126     void GetDesc(
   1127             [out] D3D10_DEPTH_STENCIL_DESC *pDesc);
   1128 }
   1129 
   1130 [
   1131     object,
   1132     local,
   1133     uuid(6316be88-54cd-4040-ab44-20461bc81f68)
   1134 ]
   1135 interface ID3D10GeometryShader  : ID3D10DeviceChild
   1136 {
   1137 }
   1138 
   1139 [
   1140     object,
   1141     local,
   1142     uuid(9b7e4c0b-342c-4106-a19f-4f2704f689f0)
   1143 ]
   1144 interface ID3D10InputLayout  : ID3D10DeviceChild
   1145 {
   1146 }
   1147 
   1148 [
   1149     object,
   1150     local,
   1151     uuid(4968b601-9d00-4cde-8346-8e7f675819b6)
   1152 ]
   1153 interface ID3D10PixelShader  : ID3D10DeviceChild
   1154 {
   1155 }
   1156 
   1157 [
   1158     object,
   1159     local,
   1160     uuid(a2a07292-89af-4345-be2e-c53d9fbb6e9f)
   1161 ]
   1162 interface ID3D10RasterizerState  : ID3D10DeviceChild
   1163 {
   1164     void GetDesc(
   1165             [out] D3D10_RASTERIZER_DESC *pDesc);
   1166 }
   1167 
   1168 [
   1169     object,
   1170     local,
   1171     uuid(9b7e4c0c-342c-4106-a19f-4f2704f689f0)
   1172 ]
   1173 interface ID3D10SamplerState  : ID3D10DeviceChild
   1174 {
   1175     void GetDesc(
   1176             [out] D3D10_SAMPLER_DESC *pDesc);
   1177 }
   1178 
   1179 [
   1180     object,
   1181     local,
   1182     uuid(9b7e4c0a-342c-4106-a19f-4f2704f689f0)
   1183 ]
   1184 interface ID3D10VertexShader  : ID3D10DeviceChild
   1185 {
   1186 }
   1187 
   1188 [
   1189     object,
   1190     local,
   1191     uuid(9b7e4c0d-342c-4106-a19f-4f2704f689f0)
   1192 ]
   1193 interface ID3D10Asynchronous  : ID3D10DeviceChild
   1194 {
   1195     void Begin();
   1196     void End();
   1197     HRESULT GetData(
   1198             [out] void *pData,
   1199             [in] UINT DataSize,
   1200             [in] UINT GetDataFlags);
   1201     UINT GetDataSize();
   1202 }
   1203 
   1204 [
   1205     object,
   1206     local,
   1207     uuid(9b7e4c11-342c-4106-a19f-4f2704f689f0)
   1208 ]
   1209 interface ID3D10Counter  : ID3D10Asynchronous
   1210 {
   1211     void GetDesc(
   1212             [out] D3D10_COUNTER_DESC *pDesc);
   1213 }
   1214 
   1215 [
   1216     object,
   1217     local,
   1218     uuid(9b7e4C0e-342C-4106-a19f-4f2704f689f0)
   1219 ]
   1220 interface ID3D10Query : ID3D10Asynchronous
   1221 {
   1222     void GetDesc(
   1223             [out] D3D10_QUERY_DESC *pDesc);
   1224 }
   1225 
   1226 [
   1227     object,
   1228     local,
   1229     uuid(9b7e4c10-342c-4106-a19f-4f2704f689f0)
   1230 ]
   1231 interface ID3D10Predicate : ID3D10Query
   1232 {
   1233 }
   1234 
   1235 [
   1236     object,
   1237     local,
   1238     uuid(9b7e4c0f-342c-4106-a19f-4f2704f689f0)
   1239 ]
   1240 interface ID3D10Device : IUnknown
   1241 {
   1242         void VSSetConstantBuffers(
   1243             [in] UINT StartSlot,
   1244             [in] UINT NumBuffers,
   1245             [in] ID3D10Buffer *const *ppConstantBuffers);
   1246         void PSSetShaderResources(
   1247             [in] UINT StartSlot,
   1248             [in] UINT NumViews,
   1249             [in] ID3D10ShaderResourceView *const *ppShaderResourceViews);
   1250         void PSSetShader(
   1251             [in] ID3D10PixelShader *pPixelShader);
   1252         void PSSetSamplers(
   1253             [in] UINT StartSlot,
   1254             [in] UINT NumSamplers,
   1255             [in]ID3D10SamplerState *const *ppSamplers);
   1256         void VSSetShader(
   1257             [in] ID3D10VertexShader *pVertexShader);
   1258         void DrawIndexed(
   1259             [in] UINT IndexCount,
   1260             [in] UINT StartIndexLocation,
   1261             [in] INT BaseVertexLocation);
   1262         void Draw(
   1263             [in] UINT VertexCount,
   1264             [in] UINT StartVertexLocation);
   1265         void PSSetConstantBuffers(
   1266             [in] UINT StartSlot,
   1267             [in] UINT NumBuffers,
   1268             [in] ID3D10Buffer *const *ppConstantBuffers);
   1269         void IASetInputLayout(
   1270             [in] ID3D10InputLayout *pInputLayout);
   1271         void IASetVertexBuffers(
   1272             [in] UINT StartSlot,
   1273             [in] UINT NumBuffers,
   1274             [in] ID3D10Buffer *const *ppVertexBuffers,
   1275             [in] const UINT *pStrides,
   1276             [in] const UINT *pOffsets);
   1277         void IASetIndexBuffer(
   1278             [in] ID3D10Buffer *pIndexBuffer,
   1279             [in] DXGI_FORMAT Format,
   1280             [in] UINT Offset);
   1281         void DrawIndexedInstanced(
   1282             [in] UINT IndexCountPerInstance,
   1283             [in] UINT InstanceCount,
   1284             [in] UINT StartIndexLocation,
   1285             [in] INT BaseVertexLocation,
   1286             [in] UINT StartInstanceLocation);
   1287         void DrawInstanced(
   1288             [in] UINT VertexCountPerInstance,
   1289             [in] UINT InstanceCount,
   1290             [in] UINT StartVertexLocation,
   1291             [in] UINT StartInstanceLocation);
   1292         void GSSetConstantBuffers(
   1293             [in] UINT StartSlot,
   1294             [in] UINT NumBuffers,
   1295             [in] ID3D10Buffer *const *ppConstantBuffers);
   1296         void GSSetShader(
   1297             [in] ID3D10GeometryShader *pShader);
   1298         void IASetPrimitiveTopology(
   1299             [in] D3D10_PRIMITIVE_TOPOLOGY Topology);
   1300         void VSSetShaderResources(
   1301             [in] UINT StartSlot,
   1302             [in] UINT NumViews,
   1303             [in] ID3D10ShaderResourceView *const *ppShaderResourceViews);
   1304         void VSSetSamplers(
   1305             [in] UINT StartSlot,
   1306             [in] UINT NumSamplers,
   1307             [in] ID3D10SamplerState *const *ppSamplers);
   1308         void SetPredication(
   1309             [in] ID3D10Predicate *pPredicate,
   1310             [in] BOOL PredicateValue);
   1311         void GSSetShaderResources(
   1312             [in] UINT StartSlot,
   1313             [in] UINT NumViews,
   1314             [in] ID3D10ShaderResourceView * const *ppShaderResourceViews);
   1315         void GSSetSamplers(
   1316             [in] UINT StartSlot,
   1317             [in] UINT NumSamplers,
   1318             [in] ID3D10SamplerState *const *ppSamplers);
   1319         void OMSetRenderTargets(
   1320             [in] UINT NumViews,
   1321             [in] ID3D10RenderTargetView *const *ppRenderTargetViews,
   1322             [in] ID3D10DepthStencilView *pDepthStencilView);
   1323         void OMSetBlendState(
   1324             [in] ID3D10BlendState *pBlendState,
   1325             [in] const FLOAT BlendFactor[4],
   1326             [in] UINT SampleMask);
   1327         void OMSetDepthStencilState(
   1328             [in] ID3D10DepthStencilState *pDepthStencilState,
   1329             [in] UINT StencilRef);
   1330         void SOSetTargets(
   1331             [in] UINT NumBuffers,
   1332             [in] ID3D10Buffer *const *ppSOTargets,
   1333             [in] const UINT *pOffsets);
   1334         void DrawAuto();
   1335         void RSSetState(
   1336             [in] ID3D10RasterizerState *pRasterizerState);
   1337         void RSSetViewports(
   1338             [in] UINT NumViewports,
   1339             [in] const D3D10_VIEWPORT *pViewports);
   1340         void RSSetScissorRects(
   1341             [in] UINT NumRects,
   1342             [in] const D3D10_RECT *pRects);
   1343         void CopySubresourceRegion(
   1344             [in] ID3D10Resource *pDstResource,
   1345             [in] UINT DstSubresource,
   1346             [in] UINT DstX,
   1347             [in] UINT DstY,
   1348             [in] UINT DstZ,
   1349             [in] ID3D10Resource *pSrcResource,
   1350             [in] UINT SrcSubresource,
   1351             [in] const D3D10_BOX *pSrcBox);
   1352         void CopyResource(
   1353             [in] ID3D10Resource *pDstResource,
   1354             [in] ID3D10Resource *pSrcResource);
   1355         void UpdateSubresource(
   1356             [in] ID3D10Resource *pDstResource,
   1357             [in] UINT DstSubresource,
   1358             [in] const D3D10_BOX *pDstBox,
   1359             [in] const void *pSrcData,
   1360             [in] UINT SrcRowPitch,
   1361             [in] UINT SrcDepthPitch);
   1362         void ClearRenderTargetView(
   1363             [in] ID3D10RenderTargetView *pRenderTargetView,
   1364             [in] const FLOAT ColorRGBA[4]);
   1365         void ClearDepthStencilView(
   1366             [in] ID3D10DepthStencilView *pDepthStencilView,
   1367             [in] UINT ClearFlags,
   1368             [in] FLOAT Depth,
   1369             [in] UINT8 Stencil);
   1370         void GenerateMips(
   1371             [in] ID3D10ShaderResourceView *pShaderResourceView);
   1372         void ResolveSubresource(
   1373             [in] ID3D10Resource *pDstResource,
   1374             [in] UINT DstSubresource,
   1375             [in] ID3D10Resource *pSrcResource,
   1376             [in] UINT SrcSubresource,
   1377             [in] DXGI_FORMAT Format);
   1378         void VSGetConstantBuffers(
   1379             [in] UINT StartSlot,
   1380             [in] UINT NumBuffers,
   1381             [out] ID3D10Buffer **ppConstantBuffers);
   1382         void PSGetShaderResources(
   1383             [in] UINT StartSlot,
   1384             [in] UINT NumViews,
   1385             [out] ID3D10ShaderResourceView **ppShaderResourceViews);
   1386         void PSGetShader(
   1387             [out] ID3D10PixelShader **ppPixelShader);
   1388         void PSGetSamplers(
   1389             [in] UINT StartSlot,
   1390             [in] UINT NumSamplers,
   1391             [out] ID3D10SamplerState **ppSamplers);
   1392         void VSGetShader(
   1393             [out] ID3D10VertexShader **ppVertexShader);
   1394         void PSGetConstantBuffers(
   1395             [in] UINT StartSlot,
   1396             [in] UINT NumBuffers,
   1397             [out] ID3D10Buffer **ppConstantBuffers);
   1398         void IAGetInputLayout(
   1399             [out] ID3D10InputLayout **ppInputLayout);
   1400         void IAGetVertexBuffers(
   1401             [in] UINT StartSlot,
   1402             [in] UINT NumBuffers,
   1403             [out] ID3D10Buffer **ppVertexBuffers,
   1404             [out] UINT *pStrides,
   1405             [out] UINT *pOffsets);
   1406         void IAGetIndexBuffer(
   1407             [out] ID3D10Buffer **pIndexBuffer,
   1408             [out] DXGI_FORMAT *Format,
   1409             [out] UINT *Offset);
   1410         void GSGetConstantBuffers(
   1411             [in] UINT StartSlot,
   1412             [in] UINT NumBuffers,
   1413             [out] ID3D10Buffer **ppConstantBuffers);
   1414         void GSGetShader(
   1415             [out] ID3D10GeometryShader **ppGeometryShader);
   1416         void IAGetPrimitiveTopology(
   1417             [out] D3D10_PRIMITIVE_TOPOLOGY *pTopology);
   1418         void VSGetShaderResources(
   1419             [in] UINT StartSlot,
   1420             [in] UINT NumViews,
   1421             [out] ID3D10ShaderResourceView **ppShaderResourceViews);
   1422         void VSGetSamplers(
   1423             [in] UINT StartSlot,
   1424             [in] UINT NumSamplers,
   1425             [out] ID3D10SamplerState **ppSamplers);
   1426         void GetPredication(
   1427             [out] ID3D10Predicate **ppPredicate,
   1428             [out] BOOL *pPredicateValue);
   1429         void GSGetShaderResources(
   1430             [in] UINT StartSlot,
   1431             [in] UINT NumViews,
   1432             [out] ID3D10ShaderResourceView **ppShaderResourceViews);
   1433         void GSGetSamplers(
   1434             [in] UINT StartSlot,
   1435             [in] UINT NumSamplers,
   1436             [out] ID3D10SamplerState **ppSamplers);
   1437         void OMGetRenderTargets(
   1438             [in] UINT NumViews,
   1439             [out] ID3D10RenderTargetView **ppRenderTargetViews,
   1440             [out] ID3D10DepthStencilView **ppDepthStencilView);
   1441         void OMGetBlendState(
   1442             [out] ID3D10BlendState **ppBlendState,
   1443             [out] FLOAT BlendFactor[4],
   1444             [out] UINT *pSampleMask);
   1445         void OMGetDepthStencilState(
   1446             [out] ID3D10DepthStencilState **ppDepthStencilState,
   1447             [out] UINT *pStencilRef);
   1448         void SOGetTargets(
   1449             [in] UINT NumBuffers,
   1450             [out] ID3D10Buffer **ppSOTargets,
   1451             [out] UINT *pOffsets);
   1452         void RSGetState(
   1453             [out] ID3D10RasterizerState **ppRasterizerState);
   1454         void RSGetViewports(
   1455             [in, out] UINT *NumViewports,
   1456             [out] D3D10_VIEWPORT *pViewports);
   1457         void RSGetScissorRects(
   1458             [in, out] UINT *NumRects,
   1459             [out] D3D10_RECT *pRects);
   1460         HRESULT GetDeviceRemovedReason();
   1461         HRESULT SetExceptionMode(
   1462             [in] UINT RaiseFlags);
   1463         UINT GetExceptionMode();
   1464         HRESULT GetPrivateData(
   1465             [in] REFGUID guid,
   1466             [in, out] UINT *pDataSize,
   1467             [out] void *pData);
   1468         HRESULT SetPrivateData(
   1469             [in] REFGUID guid,
   1470             [in] UINT DataSize,
   1471             [in] const void *pData);
   1472         HRESULT SetPrivateDataInterface(
   1473             [in] REFGUID guid,
   1474             [in] const IUnknown *pData);
   1475         void ClearState();
   1476         void Flush();
   1477         HRESULT CreateBuffer(
   1478             [in] const D3D10_BUFFER_DESC *pDesc,
   1479             [in] const D3D10_SUBRESOURCE_DATA *pInitialData,
   1480             [out] ID3D10Buffer **ppBuffer);
   1481         HRESULT CreateTexture1D(
   1482             [in] const D3D10_TEXTURE1D_DESC *pDesc,
   1483             [in] const D3D10_SUBRESOURCE_DATA *pInitialData,
   1484             [out] ID3D10Texture1D **ppTexture1D);
   1485         HRESULT CreateTexture2D(
   1486             [in] const D3D10_TEXTURE2D_DESC *pDesc,
   1487             [in] const D3D10_SUBRESOURCE_DATA *pInitialData,
   1488             [out] ID3D10Texture2D **ppTexture2D);
   1489         HRESULT CreateTexture3D(
   1490             [in] const D3D10_TEXTURE3D_DESC *pDesc,
   1491             [in] const D3D10_SUBRESOURCE_DATA *pInitialData,
   1492             [out] ID3D10Texture3D **ppTexture3D);
   1493         HRESULT CreateShaderResourceView(
   1494             [in] ID3D10Resource *pResource,
   1495             [in] const D3D10_SHADER_RESOURCE_VIEW_DESC *pDesc,
   1496             [out] ID3D10ShaderResourceView **ppSRView);
   1497         HRESULT CreateRenderTargetView(
   1498             [in] ID3D10Resource *pResource,
   1499             [in] const D3D10_RENDER_TARGET_VIEW_DESC *pDesc,
   1500             [out] ID3D10RenderTargetView **ppRTView);
   1501         HRESULT CreateDepthStencilView(
   1502             [in] ID3D10Resource *pResource,
   1503             [in] const D3D10_DEPTH_STENCIL_VIEW_DESC *pDesc,
   1504             [out] ID3D10DepthStencilView **ppDepthStencilView);
   1505         HRESULT CreateInputLayout(
   1506             [in] const D3D10_INPUT_ELEMENT_DESC *pInputElementDescs,
   1507             [in] UINT NumElements,
   1508             [in] const void *pShaderBytecodeWithInputSignature,
   1509             [in] SIZE_T BytecodeLength,
   1510             [out] ID3D10InputLayout **ppInputLayout);
   1511         HRESULT CreateVertexShader(
   1512             [in] const void *pShaderBytecode,
   1513             [in] SIZE_T BytecodeLength,
   1514             [out] ID3D10VertexShader **ppVertexShader);
   1515         HRESULT CreateGeometryShader(
   1516             [in] const void *pShaderBytecode,
   1517             [in] SIZE_T BytecodeLength,
   1518             [out] ID3D10GeometryShader **ppGeometryShader);
   1519         HRESULT CreateGeometryShaderWithStreamOutput(
   1520             [in] const void *pShaderBytecode,
   1521             [in] SIZE_T BytecodeLength,
   1522             [in] const D3D10_SO_DECLARATION_ENTRY *pSODeclaration,
   1523             [in] UINT NumEntries,
   1524             [in] UINT OutputStreamStride,
   1525             [out] ID3D10GeometryShader **ppGeometryShader);
   1526         HRESULT CreatePixelShader(
   1527             [in] const void *pShaderBytecode,
   1528             [in] SIZE_T BytecodeLength,
   1529             [out] ID3D10PixelShader **ppPixelShader);
   1530         HRESULT CreateBlendState(
   1531             [in] const D3D10_BLEND_DESC *pBlendStateDesc,
   1532             [out] ID3D10BlendState **ppBlendState);
   1533         HRESULT CreateDepthStencilState(
   1534             [in] const D3D10_DEPTH_STENCIL_DESC *pDepthStencilDesc,
   1535             [out] ID3D10DepthStencilState **ppDepthStencilState);
   1536         HRESULT CreateRasterizerState(
   1537             [in] const D3D10_RASTERIZER_DESC *pRasterizerDesc,
   1538             [out] ID3D10RasterizerState **ppRasterizerState);
   1539         HRESULT CreateSamplerState(
   1540             [in] const D3D10_SAMPLER_DESC *pSamplerDesc,
   1541             [out] ID3D10SamplerState **ppSamplerState);
   1542         HRESULT CreateQuery(
   1543             [in] const D3D10_QUERY_DESC *pQueryDesc,
   1544             [out] ID3D10Query **ppQuery);
   1545         HRESULT CreatePredicate(
   1546             [in] const D3D10_QUERY_DESC *pPredicateDesc,
   1547             [out] ID3D10Predicate **ppPredicate);
   1548         HRESULT CreateCounter(
   1549             [in] const D3D10_COUNTER_DESC *pCounterDesc,
   1550             [out] ID3D10Counter **ppCounter);
   1551         HRESULT CheckFormatSupport(
   1552             [in] DXGI_FORMAT Format,
   1553             [out] UINT *pFormatSupport);
   1554         HRESULT CheckMultisampleQualityLevels(
   1555             [in] DXGI_FORMAT Format,
   1556             [in] UINT SampleCount,
   1557             [out] UINT *pNumQualityLevels);
   1558         void CheckCounterInfo(
   1559             [out] D3D10_COUNTER_INFO *pCounterInfo);
   1560         HRESULT CheckCounter(
   1561             [in] const D3D10_COUNTER_DESC *pDesc,
   1562             [out] D3D10_COUNTER_TYPE *pType,
   1563             [out] UINT *pActiveCounters,
   1564             [out] char *name,
   1565             [in, out] UINT *pNameLength,
   1566             [out] char *units,
   1567             [in, out] UINT *pUnitsLength,
   1568             [out] char *description,
   1569             [in, out] UINT *pDescriptionLength);
   1570         UINT GetCreationFlags();
   1571         HRESULT OpenSharedResource(
   1572             [in] HANDLE hResource,
   1573             [in] REFIID ReturnedInterface,
   1574             [out] void **ppResource);
   1575         void SetTextFilterSize(
   1576             [in] UINT Width,
   1577             [in] UINT Height);
   1578         void GetTextFilterSize(
   1579             [out] UINT *pWidth,
   1580             [out] UINT *pHeight);
   1581 }
   1582 
   1583 [
   1584     object,
   1585     local,
   1586     uuid(9b7e4e00-342c-4106-a19f-4f2704f689f0)
   1587 ]
   1588 interface ID3D10Multithread : IUnknown
   1589 {
   1590         void Enter();
   1591         void Leave();
   1592         BOOL SetMultithreadProtected(
   1593             [in] BOOL bMTProtect);
   1594         BOOL GetMultithreadProtected();
   1595 }
   1596 
   1597 cpp_quote("#ifndef D3D10_IGNORE_SDK_LAYERS")
   1598 cpp_quote("/* FIXME: # include <d3d10sdklayers.h> */")
   1599 cpp_quote("#endif")
   1600 cpp_quote("#include \"d3d10misc.h\"")
   1601 cpp_quote("#include \"d3d10shader.h\"")
   1602 cpp_quote("#include \"d3d10effect.h\"")
   1603