1 module directx.d3d11_2; 2 /*------------------------------------------------------------------------------------- 3 * 4 * Copyright (c) Microsoft Corporation 5 * 6 *-------------------------------------------------------------------------------------*/ 7 8 public import directx.dxgi1_3; 9 public import directx.d3d11_1; 10 11 struct D3D11_TILED_RESOURCE_COORDINATE 12 { 13 UINT X; 14 UINT Y; 15 UINT Z; 16 UINT Subresource; 17 } 18 19 struct D3D11_TILE_REGION_SIZE 20 { 21 UINT NumTiles; 22 BOOL bUseBox; 23 UINT Width; 24 UINT16 Height; 25 UINT16 Depth; 26 } 27 28 alias D3D11_TILE_MAPPING_FLAG = int; 29 enum : D3D11_TILE_MAPPING_FLAG 30 { 31 D3D11_TILE_MAPPING_NO_OVERWRITE = 0x1 32 } 33 34 alias D3D11_TILE_RANGE_FLAG = int; 35 enum : D3D11_TILE_RANGE_FLAG 36 { 37 D3D11_TILE_RANGE_NULL = 0x1, 38 D3D11_TILE_RANGE_SKIP = 0x2, 39 D3D11_TILE_RANGE_REUSE_SINGLE_TILE = 0x4 40 } 41 42 struct D3D11_SUBRESOURCE_TILING 43 { 44 UINT WidthInTiles; 45 UINT16 HeightInTiles; 46 UINT16 DepthInTiles; 47 UINT StartTileIndexInOverallResource; 48 } 49 50 enum D3D11_PACKED_TILE = ( 0xffffffff ); 51 52 struct D3D11_TILE_SHAPE 53 { 54 UINT WidthInTexels; 55 UINT HeightInTexels; 56 UINT DepthInTexels; 57 } 58 59 struct D3D11_PACKED_MIP_DESC 60 { 61 UINT8 NumStandardMips; 62 UINT8 NumPackedMips; 63 UINT NumTilesForPackedMips; 64 UINT StartTileIndexInOverallResource; 65 } 66 67 alias D3D11_CHECK_MULTISAMPLE_QUALITY_LEVELS_FLAG = int; 68 enum : D3D11_CHECK_MULTISAMPLE_QUALITY_LEVELS_FLAG 69 { 70 D3D11_CHECK_MULTISAMPLE_QUALITY_LEVELS_TILED_RESOURCE = 0x1 71 } 72 73 alias D3D11_TILE_COPY_FLAG = int; 74 enum : D3D11_TILE_COPY_FLAG 75 { 76 D3D11_TILE_COPY_NO_OVERWRITE = 0x1, 77 D3D11_TILE_COPY_LINEAR_BUFFER_TO_SWIZZLED_TILED_RESOURCE = 0x2, 78 D3D11_TILE_COPY_SWIZZLED_TILED_RESOURCE_TO_LINEAR_BUFFER = 0x4 79 } 80 81 mixin( uuid!(ID3D11DeviceContext2, "420d5b32-b90c-4da4-bef0-359f6a24a83a") ); 82 extern (C++) interface ID3D11DeviceContext2 : ID3D11DeviceContext1 83 { 84 HRESULT UpdateTileMappings( 85 ID3D11Resource pTiledResource, 86 UINT NumTiledResourceRegions, 87 const(D3D11_TILED_RESOURCE_COORDINATE)* pTiledResourceRegionStartCoordinates, 88 const(D3D11_TILE_REGION_SIZE)* pTiledResourceRegionSizes, 89 ID3D11Buffer pTilePool, 90 UINT NumRanges, 91 const(UINT)* pRangeFlags, 92 const(UINT)* pTilePoolStartOffsets, 93 const(UINT)* pRangeTileCounts, 94 UINT Flags); 95 96 HRESULT CopyTileMappings( 97 ID3D11Resource pDestTiledResource, 98 const(D3D11_TILED_RESOURCE_COORDINATE)* pDestRegionStartCoordinate, 99 ID3D11Resource pSourceTiledResource, 100 const(D3D11_TILED_RESOURCE_COORDINATE)* pSourceRegionStartCoordinate, 101 const(D3D11_TILE_REGION_SIZE)* pTileRegionSize, 102 UINT Flags); 103 104 void CopyTiles( 105 ID3D11Resource pTiledResource, 106 const(D3D11_TILED_RESOURCE_COORDINATE)* pTileRegionStartCoordinate, 107 const(D3D11_TILE_REGION_SIZE)* pTileRegionSize, 108 ID3D11Buffer pBuffer, 109 UINT64 BufferStartOffsetInBytes, 110 UINT Flags); 111 112 void UpdateTiles( 113 ID3D11Resource pDestTiledResource, 114 const(D3D11_TILED_RESOURCE_COORDINATE)* pDestTileRegionStartCoordinate, 115 const(D3D11_TILE_REGION_SIZE)* pDestTileRegionSize, 116 const(void*) pSourceTileData, 117 UINT Flags); 118 119 HRESULT ResizeTilePool( 120 ID3D11Buffer pTilePool, 121 UINT64 NewSizeInBytes); 122 123 void TiledResourceBarrier( 124 ID3D11DeviceChild pTiledResourceOrViewAccessBeforeBarrier, 125 ID3D11DeviceChild pTiledResourceOrViewAccessAfterBarrier); 126 127 BOOL IsAnnotationEnabled(); 128 129 void SetMarkerInt( 130 LPCWSTR pLabel, 131 INT Data); 132 133 void BeginEventInt( 134 LPCWSTR pLabel, 135 INT Data); 136 137 void EndEvent(); 138 } 139 140 mixin( uuid!(ID3D11Device2, "9d06dffa-d1e5-4d07-83a8-1bb123f2f841") ); 141 extern (C++) interface ID3D11Device2 : ID3D11Device1 142 { 143 void GetImmediateContext2( 144 /*out*/ ID3D11DeviceContext2* ppImmediateContext); 145 146 HRESULT CreateDeferredContext2( 147 UINT ContextFlags, 148 /*out*/ ID3D11DeviceContext2* ppDeferredContext); 149 150 void GetResourceTiling( 151 ID3D11Resource pTiledResource, 152 /*out*/ UINT* pNumTilesForEntireResource, 153 /*out*/ D3D11_PACKED_MIP_DESC* pPackedMipDesc, 154 /*out*/ D3D11_TILE_SHAPE* pStandardTileShapeForNonPackedMips, 155 /*inout*/ UINT *pNumSubresourceTilings, 156 UINT FirstSubresourceTilingToGet, 157 /*out*/ D3D11_SUBRESOURCE_TILING* pSubresourceTilingsForNonPackedMips); 158 159 HRESULT CheckMultisampleQualityLevels1( 160 DXGI_FORMAT Format, 161 UINT SampleCount, 162 UINT Flags, 163 /*out*/ UINT* pNumQualityLevels); 164 }