| /* | |
| * 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 | |
| ); | |
| } |