| /* |
| * Copyright 2017 Ihsan Akmal |
| * |
| * This library is free software; you can redistribute it and/or |
| * modify it under the terms of the GNU Lesser General Public |
| * License as published by the Free Software Foundation; either |
| * version 2.1 of the License, or (at your option) any later version. |
| * |
| * This library is distributed in the hope that it will be useful, |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
| * Lesser General Public License for more details. |
| * |
| * You should have received a copy of the GNU Lesser General Public |
| * License along with this library; if not, write to the Free Software |
| * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA |
| */ |
| |
| import "oaidl.idl"; |
| import "ocidl.idl"; |
| import "dxgi1_3.idl"; |
| import "d3dcommon.idl"; |
| import "d3d11_1.idl"; |
| |
| const UINT D3D11_PACKED_TILE = 0xffffffff; |
| |
| typedef enum D3D11_TILE_MAPPING_FLAG |
| { |
| D3D11_TILE_MAPPING_NO_OVERWRITE = 0x1, |
| } D3D11_TILE_MAPPING_FLAG; |
| |
| typedef enum D3D11_TILE_RANGE_FLAG |
| { |
| D3D11_TILE_RANGE_NULL = 0x1, |
| D3D11_TILE_RANGE_SKIP = 0x2, |
| D3D11_TILE_RANGE_REUSE_SINGLE_TILE = 0x4, |
| } D3D11_TILE_RANGE_FLAG; |
| |
| typedef enum D3D11_CHECK_MULTISAMPLE_QUALITY_LEVELS_FLAG |
| { |
| D3D11_CHECK_MULTISAMPLE_QUALITY_LEVELS_TILED_RESOURCE = 0x1, |
| } D3D11_CHECK_MULTISAMPLE_QUALITY_LEVELS_FLAG; |
| |
| typedef enum D3D11_TILE_COPY_FLAG |
| { |
| D3D11_TILE_COPY_NO_OVERWRITE = 0x1, |
| D3D11_TILE_COPY_LINEAR_BUFFER_TO_SWIZZLED_TILED_RESOURCE = 0x2, |
| D3D11_TILE_COPY_SWIZZLED_TILED_RESOURCE_TO_LINEAR_BUFFER = 0x4, |
| } D3D11_TILE_COPY_FLAG; |
| |
| typedef struct D3D11_TILED_RESOURCE_COORDINATE |
| { |
| UINT X; |
| UINT Y; |
| UINT Z; |
| UINT Subresource; |
| } D3D11_TILED_RESOURCE_COORDINATE; |
| |
| typedef struct D3D11_TILE_REGION_SIZE |
| { |
| UINT NumTiles; |
| BOOL bUseBox; |
| UINT Width; |
| UINT16 Height; |
| UINT16 Depth; |
| } D3D11_TILE_REGION_SIZE; |
| |
| typedef struct D3D11_SUBRESOURCE_TILING |
| { |
| UINT WidthInTiles; |
| UINT16 HeightInTiles; |
| UINT16 DepthInTiles; |
| UINT StartTileIndexInOverallResource; |
| } D3D11_SUBRESOURCE_TILING; |
| |
| typedef struct D3D11_TILE_SHAPE |
| { |
| UINT WidthInTexels; |
| UINT HeightInTexels; |
| UINT DepthInTexels; |
| } D3D11_TILE_SHAPE; |
| |
| typedef struct D3D11_PACKED_MIP_DESC |
| { |
| UINT8 NumStandardMips; |
| UINT8 NumPackedMips; |
| UINT NumTilesForPackedMips; |
| UINT StartTileIndexInOverallResource; |
| } D3D11_PACKED_MIP_DESC; |
| |
| [ |
| uuid(420d5b32-b90c-4da4-bef0-359f6a24a83a), |
| object, |
| local, |
| pointer_default(unique) |
| ] |
| interface ID3D11DeviceContext2 : ID3D11DeviceContext1 |
| { |
| HRESULT UpdateTileMappings( |
| ID3D11Resource *resource, |
| UINT region_count, |
| const D3D11_TILED_RESOURCE_COORDINATE *region_start_coordinates, |
| const D3D11_TILE_REGION_SIZE *region_sizes, |
| ID3D11Buffer *pool, |
| UINT range_count, |
| const UINT *range_flags, |
| const UINT *pool_start_offsets, |
| const UINT *range_tile_counts, |
| UINT flags |
| ); |
| HRESULT CopyTileMappings( |
| ID3D11Resource *dst_resource, |
| const D3D11_TILED_RESOURCE_COORDINATE *dst_start_coordinate, |
| ID3D11Resource *src_resource, |
| const D3D11_TILED_RESOURCE_COORDINATE *src_start_coordinate, |
| const D3D11_TILE_REGION_SIZE *region_size, |
| UINT flags |
| ); |
| void CopyTiles( |
| ID3D11Resource *resource, |
| const D3D11_TILED_RESOURCE_COORDINATE *start_coordinate, |
| const D3D11_TILE_REGION_SIZE *size, |
| ID3D11Buffer *buffer, |
| UINT64 start_offset, |
| UINT flags |
| ); |
| void UpdateTiles( |
| ID3D11Resource *dst_resource, |
| const D3D11_TILED_RESOURCE_COORDINATE *dst_start_coordinate, |
| const D3D11_TILE_REGION_SIZE *dst_region_size, |
| const void *src_data, |
| UINT flags |
| ); |
| HRESULT ResizeTilePool( |
| ID3D11Buffer *pool, |
| UINT64 size |
| ); |
| void TiledResourceBarrier( |
| ID3D11DeviceChild *before_barrier, |
| ID3D11DeviceChild *after_barrier |
| ); |
| BOOL IsAnnotationEnabled(); |
| void SetMarkerInt(const WCHAR *label, int data); |
| void BeginEventInt(const WCHAR *label, int data); |
| void EndEvent(); |
| } |
| |
| [ |
| uuid(9d06dffa-d1e5-4d07-83a8-1bb123f2f841), |
| object, |
| local, |
| pointer_default(unique) |
| ] |
| interface ID3D11Device2 : ID3D11Device1 |
| { |
| void GetImmediateContext2(ID3D11DeviceContext2 **context); |
| HRESULT CreateDeferredContext2(UINT flags, ID3D11DeviceContext2 **context); |
| void GetResourceTiling( |
| ID3D11Resource *resource, |
| UINT *tile_count, |
| D3D11_PACKED_MIP_DESC *mip_desc, |
| D3D11_TILE_SHAPE *tile_shape, |
| UINT *subresource_tiling_count, |
| UINT first_subresource_tiling, |
| D3D11_SUBRESOURCE_TILING *subresource_tiling |
| ); |
| HRESULT CheckMultisampleQualityLevels1( |
| DXGI_FORMAT format, |
| UINT sample_count, |
| UINT flags, |
| UINT *quality_level_count |
| ); |
| } |