1 module aurora.directx.d3d11.d3d11_2; 2 3 public import aurora.directx.d3d11.d3d11_1; 4 5 public: 6 7 /// 8 /// Constants 9 /// 10 11 /// 12 /// Functions 13 /// 14 15 /// 16 /// Enumerations 17 /// 18 19 enum D3D11_TILE_MAPPING_FLAG : uint 20 { 21 NO_OVERWRITE = 0x1 22 } 23 24 enum D3D11_TILE_RANGE_FLAG : uint 25 { 26 NULL = 0x1, 27 SKIP = 0x2, 28 REUSE_SINGLE_TILE = 0x4 29 } 30 31 enum D3D11_CHECK_MULTISAMPLE_QUALITY_LEVELS_FLAG : uint 32 { 33 TILED_RESOURCE = 0x1 34 } 35 36 enum D3D11_TILE_COPY_FLAG : uint 37 { 38 NO_OVERWRITE = 0x1, 39 LINEAR_BUFFER_TO_SWIZZLED_TILED_RESOURCE = 0x2, 40 SWIZZLED_TILED_RESOURCE_TO_LINEAR_BUFFER = 0x4 41 } 42 43 /// 44 /// Structures 45 /// 46 47 struct D3D11_TILED_RESOURCE_COORDINATE { 48 uint X; 49 uint Y; 50 uint Z; 51 uint Subresource; 52 } 53 54 struct D3D11_TILE_REGION_SIZE { 55 uint NumTiles; 56 bool bUseBox; 57 uint Width; 58 ushort Height; 59 ushort Depth; 60 } 61 62 struct D3D11_SUBRESOURCE_TILING { 63 uint WidthInTiles; 64 ushort HeightInTiles; 65 ushort DepthInTiles; 66 uint StartTileIndexInOverallResource; 67 } 68 69 struct D3D11_TILE_SHAPE { 70 uint WidthInTexels; 71 uint HeightInTexels; 72 uint DepthInTexels; 73 } 74 75 struct D3D11_PACKED_MIP_DESC { 76 ubyte NumStandardMips; 77 ubyte NumPackedMips; 78 uint NumTilesForPackedMips; 79 uint StartTileIndexInOverallResource; 80 } 81 82 /// 83 /// Interfaces 84 /// 85 86 mixin(uuid!(ID3D11DeviceContext2, "420d5b32-b90c-4da4-bef0-359f6a24a83a")); 87 public interface ID3D11DeviceContext2 : ID3D11DeviceContext1 88 { 89 extern(Windows): 90 void UpdateTiles(ID3D11Resource pDestTiledResource, const(D3D11_TILED_RESOURCE_COORDINATE) *pDestTileRegionStartCoordinate, const(D3D11_TILE_REGION_SIZE) *pDestTileRegionSize, const(void) *pSourceTileData, uint Flags); 91 HRESULT CopyTileMappings(ID3D11Resource pDestTiledResource, const(D3D11_TILED_RESOURCE_COORDINATE) *pDestRegionStartCoord, ID3D11Resource pSourceTiledResource, const(D3D11_TILED_RESOURCE_COORDINATE) *pSourceRegionStartCoord, const(D3D11_TILE_REGION_SIZE) *pTileRegionSize, uint Flags); 92 void CopyTiles(ID3D11Resource TiledResource, const(D3D11_TILED_RESOURCE_COORDINATE) *pTileRegionStartCoord, const D3D11_TILE_REGION_SIZE *pTileRegionSize, ID3D11Buffer pBuffer, ulong BufferStartOffsetInBytes, uint Flags); 93 HRESULT ResizeTilePool(ID3D11Buffer pTilePool, ulong NewSizeInBytes); 94 void TiledResourceBarrier(ID3D11DeviceChild pTiledResourceOrViewAccessBeforeBarrier, ID3D11DeviceChild pTiledResourceOrViewAccessAfterBarrier); 95 HRESULT UpdateTileMappings(ID3D11Resource pTiledResource, uint NumTiledResourceRegions, const(D3D11_TILED_RESOURCE_COORDINATE) *pTiledResourceRegionStartCoordinates, const(D3D11_TILE_REGION_SIZE) *pTiledResourceRegionSizes, ID3D11Buffer pTilePool, uint NumRanges, const(uint) *pRangeFlags, const(uint) *pTilePoolStartOffsets, const(uint) *pRangeTileCounts, uint Flags); 96 } 97 98 mixin(uuid!(ID3D11Device2, "9d06dffa-d1e5-4d07-83a8-1bb123f2f841")); 99 public interface ID3D11Device2 : ID3D11Device1 100 { 101 extern(Windows): 102 HRESULT CheckMultisampleQualityLevels1(DXGI_FORMAT Format, uint SampleCount, uint Flags, uint* pNumQualityLevels); 103 HRESULT CreateDeferredContext2(uint ContextFlags, ID3D11DeviceContext2 *ppDeferredContext); 104 void GetImmediateContext2(ID3D11DeviceContext2 *ppImmediateContext); 105 void GetResourceTiling(ID3D11Resource pTiledResource, uint *pNumTilesForEntireResource, D3D11_PACKED_MIP_DESC *pPackedMipDesc, D3D11_TILE_SHAPE *pStandardTileShapeForNonPackedMips, uint *pNumSubresourceTilings, uint FirstSubresourceTilingToGet, D3D11_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips); 106 } 107