CommonLibVR
D3D11_2.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "REX/W32/D3D11_1.h"
4 
5 namespace REX::W32
6 {
7  struct ID3D11Device2;
8  struct ID3D11DeviceContext2;
9 }
10 
11 namespace REX::W32
12 {
14  {
16  };
17 
19  {
23  };
24 
26  {
28  };
29 
31  {
35  };
36 }
37 
38 namespace REX::W32
39 {
41  {
42  std::uint8_t numStandardMips;
43  std::uint8_t numPackedMips;
44  std::uint32_t numTilesForPackedMips;
46  };
47 
49  {
50  std::uint32_t widthInTiles;
51  std::uint16_t heightInTiles;
52  std::uint16_t depthInTiles;
54  };
55 
57  {
58  std::uint32_t x;
59  std::uint32_t y;
60  std::uint32_t z;
61  std::uint32_t subResource;
62  };
63 
65  {
66  std::uint32_t numTiles;
68  std::uint32_t width;
69  std::uint16_t height;
70  std::uint16_t depth;
71  };
72 
74  {
75  std::uint32_t widthInTexels;
76  std::uint32_t heightInTexels;
77  std::uint32_t depthInTexels;
78  };
79 }
80 
81 namespace REX::W32
82 {
83  struct __declspec(novtable, uuid("9d06dffa-d1e5-4d07-83a8-1bb123f2f841"))
84  ID3D11Device2 : public ID3D11Device1
85  {
86  virtual void GetImmediateContext2(ID3D11DeviceContext2** a_immediateContext) = 0;
87  virtual HRESULT CreateDeferredContext2(std::uint32_t a_contextFlags, ID3D11DeviceContext2** a_deferredContext) = 0;
88  virtual void GetResourceTiling(ID3D11Resource* a_tiledResource, std::uint32_t* a_numTilesForEntireResource, D3D11_PACKED_MIP_DESC* a_packedMipDesc, D3D11_TILE_SHAPE* a_standardTileShapeForNonPackedMips, std::uint32_t* a_numSubresourceTilings, std::uint32_t a_firstSubResourceTilingToGet, D3D11_SUBRESOURCE_TILING* a_subResourceTilingsForNonPackedMips) = 0;
89  virtual HRESULT CheckMultisampleQualityLevels1(DXGI_FORMAT a_format, std::uint32_t a_sampleCount, std::uint32_t a_flags, std::uint32_t* a_numQualityLevels) = 0;
90  };
91 
92  struct __declspec(novtable, uuid("420d5b32-b90c-4da4-bef0-359f6a24a83a"))
93  ID3D11DeviceContext2 : public ID3D11DeviceContext1
94  {
95  virtual HRESULT UpdateTileMappings(ID3D11Resource* a_tiledResource, std::uint32_t numTiledResourceRegions, const D3D11_TILED_RESOURCE_COORDINATE* a_tiledResourceRegionStartCoordinates, const D3D11_TILE_REGION_SIZE* a_tiledResourceRegionSizes, ID3D11Buffer* a_tilePool, std::uint32_t a_numRanges, const std::uint32_t* a_rangeFlags, const std::uint32_t* a_tilePoolStartOffsets, const std::uint32_t* a_rangeTileCounts, std::uint32_t a_flags) = 0;
96  virtual HRESULT CopyTileMappings(ID3D11Resource* a_destTiledResource, const D3D11_TILED_RESOURCE_COORDINATE* a_destRegionStartCoordinate, ID3D11Resource* a_sourceTiledResource, const D3D11_TILED_RESOURCE_COORDINATE* a_sourceRegionStartCoordinate, const D3D11_TILE_REGION_SIZE* a_tileRegionSize, std::uint32_t a_flags) = 0;
97  virtual void CopyTiles(ID3D11Resource* a_tiledResource, const D3D11_TILED_RESOURCE_COORDINATE* a_tileRegionStartCoordinate, const D3D11_TILE_REGION_SIZE* a_tileRegionSize, ID3D11Buffer* a_buffer, std::uint64_t a_bufferStartOffsetInBytes, std::uint32_t a_flags) = 0;
98  virtual void UpdateTiles(ID3D11Resource* a_destTiledResource, const D3D11_TILED_RESOURCE_COORDINATE* a_destTileRegionStartCoordinate, const D3D11_TILE_REGION_SIZE* a_destTileRegionSize, const void* a_sourceTileData, std::uint32_t a_flags) = 0;
99  virtual HRESULT ResizeTilePool(ID3D11Buffer* a_tilePool, std::uint64_t a_newSizeInBytes) = 0;
100  virtual void TiledResourceBarrier(ID3D11DeviceChild* a_tiledResourceOrViewAccessBeforeBarrier, ID3D11DeviceChild* a_tiledResourceOrViewAccessAfterBarrier) = 0;
101  virtual BOOL IsAnnotationEnabled(void) = 0;
102  virtual void SetMarkerInt(const wchar_t* a_label, std::int32_t a_data) = 0;
103  virtual void BeginEventInt(const wchar_t* a_label, std::int32_t a_data) = 0;
104  virtual void EndEvent(void) = 0;
105  };
106 }
107 
108 namespace REX::W32
109 {
110  inline constexpr IID IID_ID3D11Device2{ 0x9D06DFFA, 0xD1E5, 0x4D07, { 0x83, 0xA8, 0x1B, 0xB1, 0x23, 0xF2, 0xF8, 0x41 } };
111  inline constexpr IID IID_ID3D11DeviceContext2{ 0x420D5B32, 0xB90C, 0x4DA4, { 0xBE, 0xF0, 0x35, 0x9F, 0x6A, 0x24, 0xA8, 0x3A } };
112 }
Definition: BSDirectInputManager.h:8
D3D11_TILE_RANGE_FLAG
Definition: D3D11_2.h:31
@ D3D11_TILE_RANGE_SKIP
Definition: D3D11_2.h:33
@ D3D11_TILE_RANGE_REUSE_SINGLE_TILE
Definition: D3D11_2.h:34
@ D3D11_TILE_RANGE_NULL
Definition: D3D11_2.h:32
struct __declspec(novtable, uuid("00000000-0000-0000-c000-000000000046")) IUnknown
Definition: COM.h:7
std::int32_t BOOL
Definition: BASE.h:13
D3D11_TILE_COPY_FLAG
Definition: D3D11_2.h:19
@ D3D11_TILE_COPY_LINEAR_BUFFER_TO_SWIZZLED_TILED_RESOURCE
Definition: D3D11_2.h:21
@ D3D11_TILE_COPY_NO_OVERWRITE
Definition: D3D11_2.h:20
@ D3D11_TILE_COPY_SWIZZLED_TILED_RESOURCE_TO_LINEAR_BUFFER
Definition: D3D11_2.h:22
DXGI_FORMAT
Definition: DXGI.h:63
D3D11_CHECK_MULTISAMPLE_QUALITY_LEVELS_FLAG
Definition: D3D11_2.h:14
@ D3D11_CHECK_MULTISAMPLE_QUALITY_LEVELS_TILED_RESOURCE
Definition: D3D11_2.h:15
constexpr IID IID_ID3D11DeviceContext2
Definition: D3D11_2.h:111
D3D11_TILE_MAPPING_FLAG
Definition: D3D11_2.h:26
@ D3D11_TILE_MAPPING_NO_OVERWRITE
Definition: D3D11_2.h:27
std::int32_t HRESULT
Definition: BASE.h:28
constexpr IID IID_ID3D11Device2
Definition: D3D11_2.h:110
Definition: D3D11_2.h:41
std::uint8_t numPackedMips
Definition: D3D11_2.h:43
std::uint8_t numStandardMips
Definition: D3D11_2.h:42
std::uint32_t numTilesForPackedMips
Definition: D3D11_2.h:44
std::uint32_t startTileIndexInOverallResource
Definition: D3D11_2.h:45
Definition: D3D11_2.h:49
std::uint32_t widthInTiles
Definition: D3D11_2.h:50
std::uint16_t depthInTiles
Definition: D3D11_2.h:52
std::uint32_t startTileIndexInOverallResource
Definition: D3D11_2.h:53
std::uint16_t heightInTiles
Definition: D3D11_2.h:51
std::uint32_t y
Definition: D3D11_2.h:59
std::uint32_t x
Definition: D3D11_2.h:58
std::uint32_t subResource
Definition: D3D11_2.h:61
std::uint32_t z
Definition: D3D11_2.h:60
Definition: D3D11_2.h:65
std::uint16_t depth
Definition: D3D11_2.h:70
std::uint16_t height
Definition: D3D11_2.h:69
BOOL bUseBox
Definition: D3D11_2.h:67
std::uint32_t width
Definition: D3D11_2.h:68
std::uint32_t numTiles
Definition: D3D11_2.h:66
Definition: D3D11_2.h:74
std::uint32_t depthInTexels
Definition: D3D11_2.h:77
std::uint32_t widthInTexels
Definition: D3D11_2.h:75
std::uint32_t heightInTexels
Definition: D3D11_2.h:76
Definition: BASE.h:62