; dxgi.inc by las/mercury struc DXGI_SWAP_CHAIN_DESC ; DXGI_MODE_DESC BufferDesc .Width: resd 1 .Height: resd 1 ; DXGI_RATIONAL RefreshRate .Numerator: resd 1 .Denominator: resd 1 .Format: resd 1 .ScanlineOrdering: resd 1 .Scaling: resd 1 ; DXGI_SAMPLE_DESC SampleDesc .Count: resd 1 .Quality: resd 1 .BufferUsage: resd 1 .BufferCount: resd 1 .OutputWindow: resd 1 .Windowed: resd 1 .SwapEffect: resd 1 .Flags: resd 1 endstruc ; DXGI_RESIDENCY %define DXGI_RESIDENCY_FULLY_RESIDENT 1 %define DXGI_RESIDENCY_RESIDENT_IN_SHARED_MEMORY 2 %define DXGI_RESIDENCY_EVICTED_TO_DISK 3 ; DXGI_SWAP_EFFECT %define DXGI_SWAP_EFFECT_DISCARD 0 %define DXGI_SWAP_EFFECT_SEQUENTIAL 1 %define DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL 3 ; DXGI_SWAP_CHAIN_FLAG %define DXGI_SWAP_CHAIN_FLAG_NONPREROTATED 1 %define DXGI_SWAP_CHAIN_FLAG_ALLOW_MODE_SWITCH 2 %define DXGI_SWAP_CHAIN_FLAG_GDI_COMPATIBLE 4 %define DXGI_SWAP_CHAIN_FLAG_RESTRICTED_CONTENT 8 %define DXGI_SWAP_CHAIN_FLAG_RESTRICT_SHARED_RESOURCE_DRIVER 16 %define DXGI_SWAP_CHAIN_FLAG_DISPLAY_ONLY 32 %define DXGI_SWAP_CHAIN_FLAG_FRAME_LATENCY_WAITABLE_OBJECT 64 %define DXGI_SWAP_CHAIN_FLAG_FOREGROUND_LAYER 128 %define DXGI_SWAP_CHAIN_FLAG_FULLSCREEN_VIDEO 256 ; DXGI_ADAPTER_FLAG %define DXGI_ADAPTER_FLAG_NONE 0 %define DXGI_ADAPTER_FLAG_REMOTE 1 %define DXGI_ADAPTER_FLAG_SOFTWARE 2 %define DXGI_ADAPTER_FLAG_FORCE_DWORD 0xffffffff ; DXGI_FORMAT %define DXGI_FORMAT_UNKNOWN 0 %define DXGI_FORMAT_R32G32B32A32_TYPELESS 1 %define DXGI_FORMAT_R32G32B32A32_FLOAT 2 %define DXGI_FORMAT_R32G32B32A32_UINT 3 %define DXGI_FORMAT_R32G32B32A32_SINT 4 %define DXGI_FORMAT_R32G32B32_TYPELESS 5 %define DXGI_FORMAT_R32G32B32_FLOAT 6 %define DXGI_FORMAT_R32G32B32_UINT 7 %define DXGI_FORMAT_R32G32B32_SINT 8 %define DXGI_FORMAT_R16G16B16A16_TYPELESS 9 %define DXGI_FORMAT_R16G16B16A16_FLOAT 10 %define DXGI_FORMAT_R16G16B16A16_UNORM 11 %define DXGI_FORMAT_R16G16B16A16_UINT 12 %define DXGI_FORMAT_R16G16B16A16_SNORM 13 %define DXGI_FORMAT_R16G16B16A16_SINT 14 %define DXGI_FORMAT_R32G32_TYPELESS 15 %define DXGI_FORMAT_R32G32_FLOAT 16 %define DXGI_FORMAT_R32G32_UINT 17 %define DXGI_FORMAT_R32G32_SINT 18 %define DXGI_FORMAT_R32G8X24_TYPELESS 19 %define DXGI_FORMAT_D32_FLOAT_S8X24_UINT 20 %define DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS 21 %define DXGI_FORMAT_X32_TYPELESS_G8X24_UINT 22 %define DXGI_FORMAT_R10G10B10A2_TYPELESS 23 %define DXGI_FORMAT_R10G10B10A2_UNORM 24 %define DXGI_FORMAT_R10G10B10A2_UINT 25 %define DXGI_FORMAT_R11G11B10_FLOAT 26 %define DXGI_FORMAT_R8G8B8A8_TYPELESS 27 %define DXGI_FORMAT_R8G8B8A8_UNORM 28 %define DXGI_FORMAT_R8G8B8A8_UNORM_SRGB 29 %define DXGI_FORMAT_R8G8B8A8_UINT 30 %define DXGI_FORMAT_R8G8B8A8_SNORM 31 %define DXGI_FORMAT_R8G8B8A8_SINT 32 %define DXGI_FORMAT_R16G16_TYPELESS 33 %define DXGI_FORMAT_R16G16_FLOAT 34 %define DXGI_FORMAT_R16G16_UNORM 35 %define DXGI_FORMAT_R16G16_UINT 36 %define DXGI_FORMAT_R16G16_SNORM 37 %define DXGI_FORMAT_R16G16_SINT 38 %define DXGI_FORMAT_R32_TYPELESS 39 %define DXGI_FORMAT_D32_FLOAT 40 %define DXGI_FORMAT_R32_FLOAT 41 %define DXGI_FORMAT_R32_UINT 42 %define DXGI_FORMAT_R32_SINT 43 %define DXGI_FORMAT_R24G8_TYPELESS 44 %define DXGI_FORMAT_D24_UNORM_S8_UINT 45 %define DXGI_FORMAT_R24_UNORM_X8_TYPELESS 46 %define DXGI_FORMAT_X24_TYPELESS_G8_UINT 47 %define DXGI_FORMAT_R8G8_TYPELESS 48 %define DXGI_FORMAT_R8G8_UNORM 49 %define DXGI_FORMAT_R8G8_UINT 50 %define DXGI_FORMAT_R8G8_SNORM 51 %define DXGI_FORMAT_R8G8_SINT 52 %define DXGI_FORMAT_R16_TYPELESS 53 %define DXGI_FORMAT_R16_FLOAT 54 %define DXGI_FORMAT_D16_UNORM 55 %define DXGI_FORMAT_R16_UNORM 56 %define DXGI_FORMAT_R16_UINT 57 %define DXGI_FORMAT_R16_SNORM 58 %define DXGI_FORMAT_R16_SINT 59 %define DXGI_FORMAT_R8_TYPELESS 60 %define DXGI_FORMAT_R8_UNORM 61 %define DXGI_FORMAT_R8_UINT 62 %define DXGI_FORMAT_R8_SNORM 63 %define DXGI_FORMAT_R8_SINT 64 %define DXGI_FORMAT_A8_UNORM 65 %define DXGI_FORMAT_R1_UNORM 66 %define DXGI_FORMAT_R9G9B9E5_SHAREDEXP 67 %define DXGI_FORMAT_R8G8_B8G8_UNORM 68 %define DXGI_FORMAT_G8R8_G8B8_UNORM 69 %define DXGI_FORMAT_BC1_TYPELESS 70 %define DXGI_FORMAT_BC1_UNORM 71 %define DXGI_FORMAT_BC1_UNORM_SRGB 72 %define DXGI_FORMAT_BC2_TYPELESS 73 %define DXGI_FORMAT_BC2_UNORM 74 %define DXGI_FORMAT_BC2_UNORM_SRGB 75 %define DXGI_FORMAT_BC3_TYPELESS 76 %define DXGI_FORMAT_BC3_UNORM 77 %define DXGI_FORMAT_BC3_UNORM_SRGB 78 %define DXGI_FORMAT_BC4_TYPELESS 79 %define DXGI_FORMAT_BC4_UNORM 80 %define DXGI_FORMAT_BC4_SNORM 81 %define DXGI_FORMAT_BC5_TYPELESS 82 %define DXGI_FORMAT_BC5_UNORM 83 %define DXGI_FORMAT_BC5_SNORM 84 %define DXGI_FORMAT_B5G6R5_UNORM 85 %define DXGI_FORMAT_B5G5R5A1_UNORM 86 %define DXGI_FORMAT_B8G8R8A8_UNORM 87 %define DXGI_FORMAT_B8G8R8X8_UNORM 88 %define DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM 89 %define DXGI_FORMAT_B8G8R8A8_TYPELESS 90 %define DXGI_FORMAT_B8G8R8A8_UNORM_SRGB 91 %define DXGI_FORMAT_B8G8R8X8_TYPELESS 92 %define DXGI_FORMAT_B8G8R8X8_UNORM_SRGB 93 %define DXGI_FORMAT_BC6H_TYPELESS 94 %define DXGI_FORMAT_BC6H_UF16 95 %define DXGI_FORMAT_BC6H_SF16 96 %define DXGI_FORMAT_BC7_TYPELESS 97 %define DXGI_FORMAT_BC7_UNORM 98 %define DXGI_FORMAT_BC7_UNORM_SRGB 99 %define DXGI_FORMAT_AYUV 100 %define DXGI_FORMAT_Y410 101 %define DXGI_FORMAT_Y416 102 %define DXGI_FORMAT_NV12 103 %define DXGI_FORMAT_P010 104 %define DXGI_FORMAT_P016 105 %define DXGI_FORMAT_420_OPAQUE 106 %define DXGI_FORMAT_YUY2 107 %define DXGI_FORMAT_Y210 108 %define DXGI_FORMAT_Y216 109 %define DXGI_FORMAT_NV11 110 %define DXGI_FORMAT_AI44 111 %define DXGI_FORMAT_IA44 112 %define DXGI_FORMAT_P8 113 %define DXGI_FORMAT_A8P8 114 %define DXGI_FORMAT_B4G4R4A4_UNORM 115 %define DXGI_FORMAT_FORCE_UINT 0xffffffff ; DXGI_MODE_SCANLINE_ORDER %define DXGI_MODE_SCANLINE_ORDER_UNSPECIFIED 0 %define DXGI_MODE_SCANLINE_ORDER_PROGRESSIVE 1 %define DXGI_MODE_SCANLINE_ORDER_UPPER_FIELD_FIRST 2 %define DXGI_MODE_SCANLINE_ORDER_LOWER_FIELD_FIRST 3 ; DXGI_MODE_SCALING %define DXGI_MODE_SCALING_UNSPECIFIED 0 %define DXGI_MODE_SCALING_CENTERED 1 %define DXGI_MODE_SCALING_STRETCHED 2 ; DXGI_MODE_ROTATION %define DXGI_MODE_ROTATION_UNSPECIFIED 0 %define DXGI_MODE_ROTATION_IDENTITY 1 %define DXGI_MODE_ROTATION_ROTATE90 2 %define DXGI_MODE_ROTATION_ROTATE180 3 %define DXGI_MODE_ROTATION_ROTATE270 4 %define DXGI_CPU_ACCESS_NONE (0) %define DXGI_CPU_ACCESS_DYNAMIC (1) %define DXGI_CPU_ACCESS_READ_WRITE (2) %define DXGI_CPU_ACCESS_SCRATCH (3) %define DXGI_CPU_ACCESS_FIELD 15 %define DXGI_USAGE_SHADER_INPUT (1<<(0 + 4)) %define DXGI_USAGE_RENDER_TARGET_OUTPUT (1<<(1 + 4)) %define DXGI_USAGE_BACK_BUFFER (1<<(2 + 4)) %define DXGI_USAGE_SHARED (1<<(3 + 4)) %define DXGI_USAGE_READ_ONLY (1<<(4 + 4)) %define DXGI_USAGE_DISCARD_ON_PRESENT (1<<(5 + 4)) %define DXGI_USAGE_UNORDERED_ACCESS (1<<(6 + 4)) %define DXGI_RESOURCE_PRIORITY_MINIMUM (0x28000000) %define DXGI_RESOURCE_PRIORITY_LOW (0x50000000) %define DXGI_RESOURCE_PRIORITY_NORMAL (0x78000000) %define DXGI_RESOURCE_PRIORITY_HIGH (0xa0000000) %define DXGI_RESOURCE_PRIORITY_MAXIMUM (0xc8000000) %define DXGI_MAP_READ (1) %define DXGI_MAP_WRITE (2) %define DXGI_MAP_DISCARD (4) %define DXGI_ENUM_MODES_INTERLACED (1) %define DXGI_ENUM_MODES_SCALING (2) %define DXGI_MAX_SWAP_CHAIN_BUFFERS (16) %define DXGI_PRESENT_TEST 0x00000001 %define DXGI_PRESENT_DO_NOT_SEQUENCE 0x00000002 %define DXGI_PRESENT_RESTART 0x00000004 %define DXGI_PRESENT_DO_NOT_WAIT 0x00000008 %define DXGI_PRESENT_STEREO_PREFER_RIGHT 0x00000010 %define DXGI_PRESENT_STEREO_TEMPORARY_MONO 0x00000020 %define DXGI_PRESENT_RESTRICT_TO_OUTPUT 0x00000040 %define DXGI_PRESENT_USE_DURATION 0x00000100 %define DXGI_MWA_NO_WINDOW_CHANGES (1<<0) %define DXGI_MWA_NO_ALT_ENTER (1<<1) %define DXGI_MWA_NO_PRINT_SCREEN (1<<2) %define DXGI_MWA_VALID (0x7) %define DXGI_FORMAT_DEFINED 1 %define _FACDXGI 0x87a %define MAKE_DXGI_HRESULT(code) MAKE_HRESULT(1, _FACDXGI, code) %define MAKE_DXGI_STATUS(code) MAKE_HRESULT(0, _FACDXGI, code) %define DXGI_CPU_ACCESS_NONE (0) %define DXGI_CPU_ACCESS_DYNAMIC (1) %define DXGI_CPU_ACCESS_READ_WRITE (2) %define DXGI_CPU_ACCESS_SCRATCH (3) %define DXGI_CPU_ACCESS_FIELD 15 %define DXGI_USAGE_SHADER_INPUT (1<<(0 + 4)) %define DXGI_USAGE_RENDER_TARGET_OUTPUT (1<<(1 + 4)) %define DXGI_USAGE_BACK_BUFFER (1<<(2 + 4)) %define DXGI_USAGE_SHARED (1<<(3 + 4)) %define DXGI_USAGE_READ_ONLY (1<<(4 + 4)) %define DXGI_USAGE_DISCARD_ON_PRESENT (1<<(5 + 4)) %define DXGI_USAGE_UNORDERED_ACCESS (1<<(6 + 4)) struc IDXGIObject .QueryInterface: resb 4 .AddRef: resb 4 .Release: resb 4 .SetPrivateData: resb 4 .SetPrivateDataInterface: resb 4 .GetPrivateData: resb 4 .GetParent: resb 4 endstruc struc IDXGIDeviceSubObject .QueryInterface: resb 4 .AddRef: resb 4 .Release: resb 4 .SetPrivateData: resb 4 .SetPrivateDataInterface: resb 4 .GetPrivateData: resb 4 .GetParent: resb 4 .GetDevice: resb 4 endstruc struc IDXGIResource .QueryInterface: resb 4 .AddRef: resb 4 .Release: resb 4 .SetPrivateData: resb 4 .SetPrivateDataInterface: resb 4 .GetPrivateData: resb 4 .GetParent: resb 4 .GetDevice: resb 4 .GetSharedHandle: resb 4 .GetUsage: resb 4 .SetEvictionPriority: resb 4 .GetEvictionPriority: resb 4 endstruc struc IDXGIKeyedMutex .QueryInterface: resb 4 .AddRef: resb 4 .Release: resb 4 .SetPrivateData: resb 4 .SetPrivateDataInterface: resb 4 .GetPrivateData: resb 4 .GetParent: resb 4 .GetDevice: resb 4 .AcquireSync: resb 4 .ReleaseSync: resb 4 endstruc struc IDXGISurface .QueryInterface: resb 4 .AddRef: resb 4 .Release: resb 4 .SetPrivateData: resb 4 .SetPrivateDataInterface: resb 4 .GetPrivateData: resb 4 .GetParent: resb 4 .GetDevice: resb 4 .GetDesc: resb 4 .Map: resb 4 .Unmap: resb 4 endstruc struc IDXGISurface1 .QueryInterface: resb 4 .AddRef: resb 4 .Release: resb 4 .SetPrivateData: resb 4 .SetPrivateDataInterface: resb 4 .GetPrivateData: resb 4 .GetParent: resb 4 .GetDevice: resb 4 .GetDesc: resb 4 .Map: resb 4 .Unmap: resb 4 .GetDC: resb 4 .ReleaseDC: resb 4 endstruc struc IDXGIAdapter .QueryInterface: resb 4 .AddRef: resb 4 .Release: resb 4 .SetPrivateData: resb 4 .SetPrivateDataInterface: resb 4 .GetPrivateData: resb 4 .GetParent: resb 4 .EnumOutputs: resb 4 .GetDesc: resb 4 .CheckInterfaceSupport: resb 4 endstruc struc IDXGIOutput .QueryInterface: resb 4 .AddRef: resb 4 .Release: resb 4 .SetPrivateData: resb 4 .SetPrivateDataInterface: resb 4 .GetPrivateData: resb 4 .GetParent: resb 4 .GetDesc: resb 4 .GetDisplayModeList: resb 4 .FindClosestMatchingMode: resb 4 .WaitForVBlank: resb 4 .TakeOwnership: resb 4 .ReleaseOwnership: resb 4 .GetGammaControlCapabilities: resb 4 .SetGammaControl: resb 4 .GetGammaControl: resb 4 .SetDisplaySurface: resb 4 .GetDisplaySurfaceData: resb 4 .GetFrameStatistics: resb 4 endstruc struc IDXGISwapChain .QueryInterface: resb 4 .AddRef: resb 4 .Release: resb 4 .SetPrivateData: resb 4 .SetPrivateDataInterface: resb 4 .GetPrivateData: resb 4 .GetParent: resb 4 .GetDevice: resb 4 .Present: resb 4 .GetBuffer: resb 4 .SetFullscreenState: resb 4 .GetFullscreenState: resb 4 .GetDesc: resb 4 .ResizeBuffers: resb 4 .ResizeTarget: resb 4 .GetContainingOutput: resb 4 .GetFrameStatistics: resb 4 .GetLastPresentCount: resb 4 endstruc struc IDXGIFactory .QueryInterface: resb 4 .AddRef: resb 4 .Release: resb 4 .SetPrivateData: resb 4 .SetPrivateDataInterface: resb 4 .GetPrivateData: resb 4 .GetParent: resb 4 .EnumAdapters: resb 4 .MakeWindowAssociation: resb 4 .GetWindowAssociation: resb 4 .CreateSwapChain: resb 4 .CreateSoftwareAdapter: resb 4 endstruc struc IDXGIDevice .QueryInterface: resb 4 .AddRef: resb 4 .Release: resb 4 .SetPrivateData: resb 4 .SetPrivateDataInterface: resb 4 .GetPrivateData: resb 4 .GetParent: resb 4 .GetAdapter: resb 4 .CreateSurface: resb 4 .QueryResourceResidency: resb 4 .SetGPUThreadPriority: resb 4 .GetGPUThreadPriority: resb 4 endstruc struc IDXGIFactory1 .QueryInterface: resb 4 .AddRef: resb 4 .Release: resb 4 .SetPrivateData: resb 4 .SetPrivateDataInterface: resb 4 .GetPrivateData: resb 4 .GetParent: resb 4 .EnumAdapters: resb 4 .MakeWindowAssociation: resb 4 .GetWindowAssociation: resb 4 .CreateSwapChain: resb 4 .CreateSoftwareAdapter: resb 4 .EnumAdapters1: resb 4 .IsCurrent: resb 4 endstruc struc IDXGIAdapter1 .QueryInterface: resb 4 .AddRef: resb 4 .Release: resb 4 .SetPrivateData: resb 4 .SetPrivateDataInterface: resb 4 .GetPrivateData: resb 4 .GetParent: resb 4 .EnumOutputs: resb 4 .GetDesc: resb 4 .CheckInterfaceSupport: resb 4 .GetDesc1: resb 4 endstruc struc IDXGIDevice1 .QueryInterface: resb 4 .AddRef: resb 4 .Release: resb 4 .SetPrivateData: resb 4 .SetPrivateDataInterface: resb 4 .GetPrivateData: resb 4 .GetParent: resb 4 .GetAdapter: resb 4 .CreateSurface: resb 4 .QueryResourceResidency: resb 4 .SetGPUThreadPriority: resb 4 .GetGPUThreadPriority: resb 4 .SetMaximumFrameLatency: resb 4 .GetMaximumFrameLatency: resb 4 endstruc