CommonLibSSE (powerof3)
DXGI.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "REX/W32/COM.h"
4 
5 namespace REX::W32
6 {
7  struct IDXGIAdapter;
8  struct IDXGIAdapter1;
9  struct IDXGIDevice;
10  struct IDXGIDevice1;
11  struct IDXGIDeviceSubObject;
12  struct IDXGIFactory1;
13  struct IDXGIKeyedMutex;
14  struct IDXGIObject;
15  struct IDXGIOutput;
16  struct IDXGIResource;
17  struct IDXGISurface;
18  struct IDXGISurface1;
19  struct IDXGISwapChain;
20 }
21 
22 namespace REX::W32
23 {
25  {
30  };
31 
33  {
60  };
61 
63  {
180 
184 
187 
189  };
190 
192  {
198  };
199 
201  {
205  };
206 
208  {
213  };
214 
216  {
220  };
221 
223  {
228  };
229 
231  {
245  };
246 }
247 
248 namespace REX::W32
249 {
251  {
252  float r;
253  float g;
254  float b;
255  float a;
256  };
257 
259  using DXGI_USAGE = std::uint32_t;
260 
261  struct LUID
262  {
263  std::uint32_t lo;
264  std::int32_t hi;
265  };
266 }
267 
268 namespace REX::W32
269 {
271  {
272  wchar_t description[128];
273  std::uint32_t vendorId;
274  std::uint32_t deviceId;
275  std::uint32_t subSysId;
276  std::uint32_t revision;
277  std::size_t dedicatedVideoMemory;
279  std::size_t sharedSystemMemory;
281  };
282 
284  {
285  wchar_t description[128];
286  std::uint32_t vendorId;
287  std::uint32_t deviceId;
288  std::uint32_t subSysId;
289  std::uint32_t revision;
290  std::size_t dedicatedVideoMemory;
292  std::size_t sharedSystemMemory;
294  std::uint32_t flags;
295  };
296 
298  {
299  float primaryCoordinates[8][2];
300  float whitePoints[16][2];
301  };
302 
304  {
305  std::uint32_t presentCount;
306  std::uint32_t presentRefreshCount;
307  std::uint32_t syncRefreshCount;
308  std::int64_t syncQPCTime;
309  std::int64_t syncGPUTime;
310  };
311 
312  struct DXGI_RGB
313  {
314  float red;
315  float green;
316  float blue;
317  };
318 
320  {
324  };
325 
327  {
331  std::uint32_t numGammaControlPoints;
333  };
334 
336  {
337  std::int32_t pitch;
338  std::uint8_t* bits;
339  };
340 
342  {
343  std::uint32_t numerator;
344  std::uint32_t denominator;
345  };
346 
348  {
349  std::uint32_t width;
350  std::uint32_t height;
355  };
356 
358  {
359  wchar_t deviceName[32];
364  };
365 
367  {
368  std::uint32_t count;
369  std::uint32_t quality;
370  };
371 
373  {
375  };
376 
378  {
379  std::uint32_t width;
380  std::uint32_t height;
383  };
384 
386  {
390  std::uint32_t bufferCount;
394  std::uint32_t flags;
395  };
396 }
397 
398 namespace REX::W32
399 {
400  struct __declspec(novtable, uuid("aec22fb8-76f3-4639-9be0-28eb43a67a2e"))
401  IDXGIObject : public IUnknown
402  {
403  virtual HRESULT SetPrivateData(const GUID& a_iid, std::uint32_t a_dataSize, const void* a_data) = 0;
404  virtual HRESULT SetPrivateDataInterface(const GUID& a_iid, const IUnknown* a_unknown) = 0;
405  virtual HRESULT GetPrivateData(const GUID& a_iid, std::uint32_t* a_dataSize, void* a_data) = 0;
406  virtual HRESULT GetParent(const GUID& a_iid, void** a_parent) = 0;
407  };
408 
409  struct __declspec(novtable, uuid("3d3e0379-f9de-4d58-bb6c-18d62992f1a6"))
410  IDXGIDeviceSubObject : public IDXGIObject
411  {
412  virtual HRESULT GetDevice(const GUID& a_iid, void** a_device) = 0;
413  };
414 
415  struct __declspec(novtable, uuid("035f3ab4-482e-4e50-b41f-8a7f8bd8960b"))
416  IDXGIResource : public IDXGIDeviceSubObject
417  {
418  virtual HRESULT GetSharedHandle(HANDLE* a_sharedHandle) = 0;
419  virtual HRESULT GetUsage(DXGI_USAGE* a_usage) = 0;
420  virtual HRESULT SetEvictionPriority(std::uint32_t a_evictionPriority) = 0;
421  virtual HRESULT GetEvictionPriority(std::uint32_t* a_evictionPriority) = 0;
422  };
423 
424  struct __declspec(novtable, uuid("9d8e1289-d7b3-465f-8126-250e349af85d"))
425  IDXGIKeyedMutex : public IDXGIDeviceSubObject
426  {
427  virtual HRESULT AcquireSync(std::uint64_t a_key, std::uint32_t a_milliseconds) = 0;
428  virtual HRESULT ReleaseSync(std::uint64_t a_key) = 0;
429  };
430 
431  struct __declspec(novtable, uuid("cafcb56c-6ac3-4889-bf47-9e23bbd260ec"))
432  IDXGISurface : public IDXGIDeviceSubObject
433  {
434  virtual HRESULT GetDesc(DXGI_SURFACE_DESC* a_desc) = 0;
435  virtual HRESULT Map(DXGI_MAPPED_RECT* a_lockedRect, std::uint32_t a_mapFlags) = 0;
436  virtual HRESULT Unmap(void) = 0;
437  };
438 
439  struct __declspec(novtable, uuid("4AE63092-6327-4c1b-80AE-BFE12EA32B86"))
440  IDXGISurface1 : public IDXGISurface
441  {
442  virtual HRESULT GetDC(BOOL a_discard, HDC* a_hdc) = 0;
443  virtual HRESULT ReleaseDC(RECT* a_dirtyRect) = 0;
444  };
445 
446  struct __declspec(novtable, uuid("2411e7e1-12ac-4ccf-bd14-9798e8534dc0"))
447  IDXGIAdapter : public IDXGIObject
448  {
449  virtual HRESULT EnumOutputs(std::uint32_t a_outputSize, IDXGIOutput** a_output) = 0;
450  virtual HRESULT GetDesc(DXGI_ADAPTER_DESC* a_desc) = 0;
451  virtual HRESULT CheckInterfaceSupport(const GUID& a_iid, std::int64_t* a_umdVersion) = 0;
452  };
453 
454  struct __declspec(novtable, uuid("29038f61-3839-4626-91fd-086879011a05"))
455  IDXGIAdapter1 : public IDXGIAdapter
456  {
457  virtual HRESULT GetDesc1(DXGI_ADAPTER_DESC1* a_desc) = 0;
458  };
459 
460  struct __declspec(novtable, uuid("ae02eedb-c735-4690-8d52-5a8dc20213aa"))
461  IDXGIOutput : public IDXGIObject
462  {
463  virtual HRESULT GetDesc(DXGI_OUTPUT_DESC* a_desc) = 0;
464  virtual HRESULT GetDisplayModeList(DXGI_FORMAT a_enumFormat, std::uint32_t a_flags, std::uint32_t* a_numModes, DXGI_MODE_DESC* a_desc) = 0;
465  virtual HRESULT FindClosestMatchingMode(const DXGI_MODE_DESC* a_modeToMatch, DXGI_MODE_DESC* a_closestMatch, IUnknown* a_concernedDevice) = 0;
466  virtual HRESULT WaitForVBlank(void) = 0;
467  virtual HRESULT TakeOwnership(IUnknown* a_device, BOOL a_exclusive) = 0;
468  virtual void ReleaseOwnership(void) = 0;
469  virtual HRESULT GetGammaControlCapabilities(DXGI_GAMMA_CONTROL_CAPABILITIES* a_gammaCaps) = 0;
470  virtual HRESULT SetGammaControl(const DXGI_GAMMA_CONTROL* a_array) = 0;
471  virtual HRESULT GetGammaControl(DXGI_GAMMA_CONTROL* a_array) = 0;
472  virtual HRESULT SetDisplaySurface(IDXGISurface* a_scanoutSurface) = 0;
473  virtual HRESULT GetDisplaySurfaceData(IDXGISurface* a_destination) = 0;
474  virtual HRESULT GetFrameStatistics(DXGI_FRAME_STATISTICS* a_stats) = 0;
475  };
476 
477  struct __declspec(novtable, uuid("310d36a0-d2e7-4c0a-aa04-6a9d23b8886a"))
478  IDXGISwapChain : public IDXGIDeviceSubObject
479  {
480  virtual HRESULT Present(std::uint32_t a_syncInterval, std::uint32_t a_flags) = 0;
481  virtual HRESULT GetBuffer(std::uint32_t a_buffer, const GUID& a_iid, void** a_surface) = 0;
482  virtual HRESULT SetFullscreenState(BOOL a_fullscreen, IDXGIOutput* a_target) = 0;
483  virtual HRESULT GetFullscreenState(BOOL* a_fullscreen, IDXGIOutput** a_target) = 0;
484  virtual HRESULT GetDesc(DXGI_SWAP_CHAIN_DESC* a_desc) = 0;
485  virtual HRESULT ResizeBuffers(std::uint32_t a_bufferCount, std::uint32_t a_width, std::uint32_t a_height, DXGI_FORMAT a_newFormat, std::uint32_t a_swapChainFlags) = 0;
486  virtual HRESULT ResizeTarget(const DXGI_MODE_DESC* a_newTargetParameters) = 0;
487  virtual HRESULT GetContainingOutput(IDXGIOutput** a_output) = 0;
488  virtual HRESULT GetFrameStatistics(DXGI_FRAME_STATISTICS* a_stats) = 0;
489  virtual HRESULT GetLastPresentCount(std::uint32_t* a_lastPresentCount) = 0;
490  };
491 
492  struct __declspec(novtable, uuid("7b7166ec-21c7-44ae-b21a-c9ae321ae369"))
493  IDXGIFactory : public IDXGIObject
494  {
495  virtual HRESULT EnumAdapters(std::uint32_t a_adapterSize, IDXGIAdapter** a_adapter) = 0;
496  virtual HRESULT MakeWindowAssociation(HWND a_windowHandle, std::uint32_t a_flags) = 0;
497  virtual HRESULT GetWindowAssociation(HWND* a_windowHandle) = 0;
498  virtual HRESULT CreateSwapChain(IUnknown* a_device, DXGI_SWAP_CHAIN_DESC* a_desc, IDXGISwapChain** a_swapChain) = 0;
499  virtual HRESULT CreateSoftwareAdapter(HMODULE a_module, IDXGIAdapter** a_adapter) = 0;
500  };
501 
502  struct __declspec(novtable, uuid("770aae78-f26f-4dba-a829-253c83d1b387"))
503  IDXGIFactory1 : public IDXGIFactory
504  {
505  virtual HRESULT EnumAdapters1(std::uint32_t a_adapterSize, IDXGIAdapter1** a_adapter) = 0;
506  virtual BOOL IsCurrent(void) = 0;
507  };
508 
509  struct __declspec(novtable, uuid("54ec77fa-1377-44e6-8c32-88fd5f44c84c"))
510  IDXGIDevice : public IDXGIObject
511  {
512  virtual HRESULT GetAdapter(IDXGIAdapter** a_adapter) = 0;
513  virtual HRESULT CreateSurface(const DXGI_SURFACE_DESC* a_desc, std::uint32_t a_numSurfaces, DXGI_USAGE a_usage, const DXGI_SHARED_RESOURCE* a_sharedResource, IDXGISurface** a_surface) = 0;
514  virtual HRESULT QueryResourceResidency(IUnknown* const* a_resources, DXGI_RESIDENCY* a_residencyStatus, std::uint32_t a_numResources) = 0;
515  virtual HRESULT SetGPUThreadPriority(std::int32_t a_priority) = 0;
516  virtual HRESULT GetGPUThreadPriority(std::int32_t* a_priority) = 0;
517  };
518 
519  struct __declspec(novtable, uuid("77db970f-6276-48ba-ba28-070143b4392c"))
520  IDXGIDevice1 : public IDXGIDevice
521  {
522  virtual HRESULT SetMaximumFrameLatency(std::uint32_t a_maxLatency) = 0;
523  virtual HRESULT GetMaximumFrameLatency(std::uint32_t* a_maxLatency) = 0;
524  };
525 }
526 
527 namespace REX::W32
528 {
529  HRESULT CreateDXGIFactory(const IID& a_iid, void** a_factory) noexcept;
530  HRESULT CreateDXGIFactory1(const IID& a_iid, void** a_factory) noexcept;
531 }
532 
533 namespace REX::W32
534 {
535  inline constexpr IID IID_IDXGIAdapter{ 0x2411E7E1, 0x12AC, 0x4CCF, { 0xBD, 0x14, 0x97, 0x98, 0xE8, 0x53, 0x4D, 0xC0 } };
536  inline constexpr IID IID_IDXGIAdapter1{ 0x29038F61, 0x3839, 0x4626, { 0x91, 0xFD, 0x08, 0x68, 0x79, 0x01, 0x1A, 0x05 } };
537  inline constexpr IID IID_IDXGIObject{ 0xAEC22Fb8, 0x76F3, 0x4639, { 0x9B, 0xE0, 0x28, 0xEB, 0x43, 0xA6, 0x7A, 0x2E } };
538  inline constexpr IID IID_IDXGIDevice{ 0x54EC77FA, 0x1377, 0x44E6, { 0x8C, 0x32, 0x88, 0xFD, 0x5F, 0x44, 0xC8, 0x4C } };
539  inline constexpr IID IID_IDXGIDevice1{ 0x77DB970F, 0x6276, 0x48BA, { 0xBA, 0x28, 0x07, 0x01, 0x43, 0xB4, 0x39, 0x2C } };
540  inline constexpr IID IID_IDXGIDeviceSubObject{ 0x3D3E0379, 0xF9DE, 0x4D58, { 0xBB, 0x6C, 0x18, 0xD6, 0x29, 0x92, 0xF1, 0xA6 } };
541  inline constexpr IID IID_IDXGIFactory{ 0x7B7166EC, 0x21C7, 0x44AE, { 0xB2, 0x1A, 0xC9, 0xAE, 0x32, 0x1A, 0xE3, 0x69 } };
542  inline constexpr IID IID_IDXGIFactory1{ 0x770AAE78, 0xF26F, 0x4DBA, { 0xA8, 0x29, 0x25, 0x3C, 0x83, 0xD1, 0xB3, 0x87 } };
543  inline constexpr IID IID_IDXGIKeyedMutex{ 0x9D8E1289, 0xD7B3, 0x465F, { 0x81, 0x26, 0x25, 0x0E, 0x34, 0x9A, 0xF8, 0x5D } };
544  inline constexpr IID IID_IDXGIOutput{ 0xAE02EEDB, 0xC735, 0x4690, { 0x8D, 0x52, 0x5A, 0x8D, 0xC2, 0x02, 0x13, 0xAA } };
545  inline constexpr IID IID_IDXGIResource{ 0x035F3AB4, 0x482E, 0x4E50, { 0xB4, 0x1F, 0x8A, 0x7F, 0x8B, 0xD8, 0x96, 0x0B } };
546  inline constexpr IID IID_IDXGISurface{ 0xCAFCB56C, 0x6AC3, 0x4889, { 0xBF, 0x47, 0x9E, 0x23, 0xBB, 0xD2, 0x60, 0xEC } };
547  inline constexpr IID IID_IDXGISurface1{ 0x4AE63092, 0x6327, 0x4C1B, { 0x80, 0xAE, 0xBF, 0xE1, 0x2E, 0xA3, 0x2B, 0x86 } };
548  inline constexpr IID IID_IDXGISwapChain{ 0x310D36A0, 0xD2E7, 0x4C0A, { 0xAA, 0x04, 0x6A, 0x9D, 0x23, 0xB8, 0x88, 0x6A } };
549 }
Definition: BSDirectInputManager.h:8
constexpr IID IID_IDXGIKeyedMutex
Definition: DXGI.h:543
DXGI_MODE_SCALING
Definition: DXGI.h:201
@ DXGI_MODE_SCALING_CENTERED
Definition: DXGI.h:203
@ DXGI_MODE_SCALING_STRETCHED
Definition: DXGI.h:204
@ DXGI_MODE_SCALING_UNSPECIFIED
Definition: DXGI.h:202
constexpr IID IID_IDXGIFactory1
Definition: DXGI.h:542
constexpr IID IID_IDXGIAdapter
Definition: DXGI.h:535
void * HANDLE
Definition: BASE.h:14
DXGI_MODE_SCANLINE_ORDER
Definition: DXGI.h:208
@ DXGI_MODE_SCANLINE_ORDER_UPPER_FIELD_FIRST
Definition: DXGI.h:211
@ DXGI_MODE_SCANLINE_ORDER_PROGRESSIVE
Definition: DXGI.h:210
@ DXGI_MODE_SCANLINE_ORDER_LOWER_FIELD_FIRST
Definition: DXGI.h:212
@ DXGI_MODE_SCANLINE_ORDER_UNSPECIFIED
Definition: DXGI.h:209
constexpr IID IID_IDXGIObject
Definition: DXGI.h:537
constexpr IID IID_IDXGISurface1
Definition: DXGI.h:547
struct __declspec(novtable, uuid("00000000-0000-0000-c000-000000000046")) IUnknown
Definition: COM.h:7
struct HDC__ * HDC
Definition: BASE.h:18
DXGI_SWAP_EFFECT
Definition: DXGI.h:223
@ DXGI_SWAP_EFFECT_SEQUENTIAL
Definition: DXGI.h:225
@ DXGI_SWAP_EFFECT_DISCARD
Definition: DXGI.h:224
@ DXGI_SWAP_EFFECT_FLIP_DISCARD
Definition: DXGI.h:227
@ DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL
Definition: DXGI.h:226
DXGI_SWAP_CHAIN_FLAG
Definition: DXGI.h:231
@ DXGI_SWAP_CHAIN_FLAG_YUV_VIDEO
Definition: DXGI.h:241
@ DXGI_SWAP_CHAIN_FLAG_HW_PROTECTED
Definition: DXGI.h:242
@ DXGI_SWAP_CHAIN_FLAG_RESTRICTED_TO_ALL_HOLOGRAPHIC_DISPLAYS
Definition: DXGI.h:244
@ DXGI_SWAP_CHAIN_FLAG_FRAME_LATENCY_WAITABLE_OBJECT
Definition: DXGI.h:238
@ DXGI_SWAP_CHAIN_FLAG_ALLOW_MODE_SWITCH
Definition: DXGI.h:233
@ DXGI_SWAP_CHAIN_FLAG_RESTRICT_SHARED_RESOURCE_DRIVER
Definition: DXGI.h:236
@ DXGI_SWAP_CHAIN_FLAG_NONPREROTATED
Definition: DXGI.h:232
@ DXGI_SWAP_CHAIN_FLAG_RESTRICTED_CONTENT
Definition: DXGI.h:235
@ DXGI_SWAP_CHAIN_FLAG_ALLOW_TEARING
Definition: DXGI.h:243
@ DXGI_SWAP_CHAIN_FLAG_FULLSCREEN_VIDEO
Definition: DXGI.h:240
@ DXGI_SWAP_CHAIN_FLAG_DISPLAY_ONLY
Definition: DXGI.h:237
@ DXGI_SWAP_CHAIN_FLAG_GDI_COMPATIBLE
Definition: DXGI.h:234
@ DXGI_SWAP_CHAIN_FLAG_FOREGROUND_LAYER
Definition: DXGI.h:239
HRESULT CreateDXGIFactory1(const IID &a_iid, void **a_factory) noexcept
std::int32_t BOOL
Definition: BASE.h:13
constexpr IID IID_IDXGISwapChain
Definition: DXGI.h:548
DXGI_ADAPTER_FLAG
Definition: DXGI.h:25
@ DXGI_ADAPTER_FLAG_FORCE_DWORD
Definition: DXGI.h:29
@ DXGI_ADAPTER_FLAG_SOFTWARE
Definition: DXGI.h:28
@ DXGI_ADAPTER_FLAG_REMOTE
Definition: DXGI.h:27
@ DXGI_ADAPTER_FLAG_NONE
Definition: DXGI.h:26
constexpr IID IID_IDXGIAdapter1
Definition: DXGI.h:536
DXGI_RESIDENCY
Definition: DXGI.h:216
@ DXGI_RESIDENCY_FULLY_RESIDENT
Definition: DXGI.h:217
@ DXGI_RESIDENCY_EVICTED_TO_DISK
Definition: DXGI.h:219
@ DXGI_RESIDENCY_RESIDENT_IN_SHARED_MEMORY
Definition: DXGI.h:218
DXGI_MODE_ROTATION
Definition: DXGI.h:192
@ DXGI_MODE_ROTATION_ROTATE90
Definition: DXGI.h:195
@ DXGI_MODE_ROTATION_UNSPECIFIED
Definition: DXGI.h:193
@ DXGI_MODE_ROTATION_ROTATE270
Definition: DXGI.h:197
@ DXGI_MODE_ROTATION_IDENTITY
Definition: DXGI.h:194
@ DXGI_MODE_ROTATION_ROTATE180
Definition: DXGI.h:196
constexpr IID IID_IDXGIDeviceSubObject
Definition: DXGI.h:540
std::uint32_t DXGI_USAGE
Definition: DXGI.h:259
DXGI_FORMAT
Definition: DXGI.h:63
@ DXGI_FORMAT_R8G8_SNORM
Definition: DXGI.h:115
@ DXGI_FORMAT_R9G9B9E5_SHAREDEXP
Definition: DXGI.h:131
@ DXGI_FORMAT_R8_UNORM
Definition: DXGI.h:125
@ DXGI_FORMAT_R8_SINT
Definition: DXGI.h:128
@ DXGI_FORMAT_R32G32B32_FLOAT
Definition: DXGI.h:70
@ DXGI_FORMAT_R32G32B32A32_FLOAT
Definition: DXGI.h:66
@ DXGI_FORMAT_R32G32B32_UINT
Definition: DXGI.h:71
@ DXGI_FORMAT_R32G32B32_TYPELESS
Definition: DXGI.h:69
@ DXGI_FORMAT_B8G8R8A8_UNORM
Definition: DXGI.h:151
@ DXGI_FORMAT_A8_UNORM
Definition: DXGI.h:129
@ DXGI_FORMAT_V408
Definition: DXGI.h:183
@ DXGI_FORMAT_R8_TYPELESS
Definition: DXGI.h:124
@ DXGI_FORMAT_B8G8R8A8_TYPELESS
Definition: DXGI.h:154
@ DXGI_FORMAT_R16G16B16A16_TYPELESS
Definition: DXGI.h:73
@ DXGI_FORMAT_R32_UINT
Definition: DXGI.h:106
@ DXGI_FORMAT_D24_UNORM_S8_UINT
Definition: DXGI.h:109
@ DXGI_FORMAT_FORCE_UINT
Definition: DXGI.h:188
@ DXGI_FORMAT_R32G32_SINT
Definition: DXGI.h:82
@ DXGI_FORMAT_R8G8B8A8_UINT
Definition: DXGI.h:94
@ DXGI_FORMAT_BC4_SNORM
Definition: DXGI.h:145
@ DXGI_FORMAT_R8G8_B8G8_UNORM
Definition: DXGI.h:132
@ DXGI_FORMAT_P8
Definition: DXGI.h:177
@ DXGI_FORMAT_R24_UNORM_X8_TYPELESS
Definition: DXGI.h:110
@ DXGI_FORMAT_R16_SNORM
Definition: DXGI.h:122
@ DXGI_FORMAT_R16G16_UNORM
Definition: DXGI.h:99
@ DXGI_FORMAT_BC5_UNORM
Definition: DXGI.h:147
@ DXGI_FORMAT_Y416
Definition: DXGI.h:166
@ DXGI_FORMAT_IA44
Definition: DXGI.h:176
@ DXGI_FORMAT_BC2_UNORM
Definition: DXGI.h:138
@ DXGI_FORMAT_B4G4R4A4_UNORM
Definition: DXGI.h:179
@ DXGI_FORMAT_R8G8_UNORM
Definition: DXGI.h:113
@ DXGI_FORMAT_BC7_TYPELESS
Definition: DXGI.h:161
@ DXGI_FORMAT_R16G16B16A16_SINT
Definition: DXGI.h:78
@ DXGI_FORMAT_B5G6R5_UNORM
Definition: DXGI.h:149
@ DXGI_FORMAT_R32_SINT
Definition: DXGI.h:107
@ DXGI_FORMAT_R32G32B32_SINT
Definition: DXGI.h:72
@ DXGI_FORMAT_P010
Definition: DXGI.h:168
@ DXGI_FORMAT_BC7_UNORM
Definition: DXGI.h:162
@ DXGI_FORMAT_R16_TYPELESS
Definition: DXGI.h:117
@ DXGI_FORMAT_R8G8B8A8_SINT
Definition: DXGI.h:96
@ DXGI_FORMAT_420_OPAQUE
Definition: DXGI.h:170
@ DXGI_FORMAT_R16G16B16A16_UNORM
Definition: DXGI.h:75
@ DXGI_FORMAT_Y210
Definition: DXGI.h:172
@ DXGI_FORMAT_BC7_UNORM_SRGB
Definition: DXGI.h:163
@ DXGI_FORMAT_R16G16B16A16_FLOAT
Definition: DXGI.h:74
@ DXGI_FORMAT_R16G16_TYPELESS
Definition: DXGI.h:97
@ DXGI_FORMAT_UNKNOWN
Definition: DXGI.h:64
@ DXGI_FORMAT_BC3_UNORM_SRGB
Definition: DXGI.h:142
@ DXGI_FORMAT_R32G32_TYPELESS
Definition: DXGI.h:79
@ DXGI_FORMAT_X32_TYPELESS_G8X24_UINT
Definition: DXGI.h:86
@ DXGI_FORMAT_P016
Definition: DXGI.h:169
@ DXGI_FORMAT_R32_FLOAT
Definition: DXGI.h:105
@ DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS
Definition: DXGI.h:85
@ DXGI_FORMAT_D32_FLOAT_S8X24_UINT
Definition: DXGI.h:84
@ DXGI_FORMAT_B8G8R8X8_TYPELESS
Definition: DXGI.h:156
@ DXGI_FORMAT_R16G16_UINT
Definition: DXGI.h:100
@ DXGI_FORMAT_BC1_UNORM_SRGB
Definition: DXGI.h:136
@ DXGI_FORMAT_D32_FLOAT
Definition: DXGI.h:104
@ DXGI_FORMAT_R10G10B10A2_TYPELESS
Definition: DXGI.h:87
@ DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM
Definition: DXGI.h:153
@ DXGI_FORMAT_R8G8B8A8_SNORM
Definition: DXGI.h:95
@ DXGI_FORMAT_BC1_TYPELESS
Definition: DXGI.h:134
@ DXGI_FORMAT_R11G11B10_FLOAT
Definition: DXGI.h:90
@ DXGI_FORMAT_R16_UINT
Definition: DXGI.h:121
@ DXGI_FORMAT_B5G5R5A1_UNORM
Definition: DXGI.h:150
@ DXGI_FORMAT_R16G16_SNORM
Definition: DXGI.h:101
@ DXGI_FORMAT_V208
Definition: DXGI.h:182
@ DXGI_FORMAT_B8G8R8X8_UNORM
Definition: DXGI.h:152
@ DXGI_FORMAT_R32_TYPELESS
Definition: DXGI.h:103
@ DXGI_FORMAT_AI44
Definition: DXGI.h:175
@ DXGI_FORMAT_YUY2
Definition: DXGI.h:171
@ DXGI_FORMAT_R10G10B10A2_UNORM
Definition: DXGI.h:88
@ DXGI_FORMAT_BC6H_TYPELESS
Definition: DXGI.h:158
@ DXGI_FORMAT_X24_TYPELESS_G8_UINT
Definition: DXGI.h:111
@ DXGI_FORMAT_NV11
Definition: DXGI.h:174
@ DXGI_FORMAT_R8_SNORM
Definition: DXGI.h:127
@ DXGI_FORMAT_A8P8
Definition: DXGI.h:178
@ DXGI_FORMAT_D16_UNORM
Definition: DXGI.h:119
@ DXGI_FORMAT_R8G8_TYPELESS
Definition: DXGI.h:112
@ DXGI_FORMAT_R8G8B8A8_UNORM
Definition: DXGI.h:92
@ DXGI_FORMAT_R16_UNORM
Definition: DXGI.h:120
@ DXGI_FORMAT_R16G16B16A16_UINT
Definition: DXGI.h:76
@ DXGI_FORMAT_R16G16_FLOAT
Definition: DXGI.h:98
@ DXGI_FORMAT_R8G8_SINT
Definition: DXGI.h:116
@ DXGI_FORMAT_BC6H_UF16
Definition: DXGI.h:159
@ DXGI_FORMAT_R32G32_UINT
Definition: DXGI.h:81
@ DXGI_FORMAT_R16_SINT
Definition: DXGI.h:123
@ DXGI_FORMAT_BC4_TYPELESS
Definition: DXGI.h:143
@ DXGI_FORMAT_B8G8R8A8_UNORM_SRGB
Definition: DXGI.h:155
@ DXGI_FORMAT_BC1_UNORM
Definition: DXGI.h:135
@ DXGI_FORMAT_BC5_TYPELESS
Definition: DXGI.h:146
@ DXGI_FORMAT_R32G32_FLOAT
Definition: DXGI.h:80
@ DXGI_FORMAT_R16G16_SINT
Definition: DXGI.h:102
@ DXGI_FORMAT_R8G8_UINT
Definition: DXGI.h:114
@ DXGI_FORMAT_Y410
Definition: DXGI.h:165
@ DXGI_FORMAT_BC2_TYPELESS
Definition: DXGI.h:137
@ DXGI_FORMAT_Y216
Definition: DXGI.h:173
@ DXGI_FORMAT_BC5_SNORM
Definition: DXGI.h:148
@ DXGI_FORMAT_BC3_TYPELESS
Definition: DXGI.h:140
@ DXGI_FORMAT_R32G32B32A32_SINT
Definition: DXGI.h:68
@ DXGI_FORMAT_BC4_UNORM
Definition: DXGI.h:144
@ DXGI_FORMAT_BC2_UNORM_SRGB
Definition: DXGI.h:139
@ DXGI_FORMAT_SAMPLER_FEEDBACK_MIP_REGION_USED_OPAQUE
Definition: DXGI.h:186
@ DXGI_FORMAT_SAMPLER_FEEDBACK_MIN_MIP_OPAQUE
Definition: DXGI.h:185
@ DXGI_FORMAT_BC3_UNORM
Definition: DXGI.h:141
@ DXGI_FORMAT_R8_UINT
Definition: DXGI.h:126
@ DXGI_FORMAT_NV12
Definition: DXGI.h:167
@ DXGI_FORMAT_AYUV
Definition: DXGI.h:164
@ DXGI_FORMAT_R8G8B8A8_UNORM_SRGB
Definition: DXGI.h:93
@ DXGI_FORMAT_R16G16B16A16_SNORM
Definition: DXGI.h:77
@ DXGI_FORMAT_R32G8X24_TYPELESS
Definition: DXGI.h:83
@ DXGI_FORMAT_G8R8_G8B8_UNORM
Definition: DXGI.h:133
@ DXGI_FORMAT_B8G8R8X8_UNORM_SRGB
Definition: DXGI.h:157
@ DXGI_FORMAT_R24G8_TYPELESS
Definition: DXGI.h:108
@ DXGI_FORMAT_P208
Definition: DXGI.h:181
@ DXGI_FORMAT_R10G10B10A2_UINT
Definition: DXGI.h:89
@ DXGI_FORMAT_BC6H_SF16
Definition: DXGI.h:160
@ DXGI_FORMAT_R8G8B8A8_TYPELESS
Definition: DXGI.h:91
@ DXGI_FORMAT_R32G32B32A32_UINT
Definition: DXGI.h:67
@ DXGI_FORMAT_R16_FLOAT
Definition: DXGI.h:118
@ DXGI_FORMAT_R32G32B32A32_TYPELESS
Definition: DXGI.h:65
@ DXGI_FORMAT_R1_UNORM
Definition: DXGI.h:130
constexpr IID IID_IDXGIDevice
Definition: DXGI.h:538
HRESULT CreateDXGIFactory(const IID &a_iid, void **a_factory) noexcept
constexpr IID IID_IDXGIFactory
Definition: DXGI.h:541
constexpr IID IID_IDXGIOutput
Definition: DXGI.h:544
struct HMONITOR__ * HMONITOR
Definition: BASE.h:25
HINSTANCE HMODULE
Definition: BASE.h:24
constexpr IID IID_IDXGIResource
Definition: DXGI.h:545
constexpr IID IID_IDXGIDevice1
Definition: DXGI.h:539
struct HWND__ * HWND
Definition: BASE.h:30
std::int32_t HRESULT
Definition: BASE.h:28
constexpr IID IID_IDXGISurface
Definition: DXGI.h:546
DXGI_COLOR_SPACE_TYPE
Definition: DXGI.h:33
@ DXGI_COLOR_SPACE_RESERVED
Definition: DXGI.h:38
@ DXGI_COLOR_SPACE_RGB_FULL_G2084_NONE_P2020
Definition: DXGI.h:46
@ DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P601
Definition: DXGI.h:40
@ DXGI_COLOR_SPACE_YCBCR_FULL_GHLG_TOPLEFT_P2020
Definition: DXGI.h:53
@ DXGI_COLOR_SPACE_RGB_FULL_G10_NONE_P709
Definition: DXGI.h:35
@ DXGI_COLOR_SPACE_YCBCR_STUDIO_G24_LEFT_P2020
Definition: DXGI.h:57
@ DXGI_COLOR_SPACE_YCBCR_STUDIO_G24_LEFT_P709
Definition: DXGI.h:56
@ DXGI_COLOR_SPACE_YCBCR_STUDIO_G2084_TOPLEFT_P2020
Definition: DXGI.h:50
@ DXGI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P601
Definition: DXGI.h:41
@ DXGI_COLOR_SPACE_RGB_STUDIO_G24_NONE_P2020
Definition: DXGI.h:55
@ DXGI_COLOR_SPACE_RGB_FULL_G22_NONE_P2020
Definition: DXGI.h:51
@ DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_TOPLEFT_P2020
Definition: DXGI.h:49
@ DXGI_COLOR_SPACE_YCBCR_STUDIO_G2084_LEFT_P2020
Definition: DXGI.h:47
@ DXGI_COLOR_SPACE_RGB_FULL_G22_NONE_P709
Definition: DXGI.h:34
@ DXGI_COLOR_SPACE_RGB_STUDIO_G2084_NONE_P2020
Definition: DXGI.h:48
@ DXGI_COLOR_SPACE_CUSTOM
Definition: DXGI.h:59
@ DXGI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P709
Definition: DXGI.h:43
@ DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P709
Definition: DXGI.h:42
@ DXGI_COLOR_SPACE_YCBCR_FULL_G22_NONE_P709_X601
Definition: DXGI.h:39
@ DXGI_COLOR_SPACE_RGB_STUDIO_G22_NONE_P709
Definition: DXGI.h:36
@ DXGI_COLOR_SPACE_YCBCR_STUDIO_G24_TOPLEFT_P2020
Definition: DXGI.h:58
@ DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P2020
Definition: DXGI.h:44
@ DXGI_COLOR_SPACE_YCBCR_STUDIO_GHLG_TOPLEFT_P2020
Definition: DXGI.h:52
@ DXGI_COLOR_SPACE_RGB_STUDIO_G24_NONE_P709
Definition: DXGI.h:54
@ DXGI_COLOR_SPACE_RGB_STUDIO_G22_NONE_P2020
Definition: DXGI.h:37
@ DXGI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P2020
Definition: DXGI.h:45
Definition: DXGI.h:251
float g
Definition: DXGI.h:253
float a
Definition: DXGI.h:255
float b
Definition: DXGI.h:254
float r
Definition: DXGI.h:252
Definition: DXGI.h:284
wchar_t description[128]
Definition: DXGI.h:285
LUID adapterLuid
Definition: DXGI.h:293
std::uint32_t subSysId
Definition: DXGI.h:288
std::size_t dedicatedVideoMemory
Definition: DXGI.h:290
std::size_t dedicatedSystemMemory
Definition: DXGI.h:291
std::uint32_t vendorId
Definition: DXGI.h:286
std::uint32_t flags
Definition: DXGI.h:294
std::uint32_t revision
Definition: DXGI.h:289
std::size_t sharedSystemMemory
Definition: DXGI.h:292
std::uint32_t deviceId
Definition: DXGI.h:287
Definition: DXGI.h:271
std::uint32_t deviceId
Definition: DXGI.h:274
std::uint32_t subSysId
Definition: DXGI.h:275
std::size_t dedicatedSystemMemory
Definition: DXGI.h:278
std::size_t sharedSystemMemory
Definition: DXGI.h:279
wchar_t description[128]
Definition: DXGI.h:272
std::uint32_t revision
Definition: DXGI.h:276
LUID adapterLuid
Definition: DXGI.h:280
std::size_t dedicatedVideoMemory
Definition: DXGI.h:277
std::uint32_t vendorId
Definition: DXGI.h:273
float whitePoints[16][2]
Definition: DXGI.h:300
float primaryCoordinates[8][2]
Definition: DXGI.h:299
Definition: DXGI.h:304
std::uint32_t presentCount
Definition: DXGI.h:305
std::int64_t syncQPCTime
Definition: DXGI.h:308
std::int64_t syncGPUTime
Definition: DXGI.h:309
std::uint32_t syncRefreshCount
Definition: DXGI.h:307
std::uint32_t presentRefreshCount
Definition: DXGI.h:306
BOOL scaleAndOffsetSupported
Definition: DXGI.h:328
float controlPointPositions[1025]
Definition: DXGI.h:332
std::uint32_t numGammaControlPoints
Definition: DXGI.h:331
float minConvertedValue
Definition: DXGI.h:330
float maxConvertedValue
Definition: DXGI.h:329
Definition: DXGI.h:320
DXGI_RGB scale
Definition: DXGI.h:321
DXGI_RGB offset
Definition: DXGI.h:322
DXGI_RGB gammaCurve[1025]
Definition: DXGI.h:323
Definition: DXGI.h:336
std::int32_t pitch
Definition: DXGI.h:337
std::uint8_t * bits
Definition: DXGI.h:338
Definition: DXGI.h:348
DXGI_MODE_SCALING scaling
Definition: DXGI.h:354
std::uint32_t height
Definition: DXGI.h:350
DXGI_FORMAT format
Definition: DXGI.h:352
std::uint32_t width
Definition: DXGI.h:349
DXGI_RATIONAL refreshRate
Definition: DXGI.h:351
DXGI_MODE_SCANLINE_ORDER scanlineOrdering
Definition: DXGI.h:353
Definition: DXGI.h:358
RECT desktopCoordinates
Definition: DXGI.h:360
wchar_t deviceName[32]
Definition: DXGI.h:359
DXGI_MODE_ROTATION rotation
Definition: DXGI.h:362
BOOL attachedToDesktop
Definition: DXGI.h:361
HMONITOR monitor
Definition: DXGI.h:363
Definition: DXGI.h:342
std::uint32_t denominator
Definition: DXGI.h:344
std::uint32_t numerator
Definition: DXGI.h:343
Definition: DXGI.h:313
float blue
Definition: DXGI.h:316
float red
Definition: DXGI.h:314
float green
Definition: DXGI.h:315
Definition: DXGI.h:367
std::uint32_t count
Definition: DXGI.h:368
std::uint32_t quality
Definition: DXGI.h:369
Definition: DXGI.h:373
HANDLE handle
Definition: DXGI.h:374
Definition: DXGI.h:378
std::uint32_t width
Definition: DXGI.h:379
std::uint32_t height
Definition: DXGI.h:380
DXGI_SAMPLE_DESC sampleDesc
Definition: DXGI.h:382
DXGI_FORMAT format
Definition: DXGI.h:381
Definition: DXGI.h:386
std::uint32_t bufferCount
Definition: DXGI.h:390
DXGI_MODE_DESC bufferDesc
Definition: DXGI.h:387
DXGI_SAMPLE_DESC sampleDesc
Definition: DXGI.h:388
DXGI_SWAP_EFFECT swapEffect
Definition: DXGI.h:393
BOOL windowed
Definition: DXGI.h:392
std::uint32_t flags
Definition: DXGI.h:394
HWND outputWindow
Definition: DXGI.h:391
DXGI_USAGE bufferUsage
Definition: DXGI.h:389
Definition: BASE.h:63
Definition: DXGI.h:262
std::int32_t hi
Definition: DXGI.h:264
std::uint32_t lo
Definition: DXGI.h:263
Definition: BASE.h:110