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