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