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 }