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 }