CommonLibSSE (powerof3)
Loading...
Searching...
No Matches
DXGI.h
Go to the documentation of this file.
1#pragma once
2
3#include "REX/W32/COM.h"
4
5namespace 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
22namespace REX::W32
23{
31
61
63 {
180
184
187
189 };
190
199
206
214
221
229
246}
247
248namespace 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
268namespace 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;
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;
294 std::uint32_t flags;
295 };
296
298 {
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
325
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
356
365
367 {
368 std::uint32_t count;
369 std::uint32_t quality;
370 };
371
376
384
396}
397
398namespace 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
527namespace 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
533namespace 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
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
HDC__ * HDC
Definition BASE.h:18
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
HINSTANCE HMODULE
Definition BASE.h:24
constexpr IID IID_IDXGIResource
Definition DXGI.h:545
constexpr IID IID_IDXGIDevice1
Definition DXGI.h:539
std::int32_t HRESULT
Definition BASE.h:28
HMONITOR__ * HMONITOR
Definition BASE.h:25
HWND__ * HWND
Definition BASE.h:30
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