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