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     LPCSTR SemanticName;
    800     UINT SemanticIndex;
    801     BYTE StartComponent;
    802     BYTE ComponentCount;
    803     BYTE OutputSlot;
    804 } D3D10_SO_DECLARATION_ENTRY;
    805 
    806 typedef enum D3D10_INPUT_CLASSIFICATION {
    807     D3D10_INPUT_PER_VERTEX_DATA,
    808     D3D10_INPUT_PER_INSTANCE_DATA,
    809 } D3D10_INPUT_CLASSIFICATION;
    810 
    811 typedef struct D3D10_INPUT_ELEMENT_DESC {
    812     LPCSTR SemanticName;
    813     UINT SemanticIndex;
    814     DXGI_FORMAT Format;
    815     UINT InputSlot;
    816     UINT AlignedByteOffset;
    817     D3D10_INPUT_CLASSIFICATION InputSlotClass;
    818     UINT InstanceDataStepRate;
    819 } D3D10_INPUT_ELEMENT_DESC;
    820 
    821 typedef enum D3D10_QUERY {
    822     D3D10_QUERY_EVENT,
    823     D3D10_QUERY_OCCLUSION,
    824     D3D10_QUERY_TIMESTAMP,
    825     D3D10_QUERY_TIMESTAMP_DISJOINT,
    826     D3D10_QUERY_PIPELINE_STATISTICS,
    827     D3D10_QUERY_OCCLUSION_PREDICATE,
    828     D3D10_QUERY_SO_STATISTICS,
    829     D3D10_QUERY_SO_OVERFLOW_PREDICATE,
    830 } D3D10_QUERY;
    831 
    832 typedef struct D3D10_QUERY_DESC {
    833     D3D10_QUERY Query;
    834     UINT MiscFlags;
    835 } D3D10_QUERY_DESC;
    836 
    837 typedef D3D_PRIMITIVE_TOPOLOGY D3D10_PRIMITIVE_TOPOLOGY;
    838 
    839 typedef D3D_PRIMITIVE D3D10_PRIMITIVE;
    840 
    841 typedef RECT D3D10_RECT;
    842 
    843 typedef struct D3D10_VIEWPORT {
    844     INT TopLeftX;
    845     INT TopLeftY;
    846     UINT Width;
    847     UINT Height;
    848     FLOAT MinDepth;
    849     FLOAT MaxDepth;
    850 } D3D10_VIEWPORT;
    851 
    852 typedef struct D3D10_MAPPED_TEXTURE2D {
    853     void *pData;
    854     UINT RowPitch;
    855 } D3D10_MAPPED_TEXTURE2D;
    856 
    857 typedef struct D3D10_MAPPED_TEXTURE3D {
    858     void *pData;
    859     UINT RowPitch;
    860     UINT DepthPitch;
    861 } D3D10_MAPPED_TEXTURE3D;
    862 
    863 typedef enum D3D10_CPU_ACCESS_FLAG {
    864     D3D10_CPU_ACCESS_WRITE = 0x10000,
    865     D3D10_CPU_ACCESS_READ  = 0x20000
    866 } D3D10_CPU_ACCESS_FLAG;
    867 
    868 typedef enum D3D10_RESOURCE_MISC_FLAG {
    869     D3D10_RESOURCE_MISC_GENERATE_MIPS      = 0x0001,
    870     D3D10_RESOURCE_MISC_SHARED             = 0x0002,
    871     D3D10_RESOURCE_MISC_TEXTURECUBE        = 0x0004,
    872     D3D10_RESOURCE_MISC_SHARED_KEYEDMUTEX  = 0x0010,
    873     D3D10_RESOURCE_MISC_GDI_COMPATIBLE     = 0x0020
    874 } D3D10_RESOURCE_MISC_FLAG;
    875 
    876 typedef enum D3D10_MAP_FLAG {
    877     D3D10_MAP_FLAG_DO_NOT_WAIT = 0x100000,
    878 } D3D10_MAP_FLAG;
    879 
    880 typedef enum D3D10_CLEAR_FLAG {
    881     D3D10_CLEAR_DEPTH   = 0x1,
    882     D3D10_CLEAR_STENCIL = 0x2
    883 } D3D10_CLEAR_FLAG;
    884 
    885 typedef enum D3D10_COLOR_WRITE_ENABLE {
    886     D3D10_COLOR_WRITE_ENABLE_RED   = 0x1,
    887     D3D10_COLOR_WRITE_ENABLE_GREEN = 0x2,
    888     D3D10_COLOR_WRITE_ENABLE_BLUE  = 0x4,
    889     D3D10_COLOR_WRITE_ENABLE_ALPHA = 0x8,
    890     D3D10_COLOR_WRITE_ENABLE_ALL   = (D3D10_COLOR_WRITE_ENABLE_RED  | D3D10_COLOR_WRITE_ENABLE_GREEN |
    891                                       D3D10_COLOR_WRITE_ENABLE_BLUE | D3D10_COLOR_WRITE_ENABLE_ALPHA)
    892 } D3D10_COLOR_WRITE_ENABLE;
    893 
    894 typedef enum D3D10_TEXTURECUBE_FACE {
    895     D3D10_TEXTURECUBE_FACE_POSITIVE_X,
    896     D3D10_TEXTURECUBE_FACE_NEGATIVE_X,
    897     D3D10_TEXTURECUBE_FACE_POSITIVE_Y,
    898     D3D10_TEXTURECUBE_FACE_NEGATIVE_Y,
    899     D3D10_TEXTURECUBE_FACE_POSITIVE_Z,
    900     D3D10_TEXTURECUBE_FACE_NEGATIVE_Z,
    901 } D3D10_TEXTURECUBE_FACE;
    902 
    903 typedef enum D3D10_ASYNC_GETDATA_FLAG {
    904     D3D10_ASYNC_GETDATA_DONOTFLUSH = 0x1,
    905 } D3D10_ASYNC_GETDATA_FLAG;
    906 
    907 typedef enum D3D10_FILTER_TYPE {
    908     D3D10_FILTER_TYPE_POINT,
    909     D3D10_FILTER_TYPE_LINEAR
    910 } D3D10_FILTER_TYPE;
    911 
    912 typedef enum D3D10_QUERY_MISC_FLAG {
    913     D3D10_QUERY_MISC_PREDICATEHINT = 0x1
    914 } D3D10_QUERY_MISC_FLAG;
    915 
    916 typedef struct D3D10_QUERY_DATA_TIMESTAMP_DISJOINT {
    917     UINT64 Frequency;
    918     BOOL Disjoint;
    919 } D3D10_QUERY_DATA_TIMESTAMP_DISJOINT;
    920 
    921 typedef struct D3D10_QUERY_DATA_PIPELINE_STATISTICS {
    922     UINT64 IAVertices;
    923     UINT64 IAPrimitives;
    924     UINT64 VSInvocations;
    925     UINT64 GSInvocations;
    926     UINT64 GSPrimitives;
    927     UINT64 CInvocations;
    928     UINT64 CPrimitives;
    929     UINT64 PSInvocations;
    930 } D3D10_QUERY_DATA_PIPELINE_STATISTICS;
    931 
    932 typedef struct D3D10_QUERY_DATA_SO_STATISTICS {
    933     UINT64 NumPrimitivesWritten;
    934     UINT64 PrimitivesStorageNeeded;
    935 } D3D10_QUERY_DATA_SO_STATISTICS;
    936 
    937 typedef enum D3D10_CREATE_DEVICE_FLAG {
    938     D3D10_CREATE_DEVICE_SINGLETHREADED                           = 0x1,
    939     D3D10_CREATE_DEVICE_DEBUG                                    = 0x2,
    940     D3D10_CREATE_DEVICE_SWITCH_TO_REF                            = 0x4,
    941     D3D10_CREATE_DEVICE_PREVENT_INTERNAL_THREADING_OPTIMIZATIONS = 0x8,
    942     D3D10_CREATE_DEVICE_ALLOW_NULL_FROM_MAP                      = 0x10,
    943     D3D10_CREATE_DEVICE_BGRA_SUPPORT                             = 0x20,
    944     D3D10_CREATE_DEVICE_STRICT_VALIDATION                        = 0x0200
    945 } D3D10_CREATE_DEVICE_FLAG;
    946 
    947 /* Core */
    948 
    949 interface ID3D10Device;
    950 
    951 [
    952     object,
    953     local,
    954     uuid(9b7e4c00-342c-4106-a19f-4f2704f689f0)
    955 ]
    956 interface ID3D10DeviceChild : IUnknown
    957 {
    958         void GetDevice(
    959             [out] ID3D10Device **ppDevice);
    960         HRESULT GetPrivateData(
    961             [in] REFGUID guid,
    962             [in, out] UINT *pDataSize,
    963             [out] void *pData);
    964         HRESULT SetPrivateData(
    965             [in] REFGUID guid,
    966             [in] UINT DataSize,
    967             [in] const void *pData);
    968         HRESULT SetPrivateDataInterface(
    969             [in] REFGUID guid,
    970             [in] const IUnknown *pData);
    971 }
    972 
    973 /* Resource */
    974 
    975 [
    976     object,
    977     local,
    978     uuid(9b7e4c01-342c-4106-a19f-4f2704f689f0)
    979 ]
    980 interface ID3D10Resource : ID3D10DeviceChild
    981 {
    982         void GetType(
    983             [out] D3D10_RESOURCE_DIMENSION *rType);
    984         void SetEvictionPriority(
    985             [in] UINT EvictionPriority);
    986         UINT GetEvictionPriority();
    987 }
    988 
    989 [
    990     object,
    991     local,
    992     uuid(9b7e4c02-342c-4106-a19f-4f2704f689f0)
    993 ]
    994 interface ID3D10Buffer : ID3D10Resource
    995 {
    996         HRESULT Map(
    997             [in] D3D10_MAP MapType,
    998             [in] UINT MapFlags,
    999             [out] void **ppData);
   1000         void Unmap();
   1001         void GetDesc(
   1002             [out] D3D10_BUFFER_DESC *pDesc);
   1003 }
   1004 
   1005 [
   1006     object,
   1007     local,
   1008     uuid(9b7e4c03-342c-4106-a19f-4f2704f689F0)
   1009 ]
   1010 interface ID3D10Texture1D : ID3D10Resource
   1011 {
   1012         HRESULT Map(
   1013             [in] UINT Subresource,
   1014             [in] D3D10_MAP MapType,
   1015             [in] UINT MapFlags,
   1016             [out] void **ppData);
   1017         void Unmap(
   1018             [in] UINT Subresource);
   1019         void GetDesc(
   1020             [out] D3D10_TEXTURE1D_DESC *pDesc);
   1021 }
   1022 
   1023 [
   1024     object,
   1025     local,
   1026     uuid(9b7e4c04-342c-4106-a19f-4f2704f689F0)
   1027 ]
   1028 interface ID3D10Texture2D : ID3D10Resource
   1029 {
   1030         HRESULT Map(
   1031             [in] UINT Subresource,
   1032             [in] D3D10_MAP MapType,
   1033             [in] UINT MapFlags,
   1034             [out] D3D10_MAPPED_TEXTURE2D *pMappedTex2D);
   1035         void Unmap(
   1036             [in] UINT Subresource);
   1037         void GetDesc(
   1038             [out] D3D10_TEXTURE2D_DESC *pDesc);
   1039 }
   1040 
   1041 [
   1042     object,
   1043     local,
   1044     uuid(9b7e4c05-342c-4106-a19f-4f2704f689F0)
   1045 ]
   1046 interface ID3D10Texture3D : ID3D10Resource
   1047 {
   1048         HRESULT Map(
   1049             [in] UINT Subresource,
   1050             [in] D3D10_MAP MapType,
   1051             [in] UINT MapFlags,
   1052             [out] D3D10_MAPPED_TEXTURE3D *pMappedTex3D);
   1053         void Unmap(
   1054             [in] UINT Subresource);
   1055         void GetDesc(
   1056             [out] D3D10_TEXTURE3D_DESC *pDesc);
   1057 }
   1058 
   1059 [
   1060     object,
   1061     local,
   1062     uuid(c902b03f-60a7-49ba-9936-2a3ab37a7e33)
   1063 ]
   1064 interface ID3D10View : ID3D10DeviceChild
   1065 {
   1066         void GetResource(
   1067             [out] ID3D10Resource **ppResource);
   1068 }
   1069 
   1070 [
   1071     object,
   1072     local,
   1073     uuid(9b7e4c09-342c-4106-a19f-4f2704f689f0)
   1074 ]
   1075 interface ID3D10DepthStencilView : ID3D10View
   1076 {
   1077         void GetDesc(
   1078             [out] D3D10_DEPTH_STENCIL_VIEW_DESC *pDesc);
   1079 }
   1080 
   1081 
   1082 [
   1083     object,
   1084     local,
   1085     uuid(9b7e4c08-342c-4106-a19f-4f2704f689f0)
   1086 ]
   1087 interface ID3D10RenderTargetView : ID3D10View
   1088 {
   1089         void GetDesc(
   1090             [out] D3D10_RENDER_TARGET_VIEW_DESC *pDesc);
   1091 }
   1092 
   1093 [
   1094     object,
   1095     local,
   1096     uuid(9b7e4c07-342c-4106-a19f-4f2704f689f0)
   1097 ]
   1098 interface ID3D10ShaderResourceView  : ID3D10View
   1099 {
   1100         void GetDesc(
   1101             [out] D3D10_SHADER_RESOURCE_VIEW_DESC *pDesc);
   1102 }
   1103 
   1104 /* Resource End */
   1105 
   1106 [
   1107     object,
   1108     local,
   1109     uuid(edad8d19-8a35-4d6d-8566-2ea276cde161)
   1110 ]
   1111 interface ID3D10BlendState : ID3D10DeviceChild
   1112 {
   1113     void GetDesc(
   1114             [out] D3D10_BLEND_DESC *pDesc);
   1115 }
   1116 
   1117 [
   1118     object,
   1119     local,
   1120     uuid(2b4b1cc8-a4ad-41f8-8322-ca86fc3ec675)
   1121 ]
   1122 interface ID3D10DepthStencilState : ID3D10DeviceChild
   1123 {
   1124     void GetDesc(
   1125             [out] D3D10_DEPTH_STENCIL_DESC *pDesc);
   1126 }
   1127 
   1128 [
   1129     object,
   1130     local,
   1131     uuid(6316be88-54cd-4040-ab44-20461bc81f68)
   1132 ]
   1133 interface ID3D10GeometryShader  : ID3D10DeviceChild
   1134 {
   1135 }
   1136 
   1137 [
   1138     object,
   1139     local,
   1140     uuid(9b7e4c0b-342c-4106-a19f-4f2704f689f0)
   1141 ]
   1142 interface ID3D10InputLayout  : ID3D10DeviceChild
   1143 {
   1144 }
   1145 
   1146 [
   1147     object,
   1148     local,
   1149     uuid(4968b601-9d00-4cde-8346-8e7f675819b6)
   1150 ]
   1151 interface ID3D10PixelShader  : ID3D10DeviceChild
   1152 {
   1153 }
   1154 
   1155 [
   1156     object,
   1157     local,
   1158     uuid(a2a07292-89af-4345-be2e-c53d9fbb6e9f)
   1159 ]
   1160 interface ID3D10RasterizerState  : ID3D10DeviceChild
   1161 {
   1162     void GetDesc(
   1163             [out] D3D10_RASTERIZER_DESC *pDesc);
   1164 }
   1165 
   1166 [
   1167     object,
   1168     local,
   1169     uuid(9b7e4c0c-342c-4106-a19f-4f2704f689f0)
   1170 ]
   1171 interface ID3D10SamplerState  : ID3D10DeviceChild
   1172 {
   1173     void GetDesc(
   1174             [out] D3D10_SAMPLER_DESC *pDesc);
   1175 }
   1176 
   1177 [
   1178     object,
   1179     local,
   1180     uuid(9b7e4c0a-342c-4106-a19f-4f2704f689f0)
   1181 ]
   1182 interface ID3D10VertexShader  : ID3D10DeviceChild
   1183 {
   1184 }
   1185 
   1186 [
   1187     object,
   1188     local,
   1189     uuid(9b7e4c0d-342c-4106-a19f-4f2704f689f0)
   1190 ]
   1191 interface ID3D10Asynchronous  : ID3D10DeviceChild
   1192 {
   1193     void Begin();
   1194     void End();
   1195     HRESULT GetData(
   1196             [out] void *pData,
   1197             [in] UINT DataSize,
   1198             [in] UINT GetDataFlags);
   1199     UINT GetDataSize();
   1200 }
   1201 
   1202 [
   1203     object,
   1204     local,
   1205     uuid(9b7e4c11-342c-4106-a19f-4f2704f689f0)
   1206 ]
   1207 interface ID3D10Counter  : ID3D10Asynchronous
   1208 {
   1209     void GetDesc(
   1210             [out] D3D10_COUNTER_DESC *pDesc);
   1211 }
   1212 
   1213 [
   1214     object,
   1215     local,
   1216     uuid(9b7e4C0e-342C-4106-a19f-4f2704f689f0)
   1217 ]
   1218 interface ID3D10Query : ID3D10Asynchronous
   1219 {
   1220     void GetDesc(
   1221             [out] D3D10_QUERY_DESC *pDesc);
   1222 }
   1223 
   1224 [
   1225     object,
   1226     local,
   1227     uuid(9b7e4c10-342c-4106-a19f-4f2704f689f0)
   1228 ]
   1229 interface ID3D10Predicate : ID3D10Query
   1230 {
   1231 }
   1232 
   1233 [
   1234     object,
   1235     local,
   1236     uuid(9b7e4c0f-342c-4106-a19f-4f2704f689f0)
   1237 ]
   1238 interface ID3D10Device : IUnknown
   1239 {
   1240         void VSSetConstantBuffers(
   1241             [in] UINT StartSlot,
   1242             [in] UINT NumBuffers,
   1243             [in] ID3D10Buffer *const *ppConstantBuffers);
   1244         void PSSetShaderResources(
   1245             [in] UINT StartSlot,
   1246             [in] UINT NumViews,
   1247             [in] ID3D10ShaderResourceView *const *ppShaderResourceViews);
   1248         void PSSetShader(
   1249             [in] ID3D10PixelShader *pPixelShader);
   1250         void PSSetSamplers(
   1251             [in] UINT StartSlot,
   1252             [in] UINT NumSamplers,
   1253             [in]ID3D10SamplerState *const *ppSamplers);
   1254         void VSSetShader(
   1255             [in] ID3D10VertexShader *pVertexShader);
   1256         void DrawIndexed(
   1257             [in] UINT IndexCount,
   1258             [in] UINT StartIndexLocation,
   1259             [in] INT BaseVertexLocation);
   1260         void Draw(
   1261             [in] UINT VertexCount,
   1262             [in] UINT StartVertexLocation);
   1263         void PSSetConstantBuffers(
   1264             [in] UINT StartSlot,
   1265             [in] UINT NumBuffers,
   1266             [in] ID3D10Buffer *const *ppConstantBuffers);
   1267         void IASetInputLayout(
   1268             [in] ID3D10InputLayout *pInputLayout);
   1269         void IASetVertexBuffers(
   1270             [in] UINT StartSlot,
   1271             [in] UINT NumBuffers,
   1272             [in] ID3D10Buffer *const *ppVertexBuffers,
   1273             [in] const UINT *pStrides,
   1274             [in] const UINT *pOffsets);
   1275         void IASetIndexBuffer(
   1276             [in] ID3D10Buffer *pIndexBuffer,
   1277             [in] DXGI_FORMAT Format,
   1278             [in] UINT Offset);
   1279         void DrawIndexedInstanced(
   1280             [in] UINT IndexCountPerInstance,
   1281             [in] UINT InstanceCount,
   1282             [in] UINT StartIndexLocation,
   1283             [in] INT BaseVertexLocation,
   1284             [in] UINT StartInstanceLocation);
   1285         void DrawInstanced(
   1286             [in] UINT VertexCountPerInstance,
   1287             [in] UINT InstanceCount,
   1288             [in] UINT StartVertexLocation,
   1289             [in] UINT StartInstanceLocation);
   1290         void GSSetConstantBuffers(
   1291             [in] UINT StartSlot,
   1292             [in] UINT NumBuffers,
   1293             [in] ID3D10Buffer *const *ppConstantBuffers);
   1294         void GSSetShader(
   1295             [in] ID3D10GeometryShader *pShader);
   1296         void IASetPrimitiveTopology(
   1297             [in] D3D10_PRIMITIVE_TOPOLOGY Topology);
   1298         void VSSetShaderResources(
   1299             [in] UINT StartSlot,
   1300             [in] UINT NumViews,
   1301             [in] ID3D10ShaderResourceView *const *ppShaderResourceViews);
   1302         void VSSetSamplers(
   1303             [in] UINT StartSlot,
   1304             [in] UINT NumSamplers,
   1305             [in] ID3D10SamplerState *const *ppSamplers);
   1306         void SetPredication(
   1307             [in] ID3D10Predicate *pPredicate,
   1308             [in] BOOL PredicateValue);
   1309         void GSSetShaderResources(
   1310             [in] UINT StartSlot,
   1311             [in] UINT NumViews,
   1312             [in] ID3D10ShaderResourceView * const *ppShaderResourceViews);
   1313         void GSSetSamplers(
   1314             [in] UINT StartSlot,
   1315             [in] UINT NumSamplers,
   1316             [in] ID3D10SamplerState *const *ppSamplers);
   1317         void OMSetRenderTargets(
   1318             [in] UINT NumViews,
   1319             [in] ID3D10RenderTargetView *const *ppRenderTargetViews,
   1320             [in] ID3D10DepthStencilView *pDepthStencilView);
   1321         void OMSetBlendState(
   1322             [in] ID3D10BlendState *pBlendState,
   1323             [in] const FLOAT BlendFactor[4],
   1324             [in] UINT SampleMask);
   1325         void OMSetDepthStencilState(
   1326             [in] ID3D10DepthStencilState *pDepthStencilState,
   1327             [in] UINT StencilRef);
   1328         void SOSetTargets(
   1329             [in] UINT NumBuffers,
   1330             [in] ID3D10Buffer *const *ppSOTargets,
   1331             [in] const UINT *pOffsets);
   1332         void DrawAuto();
   1333         void RSSetState(
   1334             [in] ID3D10RasterizerState *pRasterizerState);
   1335         void RSSetViewports(
   1336             [in] UINT NumViewports,
   1337             [in] const D3D10_VIEWPORT *pViewports);
   1338         void RSSetScissorRects(
   1339             [in] UINT NumRects,
   1340             [in] const D3D10_RECT *pRects);
   1341         void CopySubresourceRegion(
   1342             [in] ID3D10Resource *pDstResource,
   1343             [in] UINT DstSubresource,
   1344             [in] UINT DstX,
   1345             [in] UINT DstY,
   1346             [in] UINT DstZ,
   1347             [in] ID3D10Resource *pSrcResource,
   1348             [in] UINT SrcSubresource,
   1349             [in] const D3D10_BOX *pSrcBox);
   1350         void CopyResource(
   1351             [in] ID3D10Resource *pDstResource,
   1352             [in] ID3D10Resource *pSrcResource);
   1353         void UpdateSubresource(
   1354             [in] ID3D10Resource *pDstResource,
   1355             [in] UINT DstSubresource,
   1356             [in] const D3D10_BOX *pDstBox,
   1357             [in] const void *pSrcData,
   1358             [in] UINT SrcRowPitch,
   1359             [in] UINT SrcDepthPitch);
   1360         void ClearRenderTargetView(
   1361             [in] ID3D10RenderTargetView *pRenderTargetView,
   1362             [in] const FLOAT ColorRGBA[4]);
   1363         void ClearDepthStencilView(
   1364             [in] ID3D10DepthStencilView *pDepthStencilView,
   1365             [in] UINT ClearFlags,
   1366             [in] FLOAT Depth,
   1367             [in] UINT8 Stencil);
   1368         void GenerateMips(
   1369             [in] ID3D10ShaderResourceView *pShaderResourceView);
   1370         void ResolveSubresource(
   1371             [in] ID3D10Resource *pDstResource,
   1372             [in] UINT DstSubresource,
   1373             [in] ID3D10Resource *pSrcResource,
   1374             [in] UINT SrcSubresource,
   1375             [in] DXGI_FORMAT Format);
   1376         void VSGetConstantBuffers(
   1377             [in] UINT StartSlot,
   1378             [in] UINT NumBuffers,
   1379             [out] ID3D10Buffer **ppConstantBuffers);
   1380         void PSGetShaderResources(
   1381             [in] UINT StartSlot,
   1382             [in] UINT NumViews,
   1383             [out] ID3D10ShaderResourceView **ppShaderResourceViews);
   1384         void PSGetShader(
   1385             [out] ID3D10PixelShader **ppPixelShader);
   1386         void PSGetSamplers(
   1387             [in] UINT StartSlot,
   1388             [in] UINT NumSamplers,
   1389             [out] ID3D10SamplerState **ppSamplers);
   1390         void VSGetShader(
   1391             [out] ID3D10VertexShader **ppVertexShader);
   1392         void PSGetConstantBuffers(
   1393             [in] UINT StartSlot,
   1394             [in] UINT NumBuffers,
   1395             [out] ID3D10Buffer **ppConstantBuffers);
   1396         void IAGetInputLayout(
   1397             [out] ID3D10InputLayout **ppInputLayout);
   1398         void IAGetVertexBuffers(
   1399             [in] UINT StartSlot,
   1400             [in] UINT NumBuffers,
   1401             [out] ID3D10Buffer **ppVertexBuffers,
   1402             [out] UINT *pStrides,
   1403             [out] UINT *pOffsets);
   1404         void IAGetIndexBuffer(
   1405             [out] ID3D10Buffer **pIndexBuffer,
   1406             [out] DXGI_FORMAT *Format,
   1407             [out] UINT *Offset);
   1408         void GSGetConstantBuffers(
   1409             [in] UINT StartSlot,
   1410             [in] UINT NumBuffers,
   1411             [out] ID3D10Buffer **ppConstantBuffers);
   1412         void GSGetShader(
   1413             [out] ID3D10GeometryShader **ppGeometryShader);
   1414         void IAGetPrimitiveTopology(
   1415             [out] D3D10_PRIMITIVE_TOPOLOGY *pTopology);
   1416         void VSGetShaderResources(
   1417             [in] UINT StartSlot,
   1418             [in] UINT NumViews,
   1419             [out] ID3D10ShaderResourceView **ppShaderResourceViews);
   1420         void VSGetSamplers(
   1421             [in] UINT StartSlot,
   1422             [in] UINT NumSamplers,
   1423             [out] ID3D10SamplerState **ppSamplers);
   1424         void GetPredication(
   1425             [out] ID3D10Predicate **ppPredicate,
   1426             [out] BOOL *pPredicateValue);
   1427         void GSGetShaderResources(
   1428             [in] UINT StartSlot,
   1429             [in] UINT NumViews,
   1430             [out] ID3D10ShaderResourceView **ppShaderResourceViews);
   1431         void GSGetSamplers(
   1432             [in] UINT StartSlot,
   1433             [in] UINT NumSamplers,
   1434             [out] ID3D10SamplerState **ppSamplers);
   1435         void OMGetRenderTargets(
   1436             [in] UINT NumViews,
   1437             [out] ID3D10RenderTargetView **ppRenderTargetViews,
   1438             [out] ID3D10DepthStencilView **ppDepthStencilView);
   1439         void OMGetBlendState(
   1440             [out] ID3D10BlendState **ppBlendState,
   1441             [out] FLOAT BlendFactor[4],
   1442             [out] UINT *pSampleMask);
   1443         void OMGetDepthStencilState(
   1444             [out] ID3D10DepthStencilState **ppDepthStencilState,
   1445             [out] UINT *pStencilRef);
   1446         void SOGetTargets(
   1447             [in] UINT NumBuffers,
   1448             [out] ID3D10Buffer **ppSOTargets,
   1449             [out] UINT *pOffsets);
   1450         void RSGetState(
   1451             [out] ID3D10RasterizerState **ppRasterizerState);
   1452         void RSGetViewports(
   1453             [in, out] UINT *NumViewports,
   1454             [out] D3D10_VIEWPORT *pViewports);
   1455         void RSGetScissorRects(
   1456             [in, out] UINT *NumRects,
   1457             [out] D3D10_RECT *pRects);
   1458         HRESULT GetDeviceRemovedReason();
   1459         HRESULT SetExceptionMode(
   1460             [in] UINT RaiseFlags);
   1461         UINT GetExceptionMode();
   1462         HRESULT GetPrivateData(
   1463             [in] REFGUID guid,
   1464             [in, out] UINT *pDataSize,
   1465             [out] void *pData);
   1466         HRESULT SetPrivateData(
   1467             [in] REFGUID guid,
   1468             [in] UINT DataSize,
   1469             [in] const void *pData);
   1470         HRESULT SetPrivateDataInterface(
   1471             [in] REFGUID guid,
   1472             [in] const IUnknown *pData);
   1473         void ClearState();
   1474         void Flush();
   1475         HRESULT CreateBuffer(
   1476             [in] const D3D10_BUFFER_DESC *pDesc,
   1477             [in] const D3D10_SUBRESOURCE_DATA *pInitialData,
   1478             [out] ID3D10Buffer **ppBuffer);
   1479         HRESULT CreateTexture1D(
   1480             [in] const D3D10_TEXTURE1D_DESC *pDesc,
   1481             [in] const D3D10_SUBRESOURCE_DATA *pInitialData,
   1482             [out] ID3D10Texture1D **ppTexture1D);
   1483         HRESULT CreateTexture2D(
   1484             [in] const D3D10_TEXTURE2D_DESC *pDesc,
   1485             [in] const D3D10_SUBRESOURCE_DATA *pInitialData,
   1486             [out] ID3D10Texture2D **ppTexture2D);
   1487         HRESULT CreateTexture3D(
   1488             [in] const D3D10_TEXTURE3D_DESC *pDesc,
   1489             [in] const D3D10_SUBRESOURCE_DATA *pInitialData,
   1490             [out] ID3D10Texture3D **ppTexture3D);
   1491         HRESULT CreateShaderResourceView(
   1492             [in] ID3D10Resource *pResource,
   1493             [in] const D3D10_SHADER_RESOURCE_VIEW_DESC *pDesc,
   1494             [out] ID3D10ShaderResourceView **ppSRView);
   1495         HRESULT CreateRenderTargetView(
   1496             [in] ID3D10Resource *pResource,
   1497             [in] const D3D10_RENDER_TARGET_VIEW_DESC *pDesc,
   1498             [out] ID3D10RenderTargetView **ppRTView);
   1499         HRESULT CreateDepthStencilView(
   1500             [in] ID3D10Resource *pResource,
   1501             [in] const D3D10_DEPTH_STENCIL_VIEW_DESC *pDesc,
   1502             [out] ID3D10DepthStencilView **ppDepthStencilView);
   1503         HRESULT CreateInputLayout(
   1504             [in] const D3D10_INPUT_ELEMENT_DESC *pInputElementDescs,
   1505             [in] UINT NumElements,
   1506             [in] const void *pShaderBytecodeWithInputSignature,
   1507             [in] SIZE_T BytecodeLength,
   1508             [out] ID3D10InputLayout **ppInputLayout);
   1509         HRESULT CreateVertexShader(
   1510             [in] const void *pShaderBytecode,
   1511             [in] SIZE_T BytecodeLength,
   1512             [out] ID3D10VertexShader **ppVertexShader);
   1513         HRESULT CreateGeometryShader(
   1514             [in] const void *pShaderBytecode,
   1515             [in] SIZE_T BytecodeLength,
   1516             [out] ID3D10GeometryShader **ppGeometryShader);
   1517         HRESULT CreateGeometryShaderWithStreamOutput(
   1518             [in] const void *pShaderBytecode,
   1519             [in] SIZE_T BytecodeLength,
   1520             [in] const D3D10_SO_DECLARATION_ENTRY *pSODeclaration,
   1521             [in] UINT NumEntries,
   1522             [in] UINT OutputStreamStride,
   1523             [out] ID3D10GeometryShader **ppGeometryShader);
   1524         HRESULT CreatePixelShader(
   1525             [in] const void *pShaderBytecode,
   1526             [in] SIZE_T BytecodeLength,
   1527             [out] ID3D10PixelShader **ppPixelShader);
   1528         HRESULT CreateBlendState(
   1529             [in] const D3D10_BLEND_DESC *pBlendStateDesc,
   1530             [out] ID3D10BlendState **ppBlendState);
   1531         HRESULT CreateDepthStencilState(
   1532             [in] const D3D10_DEPTH_STENCIL_DESC *pDepthStencilDesc,
   1533             [out] ID3D10DepthStencilState **ppDepthStencilState);
   1534         HRESULT CreateRasterizerState(
   1535             [in] const D3D10_RASTERIZER_DESC *pRasterizerDesc,
   1536             [out] ID3D10RasterizerState **ppRasterizerState);
   1537         HRESULT CreateSamplerState(
   1538             [in] const D3D10_SAMPLER_DESC *pSamplerDesc,
   1539             [out] ID3D10SamplerState **ppSamplerState);
   1540         HRESULT CreateQuery(
   1541             [in] const D3D10_QUERY_DESC *pQueryDesc,
   1542             [out] ID3D10Query **ppQuery);
   1543         HRESULT CreatePredicate(
   1544             [in] const D3D10_QUERY_DESC *pPredicateDesc,
   1545             [out] ID3D10Predicate **ppPredicate);
   1546         HRESULT CreateCounter(
   1547             [in] const D3D10_COUNTER_DESC *pCounterDesc,
   1548             [out] ID3D10Counter **ppCounter);
   1549         HRESULT CheckFormatSupport(
   1550             [in] DXGI_FORMAT Format,
   1551             [out] UINT *pFormatSupport);
   1552         HRESULT CheckMultisampleQualityLevels(
   1553             [in] DXGI_FORMAT Format,
   1554             [in] UINT SampleCount,
   1555             [out] UINT *pNumQualityLevels);
   1556         void CheckCounterInfo(
   1557             [out] D3D10_COUNTER_INFO *pCounterInfo);
   1558         HRESULT CheckCounter(
   1559             [in] const D3D10_COUNTER_DESC *pDesc,
   1560             [out] D3D10_COUNTER_TYPE *pType,
   1561             [out] UINT *pActiveCounters,
   1562             [out] LPSTR szName,
   1563             [in, out] UINT *pNameLength,
   1564             [out] LPSTR szUnits,
   1565             [in, out] UINT *pUnitsLength,
   1566             [out] LPSTR szDescription,
   1567             [in, out] UINT *pDescriptionLength);
   1568         UINT GetCreationFlags();
   1569         HRESULT OpenSharedResource(
   1570             [in] HANDLE hResource,
   1571             [in] REFIID ReturnedInterface,
   1572             [out] void **ppResource);
   1573         void SetTextFilterSize(
   1574             [in] UINT Width,
   1575             [in] UINT Height);
   1576         void GetTextFilterSize(
   1577             [out] UINT *pWidth,
   1578             [out] UINT *pHeight);
   1579 }
   1580 
   1581 [
   1582     object,
   1583     local,
   1584     uuid(9b7e4e00-342c-4106-a19f-4f2704f689f0)
   1585 ]
   1586 interface ID3D10Multithread : IUnknown
   1587 {
   1588         void Enter();
   1589         void Leave();
   1590         BOOL SetMultithreadProtected(
   1591             [in] BOOL bMTProtect);
   1592         BOOL GetMultithreadProtected();
   1593 }
   1594 
   1595 cpp_quote("#ifndef D3D10_IGNORE_SDK_LAYERS")
   1596 cpp_quote("/* FIXME: # include <d3d10sdklayers.h> */")
   1597 cpp_quote("#endif")
   1598 cpp_quote("#include \"d3d10misc.h\"")
   1599 cpp_quote("#include \"d3d10shader.h\"")
   1600 cpp_quote("#include \"d3d10effect.h\"")
   1601