Home | History | Annotate | Download | only in include
      1 /*
      2  * Copyright 2010 Jacek Caban for CodeWeavers
      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 
     22 cpp_quote("#ifndef _D3D10_1_CONSTANTS")
     23 cpp_quote("#define _D3D10_1_CONSTANTS")
     24 const UINT D3D10_1_DEFAULT_SAMPLE_MASK                     = 0xffffffff;
     25 const UINT D3D10_1_GS_INPUT_REGISTER_COUNT                 = 32;
     26 const UINT D3D10_1_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT     = 32;
     27 const UINT D3D10_1_IA_VERTEX_INPUT_STRUCTURE_ELEMENTS_COMPONENTS = 128;
     28 const UINT D3D10_1_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT = 32;
     29 const UINT D3D10_1_PS_OUTPUT_MASK_REGISTER_COMPONENTS      = 1;
     30 const UINT D3D10_1_PS_OUTPUT_MASK_REGISTER_COMPONENT_BIT_COUNT = 32;
     31 const UINT D3D10_1_PS_OUTPUT_MASK_REGISTER_COUNT           = 1;
     32 const UINT D3D10_1_SHADER_MAJOR_VERSION                    = 4;
     33 const UINT D3D10_1_SHADER_MINOR_VERSION                    = 1;
     34 const UINT D3D10_1_SO_BUFFER_MAX_STRIDE_IN_BYTES           = 2048;
     35 const UINT D3D10_1_SO_BUFFER_MAX_WRITE_WINDOW_IN_BYTES     = 256;
     36 const UINT D3D10_1_SO_BUFFER_SLOT_COUNT                    = 4;
     37 const UINT D3D10_1_SO_MULTIPLE_BUFFER_ELEMENTS_PER_BUFFER  = 1;
     38 const UINT D3D10_1_SO_SINGLE_BUFFER_COMPONENT_LIMIT        = 64;
     39 const UINT D3D10_1_STANDARD_VERTEX_ELEMENT_COUNT           = 32;
     40 const UINT D3D10_1_SUBPIXEL_FRACTIONAL_BIT_COUNT           = 8;
     41 const UINT D3D10_1_VS_INPUT_REGISTER_COUNT                 = 32;
     42 const UINT D3D10_1_VS_OUTPUT_REGISTER_COUNT                = 32;
     43 cpp_quote("#endif")
     44 
     45 cpp_quote("#define D3D10_1_FLOAT16_FUSED_TOLERANCE_IN_ULP      (0.6)")
     46 cpp_quote("#define D3D10_1_FLOAT32_TO_INTEGER_TOLERANCE_IN_ULP (0.6f)")
     47 
     48 import "d3d10.idl";
     49 cpp_quote("#include <d3d10_1shader.h>")
     50 
     51 
     52 typedef enum D3D10_FEATURE_LEVEL1
     53 {
     54     D3D10_FEATURE_LEVEL_10_0  = 0xa000,
     55     D3D10_FEATURE_LEVEL_10_1  = 0xa100,
     56     D3D10_FEATURE_LEVEL_9_1   = 0x9100,
     57     D3D10_FEATURE_LEVEL_9_2   = 0x9200,
     58     D3D10_FEATURE_LEVEL_9_3   = 0x9300
     59 } D3D10_FEATURE_LEVEL1;
     60 
     61 typedef struct D3D10_RENDER_TARGET_BLEND_DESC1
     62 {
     63     BOOL BlendEnable;
     64     D3D10_BLEND SrcBlend;
     65     D3D10_BLEND DestBlend;
     66     D3D10_BLEND_OP BlendOp;
     67     D3D10_BLEND SrcBlendAlpha;
     68     D3D10_BLEND DestBlendAlpha;
     69     D3D10_BLEND_OP BlendOpAlpha;
     70     UINT8 RenderTargetWriteMask;
     71 } D3D10_RENDER_TARGET_BLEND_DESC1;
     72 
     73 typedef struct D3D10_BLEND_DESC1
     74 {
     75     BOOL AlphaToCoverageEnable;
     76     BOOL IndependentBlendEnable;
     77     D3D10_RENDER_TARGET_BLEND_DESC1 RenderTarget[D3D10_SIMULTANEOUS_RENDER_TARGET_COUNT];
     78 } D3D10_BLEND_DESC1;
     79 
     80 [
     81     uuid(edad8d99-8a35-4d6d-8566-2ea276cde161),
     82     object,
     83     local,
     84     pointer_default(unique)
     85 ]
     86 interface ID3D10BlendState1 : ID3D10BlendState
     87 {
     88     void GetDesc1([out] D3D10_BLEND_DESC1 *pDesc);
     89 }
     90 
     91 typedef struct D3D10_TEXCUBE_ARRAY_SRV1
     92 {
     93     UINT MostDetailedMip;
     94     UINT MipLevels;
     95     UINT First2DArrayFace;
     96     UINT NumCubes;
     97 } D3D10_TEXCUBE_ARRAY_SRV1;
     98 
     99 typedef D3D_SRV_DIMENSION D3D10_SRV_DIMENSION1;
    100 
    101 typedef struct D3D10_SHADER_RESOURCE_VIEW_DESC1
    102 {
    103     DXGI_FORMAT Format;
    104     D3D10_SRV_DIMENSION1  ViewDimension;
    105     union {
    106         D3D10_BUFFER_SRV Buffer;
    107         D3D10_TEX1D_SRV Texture1D;
    108         D3D10_TEX1D_ARRAY_SRV Texture1DArray;
    109         D3D10_TEX2D_SRV Texture2D;
    110         D3D10_TEX2D_ARRAY_SRV Texture2DArray;
    111         D3D10_TEX2DMS_SRV Texture2DMS;
    112         D3D10_TEX2DMS_ARRAY_SRV Texture2DMSArray;
    113         D3D10_TEX3D_SRV Texture3D;
    114         D3D10_TEXCUBE_SRV TextureCube;
    115         D3D10_TEXCUBE_ARRAY_SRV1 TextureCubeArray;
    116     };
    117 } D3D10_SHADER_RESOURCE_VIEW_DESC1;
    118 
    119 [
    120     uuid(9b7e4c87-342c-4106-a19f-4f2704f689f0),
    121     object,
    122     local,
    123     pointer_default(unique)
    124 ]
    125 interface ID3D10ShaderResourceView1 : ID3D10ShaderResourceView
    126 {
    127     void GetDesc1([out] D3D10_SHADER_RESOURCE_VIEW_DESC1 *pDesc);
    128 }
    129 
    130 [
    131     uuid(9b7e4c8f-342c-4106-a19f-4f2704f689f0),
    132     object,
    133     local,
    134     pointer_default(unique)
    135 ]
    136 interface ID3D10Device1 : ID3D10Device
    137 {
    138     HRESULT CreateShaderResourceView1(
    139             [in] ID3D10Resource *pResource,
    140             [in, out] const D3D10_SHADER_RESOURCE_VIEW_DESC1 *pDesc,
    141             [out] ID3D10ShaderResourceView1 **ppSRView);
    142 
    143     HRESULT CreateBlendState1(
    144             [in] const D3D10_BLEND_DESC1 *pBlendStateDesc,
    145             [out] ID3D10BlendState1 **ppBlendState);
    146 
    147     D3D10_FEATURE_LEVEL1 GetFeatureLevel();
    148 }
    149 
    150 const UINT D3D10_1_SDK_VERSION = 0x20;
    151 
    152 cpp_quote("HRESULT WINAPI D3D10CreateDevice1(IDXGIAdapter*,D3D10_DRIVER_TYPE,")
    153 cpp_quote("    HMODULE,UINT,D3D10_FEATURE_LEVEL1,UINT,ID3D10Device1**);")
    154