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