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