[1166] | 1 | /*
|
---|
| 2 | * Copyright 2017 Ihsan Akmal
|
---|
| 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 "dxgi1_3.idl";
|
---|
| 22 | import "d3dcommon.idl";
|
---|
| 23 | import "d3d11_2.idl";
|
---|
| 24 |
|
---|
| 25 | typedef enum D3D11_CONTEXT_TYPE
|
---|
| 26 | {
|
---|
| 27 | D3D11_CONTEXT_TYPE_ALL = 0x0,
|
---|
| 28 | D3D11_CONTEXT_TYPE_3D = 0x1,
|
---|
| 29 | D3D11_CONTEXT_TYPE_COMPUTE = 0x2,
|
---|
| 30 | D3D11_CONTEXT_TYPE_COPY = 0x3,
|
---|
| 31 | D3D11_CONTEXT_TYPE_VIDEO = 0x4,
|
---|
| 32 | } D3D11_CONTEXT_TYPE;
|
---|
| 33 |
|
---|
| 34 | typedef enum D3D11_TEXTURE_LAYOUT
|
---|
| 35 | {
|
---|
| 36 | D3D11_TEXTURE_LAYOUT_UNDEFINED = 0x0,
|
---|
| 37 | D3D11_TEXTURE_LAYOUT_ROW_MAJOR = 0x1,
|
---|
| 38 | D3D11_TEXTURE_LAYOUT_64K_STANDARD_SWIZZLE = 0x2,
|
---|
| 39 | } D3D11_TEXTURE_LAYOUT;
|
---|
| 40 |
|
---|
| 41 | typedef enum D3D11_CONSERVATIVE_RASTERIZATION_MODE
|
---|
| 42 | {
|
---|
| 43 | D3D11_CONSERVATIVE_RASTERIZATION_MODE_OFF = 0x0,
|
---|
| 44 | D3D11_CONSERVATIVE_RASTERIZATION_MODE_ON = 0x1,
|
---|
| 45 | } D3D11_CONSERVATIVE_RASTERIZATION_MODE;
|
---|
| 46 |
|
---|
| 47 | typedef enum D3D11_FENCE_FLAG
|
---|
| 48 | {
|
---|
| 49 | D3D11_FENCE_FLAG_NONE = 0x1,
|
---|
| 50 | D3D11_FENCE_FLAG_SHARED = 0x2,
|
---|
| 51 | D3D11_FENCE_FLAG_SHARED_CROSS_ADAPTER = 0x4,
|
---|
| 52 | D3D11_FENCE_FLAG_NON_MONITORED = 0x8,
|
---|
| 53 | } D3D11_FENCE_FLAG;
|
---|
| 54 |
|
---|
| 55 | typedef struct D3D11_TEXTURE2D_DESC1
|
---|
| 56 | {
|
---|
| 57 | UINT Width;
|
---|
| 58 | UINT Height;
|
---|
| 59 | UINT MipLevels;
|
---|
| 60 | UINT ArraySize;
|
---|
| 61 | DXGI_FORMAT Format;
|
---|
| 62 | DXGI_SAMPLE_DESC SampleDesc;
|
---|
| 63 | D3D11_USAGE Usage;
|
---|
| 64 | UINT BindFlags;
|
---|
| 65 | UINT CPUAccessFlags;
|
---|
| 66 | UINT MiscFlags;
|
---|
| 67 | D3D11_TEXTURE_LAYOUT TextureLayout;
|
---|
| 68 | } D3D11_TEXTURE2D_DESC1;
|
---|
| 69 |
|
---|
| 70 | typedef struct D3D11_TEXTURE3D_DESC1
|
---|
| 71 | {
|
---|
| 72 | UINT Width;
|
---|
| 73 | UINT Height;
|
---|
| 74 | UINT Depth;
|
---|
| 75 | UINT MipLevels;
|
---|
| 76 | DXGI_FORMAT Format;
|
---|
| 77 | D3D11_USAGE Usage;
|
---|
| 78 | UINT BindFlags;
|
---|
| 79 | UINT CPUAccessFlags;
|
---|
| 80 | UINT MiscFlags;
|
---|
| 81 | D3D11_TEXTURE_LAYOUT TextureLayout;
|
---|
| 82 | } D3D11_TEXTURE3D_DESC1;
|
---|
| 83 |
|
---|
| 84 | typedef struct D3D11_RASTERIZER_DESC2
|
---|
| 85 | {
|
---|
| 86 | D3D11_FILL_MODE FillMode;
|
---|
| 87 | D3D11_CULL_MODE CullMode;
|
---|
| 88 | BOOL FrontCounterClockwise;
|
---|
| 89 | int DepthBias;
|
---|
| 90 | float DepthBiasClamp;
|
---|
| 91 | float SlopeScaledDepthBias;
|
---|
| 92 | BOOL DepthClipEnable;
|
---|
| 93 | BOOL ScissorEnable;
|
---|
| 94 | BOOL MultisampleEnable;
|
---|
| 95 | BOOL AntialiasedLineEnable;
|
---|
| 96 | UINT ForcedSampleCount;
|
---|
| 97 | D3D11_CONSERVATIVE_RASTERIZATION_MODE ConservativeRaster;
|
---|
| 98 | } D3D11_RASTERIZER_DESC2;
|
---|
| 99 |
|
---|
| 100 | typedef struct D3D11_TEX2D_SRV1
|
---|
| 101 | {
|
---|
| 102 | UINT MostDetailedMip;
|
---|
| 103 | UINT MipLevels;
|
---|
| 104 | UINT PlaneSlice;
|
---|
| 105 | } D3D11_TEX2D_SRV1;
|
---|
| 106 |
|
---|
| 107 | typedef struct D3D11_TEX2D_ARRAY_SRV1
|
---|
| 108 | {
|
---|
| 109 | UINT MostDetailedMip;
|
---|
| 110 | UINT MipLevels;
|
---|
| 111 | UINT FirstArraySlice;
|
---|
| 112 | UINT ArraySize;
|
---|
| 113 | UINT PlaneSlice;
|
---|
| 114 | } D3D11_TEX2D_ARRAY_SRV1;
|
---|
| 115 |
|
---|
| 116 | typedef struct D3D11_SHADER_RESOURCE_VIEW_DESC1
|
---|
| 117 | {
|
---|
| 118 | DXGI_FORMAT Format;
|
---|
| 119 | D3D11_SRV_DIMENSION ViewDimension;
|
---|
| 120 |
|
---|
| 121 | union
|
---|
| 122 | {
|
---|
| 123 | D3D11_BUFFER_SRV Buffer;
|
---|
| 124 | D3D11_TEX1D_SRV Texture1D;
|
---|
| 125 | D3D11_TEX1D_ARRAY_SRV Texture1DArray;
|
---|
| 126 | D3D11_TEX2D_SRV1 Texture2D;
|
---|
| 127 | D3D11_TEX2D_ARRAY_SRV1 Texture2DArray;
|
---|
| 128 | D3D11_TEX2DMS_SRV Texture2DMS;
|
---|
| 129 | D3D11_TEX2DMS_ARRAY_SRV Texture2DMSArray;
|
---|
| 130 | D3D11_TEX3D_SRV Texture3D;
|
---|
| 131 | D3D11_TEXCUBE_SRV TextureCube;
|
---|
| 132 | D3D11_TEXCUBE_ARRAY_SRV TextureCubeArray;
|
---|
| 133 | D3D11_BUFFEREX_SRV BufferEx;
|
---|
| 134 | };
|
---|
| 135 | } D3D11_SHADER_RESOURCE_VIEW_DESC1;
|
---|
| 136 |
|
---|
| 137 | typedef struct D3D11_TEX2D_RTV1
|
---|
| 138 | {
|
---|
| 139 | UINT MipSlice;
|
---|
| 140 | UINT PlaneSlice;
|
---|
| 141 | } D3D11_TEX2D_RTV1;
|
---|
| 142 |
|
---|
| 143 | typedef struct D3D11_TEX2D_ARRAY_RTV1
|
---|
| 144 | {
|
---|
| 145 | UINT MipSlice;
|
---|
| 146 | UINT FirstArraySlice;
|
---|
| 147 | UINT ArraySize;
|
---|
| 148 | UINT PlaneSlice;
|
---|
| 149 | } D3D11_TEX2D_ARRAY_RTV1;
|
---|
| 150 |
|
---|
| 151 | typedef struct D3D11_RENDER_TARGET_VIEW_DESC1
|
---|
| 152 | {
|
---|
| 153 | DXGI_FORMAT Format;
|
---|
| 154 | D3D11_RTV_DIMENSION ViewDimension;
|
---|
| 155 |
|
---|
| 156 | union
|
---|
| 157 | {
|
---|
| 158 | D3D11_BUFFER_RTV Buffer;
|
---|
| 159 | D3D11_TEX1D_RTV Texture1D;
|
---|
| 160 | D3D11_TEX1D_ARRAY_RTV Texture1DArray;
|
---|
| 161 | D3D11_TEX2D_RTV1 Texture2D;
|
---|
| 162 | D3D11_TEX2D_ARRAY_RTV1 Texture2DArray;
|
---|
| 163 | D3D11_TEX2DMS_RTV Texture2DMS;
|
---|
| 164 | D3D11_TEX2DMS_ARRAY_RTV Texture2DMSArray;
|
---|
| 165 | D3D11_TEX3D_RTV Texture3D;
|
---|
| 166 | };
|
---|
| 167 | } D3D11_RENDER_TARGET_VIEW_DESC1;
|
---|
| 168 |
|
---|
| 169 | typedef struct D3D11_TEX2D_UAV1
|
---|
| 170 | {
|
---|
| 171 | UINT MipSlice;
|
---|
| 172 | UINT PlaneSlice;
|
---|
| 173 | } D3D11_TEX2D_UAV1;
|
---|
| 174 |
|
---|
| 175 | typedef struct D3D11_TEX2D_ARRAY_UAV1
|
---|
| 176 | {
|
---|
| 177 | UINT MipSlice;
|
---|
| 178 | UINT FirstArraySlice;
|
---|
| 179 | UINT ArraySize;
|
---|
| 180 | UINT PlaneSlice;
|
---|
| 181 | } D3D11_TEX2D_ARRAY_UAV1;
|
---|
| 182 |
|
---|
| 183 | typedef struct D3D11_UNORDERED_ACCESS_VIEW_DESC1
|
---|
| 184 | {
|
---|
| 185 | DXGI_FORMAT Format;
|
---|
| 186 | D3D11_UAV_DIMENSION ViewDimension;
|
---|
| 187 |
|
---|
| 188 | union
|
---|
| 189 | {
|
---|
| 190 | D3D11_BUFFER_UAV Buffer;
|
---|
| 191 | D3D11_TEX1D_UAV Texture1D;
|
---|
| 192 | D3D11_TEX1D_ARRAY_UAV Texture1DArray;
|
---|
| 193 | D3D11_TEX2D_UAV1 Texture2D;
|
---|
| 194 | D3D11_TEX2D_ARRAY_UAV1 Texture2DArray;
|
---|
| 195 | D3D11_TEX3D_UAV Texture3D;
|
---|
| 196 | };
|
---|
| 197 | } D3D11_UNORDERED_ACCESS_VIEW_DESC1;
|
---|
| 198 |
|
---|
| 199 | typedef struct D3D11_QUERY_DESC1
|
---|
| 200 | {
|
---|
| 201 | D3D11_QUERY Query;
|
---|
| 202 | UINT MiscFlags;
|
---|
| 203 | D3D11_CONTEXT_TYPE ContextType;
|
---|
| 204 | } D3D11_QUERY_DESC1;
|
---|
| 205 |
|
---|
| 206 | [
|
---|
| 207 | uuid(51218251-1e33-4617-9ccb-4d3a4367e7bb),
|
---|
| 208 | object,
|
---|
| 209 | local,
|
---|
| 210 | pointer_default(unique)
|
---|
| 211 | ]
|
---|
| 212 | interface ID3D11Texture2D1 : ID3D11Texture2D
|
---|
| 213 | {
|
---|
| 214 | void GetDesc1(D3D11_TEXTURE2D_DESC1 *desc);
|
---|
| 215 | }
|
---|
| 216 |
|
---|
| 217 | [
|
---|
| 218 | uuid(0c711683-2853-4846-9bb0-f3e60639e46a),
|
---|
| 219 | object,
|
---|
| 220 | local,
|
---|
| 221 | pointer_default(unique)
|
---|
| 222 | ]
|
---|
| 223 | interface ID3D11Texture3D1 : ID3D11Texture3D
|
---|
| 224 | {
|
---|
| 225 | void GetDesc1(D3D11_TEXTURE3D_DESC1 *desc);
|
---|
| 226 | }
|
---|
| 227 |
|
---|
| 228 | [
|
---|
| 229 | uuid(6fbd02fb-209f-46c4-b059-2ed15586a6ac),
|
---|
| 230 | object,
|
---|
| 231 | local,
|
---|
| 232 | pointer_default(unique)
|
---|
| 233 | ]
|
---|
| 234 | interface ID3D11RasterizerState2 : ID3D11RasterizerState1
|
---|
| 235 | {
|
---|
| 236 | void GetDesc2(D3D11_RASTERIZER_DESC2 *desc);
|
---|
| 237 | }
|
---|
| 238 |
|
---|
| 239 | [
|
---|
| 240 | uuid(91308b87-9040-411d-8c67-c39253ce3802),
|
---|
| 241 | object,
|
---|
| 242 | local,
|
---|
| 243 | pointer_default(unique)
|
---|
| 244 | ]
|
---|
| 245 | interface ID3D11ShaderResourceView1 : ID3D11ShaderResourceView
|
---|
| 246 | {
|
---|
| 247 | void GetDesc1(D3D11_SHADER_RESOURCE_VIEW_DESC1 *desc);
|
---|
| 248 | }
|
---|
| 249 |
|
---|
| 250 | [
|
---|
| 251 | uuid(ffbe2e23-f011-418a-ac56-5ceed7c5b94b),
|
---|
| 252 | object,
|
---|
| 253 | local,
|
---|
| 254 | pointer_default(unique)
|
---|
| 255 | ]
|
---|
| 256 | interface ID3D11RenderTargetView1 : ID3D11RenderTargetView
|
---|
| 257 | {
|
---|
| 258 | void GetDesc1(D3D11_RENDER_TARGET_VIEW_DESC1 *desc);
|
---|
| 259 | }
|
---|
| 260 |
|
---|
| 261 | [
|
---|
| 262 | uuid(7b3b6153-a886-4544-ab37-6537c8500403),
|
---|
| 263 | object,
|
---|
| 264 | local,
|
---|
| 265 | pointer_default(unique)
|
---|
| 266 | ]
|
---|
| 267 | interface ID3D11UnorderedAccessView1 : ID3D11UnorderedAccessView
|
---|
| 268 | {
|
---|
| 269 | void GetDesc1(D3D11_UNORDERED_ACCESS_VIEW_DESC1 *desc);
|
---|
| 270 | }
|
---|
| 271 |
|
---|
| 272 | [
|
---|
| 273 | uuid(631b4766-36dc-461d-8db6-c47e13e60916),
|
---|
| 274 | object,
|
---|
| 275 | local,
|
---|
| 276 | pointer_default(unique)
|
---|
| 277 | ]
|
---|
| 278 | interface ID3D11Query1 : ID3D11Query
|
---|
| 279 | {
|
---|
| 280 | void GetDesc1(D3D11_QUERY_DESC1 *desc);
|
---|
| 281 | }
|
---|
| 282 |
|
---|
| 283 | [
|
---|
| 284 | uuid(b4e3c01d-e79e-4637-91b2-510e9f4c9b8f),
|
---|
| 285 | object,
|
---|
| 286 | local,
|
---|
| 287 | pointer_default(unique)
|
---|
| 288 | ]
|
---|
| 289 | interface ID3D11DeviceContext3 : ID3D11DeviceContext2
|
---|
| 290 | {
|
---|
| 291 | void Flush1(D3D11_CONTEXT_TYPE type, HANDLE event);
|
---|
| 292 | void SetHardwareProtectionState(BOOL enable);
|
---|
| 293 | void GetHardwareProtectionState(BOOL *enable);
|
---|
| 294 | }
|
---|
| 295 |
|
---|
| 296 | [
|
---|
| 297 | uuid(affde9d1-1df7-4bb7-8a34-0f46251dab80),
|
---|
| 298 | object,
|
---|
| 299 | local,
|
---|
| 300 | pointer_default(unique)
|
---|
| 301 | ]
|
---|
| 302 | interface ID3D11Fence : ID3D11DeviceChild
|
---|
| 303 | {
|
---|
| 304 | HRESULT CreateSharedHandle(
|
---|
| 305 | const SECURITY_ATTRIBUTES *attributes,
|
---|
| 306 | DWORD access,
|
---|
| 307 | const WCHAR *name,
|
---|
| 308 | HANDLE *handle
|
---|
| 309 | );
|
---|
| 310 | UINT64 GetCompletedValue();
|
---|
| 311 | HRESULT SetEventOnCompletion(
|
---|
| 312 | UINT64 value,
|
---|
| 313 | HANDLE event
|
---|
| 314 | );
|
---|
| 315 | }
|
---|
| 316 |
|
---|
| 317 | [
|
---|
| 318 | uuid(917600da-f58c-4c33-98d8-3e15b390fa24),
|
---|
| 319 | object,
|
---|
| 320 | local,
|
---|
| 321 | pointer_default(unique)
|
---|
| 322 | ]
|
---|
| 323 | interface ID3D11DeviceContext4 : ID3D11DeviceContext3
|
---|
| 324 | {
|
---|
| 325 | HRESULT Signal(ID3D11Fence *fence, UINT64 value);
|
---|
| 326 | HRESULT Wait(ID3D11Fence *fence, UINT64 value);
|
---|
| 327 | }
|
---|
| 328 |
|
---|
| 329 | [
|
---|
| 330 | uuid(a05c8c37-d2c6-4732-b3a0-9ce0b0dc9ae6),
|
---|
| 331 | object,
|
---|
| 332 | local,
|
---|
| 333 | pointer_default(unique)
|
---|
| 334 | ]
|
---|
| 335 | interface ID3D11Device3 : ID3D11Device2
|
---|
| 336 | {
|
---|
| 337 | HRESULT CreateTexture2D1(
|
---|
| 338 | const D3D11_TEXTURE2D_DESC1 *desc,
|
---|
| 339 | const D3D11_SUBRESOURCE_DATA *initial_data,
|
---|
| 340 | ID3D11Texture2D1 **texture
|
---|
| 341 | );
|
---|
| 342 | HRESULT CreateTexture3D1(
|
---|
| 343 | const D3D11_TEXTURE3D_DESC1 *desc,
|
---|
| 344 | const D3D11_SUBRESOURCE_DATA *initial_data,
|
---|
| 345 | ID3D11Texture3D1 **texture
|
---|
| 346 | );
|
---|
| 347 | HRESULT CreateRasterizerState2(
|
---|
| 348 | const D3D11_RASTERIZER_DESC2 *desc,
|
---|
| 349 | ID3D11RasterizerState2 **state
|
---|
| 350 | );
|
---|
| 351 | HRESULT CreateShaderResourceView1(
|
---|
| 352 | ID3D11Resource *resource,
|
---|
| 353 | const D3D11_SHADER_RESOURCE_VIEW_DESC1 *desc,
|
---|
| 354 | ID3D11ShaderResourceView1 **view
|
---|
| 355 | );
|
---|
| 356 | HRESULT CreateUnorderedAccessView1(
|
---|
| 357 | ID3D11Resource *resource,
|
---|
| 358 | const D3D11_UNORDERED_ACCESS_VIEW_DESC1 *desc,
|
---|
| 359 | ID3D11UnorderedAccessView1 **view
|
---|
| 360 | );
|
---|
| 361 | HRESULT CreateRenderTargetView1(
|
---|
| 362 | ID3D11Resource *resource,
|
---|
| 363 | const D3D11_RENDER_TARGET_VIEW_DESC1 *desc,
|
---|
| 364 | ID3D11RenderTargetView1 **view
|
---|
| 365 | );
|
---|
| 366 | HRESULT CreateQuery1(const D3D11_QUERY_DESC1 *desc, ID3D11Query1 **query);
|
---|
| 367 | void GetImmediateContext3(ID3D11DeviceContext3 **context);
|
---|
| 368 | HRESULT CreateDeferredContext3(UINT flags, ID3D11DeviceContext3 **context);
|
---|
| 369 | void WriteToSubresource(
|
---|
| 370 | ID3D11Resource *dst_resource,
|
---|
| 371 | UINT dst_subresource,
|
---|
| 372 | const D3D11_BOX *dst_box,
|
---|
| 373 | const void *src_data,
|
---|
| 374 | UINT src_row_pitch,
|
---|
| 375 | UINT src_depth_pitch
|
---|
| 376 | );
|
---|
| 377 | void ReadFromSubresource(
|
---|
| 378 | void *dst_data,
|
---|
| 379 | UINT dst_row_pitch,
|
---|
| 380 | UINT dst_depth_pitch,
|
---|
| 381 | ID3D11Resource *src_resource,
|
---|
| 382 | UINT src_subresource,
|
---|
| 383 | const D3D11_BOX *src_box
|
---|
| 384 | );
|
---|
| 385 | }
|
---|