]> git.proxmox.com Git - cargo.git/blob - vendor/winapi/src/um/d3d11_2.rs
New upstream version 0.35.0
[cargo.git] / vendor / winapi / src / um / d3d11_2.rs
1 // Licensed under the Apache License, Version 2.0
2 // <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
3 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
4 // All files in the project carrying such notice may not be copied, modified, or distributed
5 // except according to those terms.
6 use ctypes::c_void;
7 use shared::basetsd::{UINT16, UINT64, UINT8};
8 use shared::dxgiformat::DXGI_FORMAT;
9 use shared::minwindef::{BOOL, INT, UINT};
10 use um::d3d11::{ID3D11Buffer, ID3D11DeviceChild, ID3D11Resource};
11 use um::d3d11_1::{
12 ID3D11Device1, ID3D11Device1Vtbl, ID3D11DeviceContext1, ID3D11DeviceContext1Vtbl,
13 };
14 use um::winnt::{HRESULT, LPCWSTR};
15 DEFINE_GUID!{IID_ID3D11DeviceContext2,
16 0x420d5b32, 0xb90c, 0x4da4, 0xbe, 0xf0, 0x35, 0x9f, 0x6a, 0x24, 0xa8, 0x3a}
17 DEFINE_GUID!{IID_ID3D11Device2,
18 0x9d06dffa, 0xd1e5, 0x4d07, 0x83, 0xa8, 0x1b, 0xb1, 0x23, 0xf2, 0xf8, 0x41}
19 STRUCT!{struct D3D11_TILED_RESOURCE_COORDINATE {
20 X: UINT,
21 Y: UINT,
22 Z: UINT,
23 Subresource: UINT,
24 }}
25 STRUCT!{struct D3D11_TILE_REGION_SIZE {
26 NumTiles: UINT,
27 bUseBox: BOOL,
28 Width: UINT,
29 Height: UINT16,
30 Depth: UINT16,
31 }}
32 ENUM!{enum D3D11_TILE_MAPPING_FLAG {
33 D3D11_TILE_MAPPING_NO_OVERWRITE = 0x00000001,
34 }}
35 ENUM!{enum D3D11_TILE_RANGE_FLAG {
36 D3D11_TILE_RANGE_NULL = 0x00000001,
37 D3D11_TILE_RANGE_SKIP = 0x00000002,
38 D3D11_TILE_RANGE_REUSE_SINGLE_TILE = 0x00000004,
39 }}
40 STRUCT!{struct D3D11_SUBRESOURCE_TILING {
41 WidthInTiles: UINT,
42 HeightInTiles: UINT16,
43 DepthInTiles: UINT16,
44 StartTileIndexInOverallResource: UINT,
45 }}
46 STRUCT!{struct D3D11_TILE_SHAPE {
47 WidthInTexels: UINT,
48 HeightInTexels: UINT,
49 DepthInTexels: UINT,
50 }}
51 STRUCT!{struct D3D11_PACKED_MIP_DESC {
52 NumStandardMips: UINT8,
53 NumPackedMips: UINT8,
54 NumTilesForPackedMips: UINT,
55 StartTileIndexInOverallResource: UINT,
56 }}
57 ENUM!{enum D3D11_CHECK_MULTISAMPLE_QUALITY_LEVELS_FLAG {
58 D3D11_CHECK_MULTISAMPLE_QUALITY_LEVELS_TILED_RESOURCE = 0x00000001,
59 }}
60 ENUM!{enum D3D11_TILE_COPY_FLAG {
61 D3D11_TILE_COPY_NO_OVERWRITE = 0x00000001,
62 D3D11_TILE_COPY_LINEAR_BUFFER_TO_SWIZZLED_TILED_RESOURCE = 0x00000002,
63 D3D11_TILE_COPY_SWIZZLED_TILED_RESOURCE_TO_LINEAR_BUFFER = 0x00000004,
64 }}
65 RIDL!{#[uuid(0x420d5b32, 0xb90c, 0x4da4, 0xbe, 0xf0, 0x35, 0x9f, 0x6a, 0x24, 0xa8, 0x3a)]
66 interface ID3D11DeviceContext2(ID3D11DeviceContext2Vtbl):
67 ID3D11DeviceContext1(ID3D11DeviceContext1Vtbl) {
68 fn UpdateTileMappings(
69 pTiledResource: *mut ID3D11Resource,
70 NumTiledResourceRegions: UINT,
71 pTiledResourceRegionStartCoordinates: *const D3D11_TILED_RESOURCE_COORDINATE,
72 pTiledResourceRegionSizes: *const D3D11_TILE_REGION_SIZE,
73 pTilePool: *mut ID3D11Buffer,
74 NumRanges: UINT,
75 pRangeFlags: *const UINT,
76 pTilePoolStartOffsets: *const UINT,
77 pRangeTileCounts: *const UINT,
78 Flags: UINT,
79 ) -> HRESULT,
80 fn CopyTileMappings(
81 pDestTiledResource: *mut ID3D11Resource,
82 pDestRegionStartCoordinate: *const D3D11_TILED_RESOURCE_COORDINATE,
83 pSourceTiledResource: *mut ID3D11Resource,
84 pSourceRegionStartCoordinate: *const D3D11_TILED_RESOURCE_COORDINATE,
85 pTileRegionSize: *const D3D11_TILE_REGION_SIZE,
86 Flags: UINT,
87 ) -> HRESULT,
88 fn CopyTiles(
89 pTiledResource: *mut ID3D11Resource,
90 pTileRegionStartCoordinate: *const D3D11_TILED_RESOURCE_COORDINATE,
91 pTileRegionSize: *const D3D11_TILE_REGION_SIZE,
92 pBuffer: *mut ID3D11Buffer,
93 BufferStartOffsetInBytes: UINT64,
94 Flags: UINT,
95 ) -> (),
96 fn UpdateTiles(
97 pDestTiledResource: *mut ID3D11Resource,
98 pDestTileRegionStartCoordinate: *const D3D11_TILED_RESOURCE_COORDINATE,
99 pDestTileRegionSize: *const D3D11_TILE_REGION_SIZE,
100 pSourceTileData: *const c_void,
101 Flags: UINT,
102 ) -> (),
103 fn ResizeTilePool(
104 pTilePool: *mut ID3D11Buffer,
105 NewSizeInBytes: UINT64,
106 ) -> HRESULT,
107 fn TiledResourceBarrier(
108 pTiledResourceOrViewAccessBeforeBarrier: *mut ID3D11DeviceChild,
109 pTiledResourceOrViewAccessAfterBarrier: *mut ID3D11DeviceChild,
110 ) -> (),
111 fn IsAnnotationEnabled() -> BOOL,
112 fn SetMarkerInt(
113 pLabel: LPCWSTR,
114 Data: INT,
115 ) -> (),
116 fn BeginEventInt(
117 pLabel: LPCWSTR,
118 Data: INT,
119 ) -> (),
120 fn EndEvent() -> (),
121 }}
122 RIDL!{#[uuid(0x9d06dffa, 0xd1e5, 0x4d07, 0x83, 0xa8, 0x1b, 0xb1, 0x23, 0xf2, 0xf8, 0x41)]
123 interface ID3D11Device2(ID3D11Device2Vtbl): ID3D11Device1(ID3D11Device1Vtbl) {
124 fn GetImmediateContext2(
125 ppImmediateContext: *mut *mut ID3D11DeviceContext2,
126 ) -> (),
127 fn CreateDeferredContext2(
128 ContextFlags: UINT,
129 ppDeferredContext: *mut *mut ID3D11DeviceContext2,
130 ) -> HRESULT,
131 fn GetResourceTiling(
132 pTiledResource: *mut ID3D11Resource,
133 pNumTilesForEntireResource: *mut UINT,
134 pPackedMipDesc: *mut D3D11_PACKED_MIP_DESC,
135 pStandardTileShapeForNonPackedMips: *mut D3D11_TILE_SHAPE,
136 pNumSubresourceTilings: *mut UINT,
137 FirstSubresourceTilingToGet: UINT,
138 pSubresourceTilingsForNonPackedMips: *mut D3D11_SUBRESOURCE_TILING,
139 ) -> (),
140 fn CheckMultisampleQualityLevels1(
141 Format: DXGI_FORMAT,
142 SampleCount: UINT,
143 Flags: UINT,
144 pNumQualityLevels: *mut UINT,
145 ) -> HRESULT,
146 }}