IDXGIFactory6

This commit is contained in:
Lightczx
2024-05-31 14:43:38 +08:00
parent 2cee94a529
commit 2c47e7d1da
25 changed files with 521 additions and 3 deletions

View File

@@ -7,9 +7,23 @@ using System.Runtime.Versioning;
namespace Snap.Hutao.Win32;
[SuppressMessage("", "SA1313")]
[SuppressMessage("", "SYSLIB1054")]
internal static class Dxgi
{
[DllImport("dxgi.dll", ExactSpelling = true, PreserveSig = false)]
[DllImport("dxgi.dll", CallingConvention = CallingConvention.Winapi, ExactSpelling = true)]
[SupportedOSPlatform("windows8.1")]
public unsafe static extern HRESULT CreateDXGIFactory2([In] uint Flags, [In][Const] Guid* riid, [Out][ComOutPtr] void** ppFactory);
public static unsafe extern HRESULT CreateDXGIFactory2(uint Flags, Guid* riid, void** ppFactory);
public static unsafe HRESULT CreateDXGIFactory2<T>(uint Flags, ref readonly Guid iid, out T* pFactory)
where T : unmanaged
{
fixed (Guid* riid = &iid)
{
fixed (T** ppFactory = &pFactory)
{
return CreateDXGIFactory2(Flags, riid, (void**)ppFactory);
}
}
}
}

View File

@@ -0,0 +1,12 @@
// Copyright (c) DGP Studio. All rights reserved.
// Licensed under the MIT license.
namespace Snap.Hutao.Win32.Graphics.Dxgi.Common;
internal enum DXGI_ALPHA_MODE
{
DXGI_ALPHA_MODE_UNSPECIFIED = 0,
DXGI_ALPHA_MODE_PREMULTIPLIED = 1,
DXGI_ALPHA_MODE_STRAIGHT = 2,
DXGI_ALPHA_MODE_IGNORE = 3,
}

View File

@@ -16,4 +16,4 @@ internal struct DXGI_ADAPTER_DESC
public nuint DedicatedSystemMemory;
public nuint SharedSystemMemory;
public LUID AdapterLuid;
}
}

View File

@@ -0,0 +1,20 @@
// Copyright (c) DGP Studio. All rights reserved.
// Licensed under the MIT license.
using Snap.Hutao.Win32.Foundation;
namespace Snap.Hutao.Win32.Graphics.Dxgi;
internal struct DXGI_ADAPTER_DESC1
{
public unsafe fixed char Description[128];
public uint VendorId;
public uint DeviceId;
public uint SubSysId;
public uint Revision;
public UIntPtr DedicatedVideoMemory;
public UIntPtr DedicatedSystemMemory;
public UIntPtr SharedSystemMemory;
public LUID AdapterLuid;
public uint Flags;
}

View File

@@ -0,0 +1,9 @@
// Copyright (c) DGP Studio. All rights reserved.
// Licensed under the MIT license.
namespace Snap.Hutao.Win32.Graphics.Dxgi;
internal enum DXGI_FEATURE
{
DXGI_FEATURE_PRESENT_ALLOW_TEARING = 0,
}

View File

@@ -0,0 +1,11 @@
// Copyright (c) DGP Studio. All rights reserved.
// Licensed under the MIT license.
namespace Snap.Hutao.Win32.Graphics.Dxgi;
internal enum DXGI_GPU_PREFERENCE
{
DXGI_GPU_PREFERENCE_UNSPECIFIED = 0,
DXGI_GPU_PREFERENCE_MINIMUM_POWER = 1,
DXGI_GPU_PREFERENCE_HIGH_PERFORMANCE = 2,
}

View File

@@ -0,0 +1,15 @@
// Copyright (c) DGP Studio. All rights reserved.
// Licensed under the MIT license.
using Snap.Hutao.Win32.Foundation;
namespace Snap.Hutao.Win32.Graphics.Dxgi;
[SuppressMessage("", "SA1307")]
internal struct DXGI_PRESENT_PARAMETERS
{
public uint DirtyRectsCount;
public unsafe RECT* pDirtyRects;
public unsafe RECT* pScrollRect;
public unsafe POINT* pScrollOffset;
}

View File

@@ -0,0 +1,13 @@
// Copyright (c) DGP Studio. All rights reserved.
// Licensed under the MIT license.
namespace Snap.Hutao.Win32.Graphics.Dxgi;
[SuppressMessage("", "SA1307")]
internal struct DXGI_RGBA
{
public float r;
public float g;
public float b;
public float a;
}

View File

@@ -0,0 +1,11 @@
// Copyright (c) DGP Studio. All rights reserved.
// Licensed under the MIT license.
namespace Snap.Hutao.Win32.Graphics.Dxgi;
internal enum DXGI_SCALING
{
DXGI_SCALING_STRETCH = 0,
DXGI_SCALING_NONE = 1,
DXGI_SCALING_ASPECT_RATIO_STRETCH = 2,
}

View File

@@ -0,0 +1,19 @@
// Copyright (c) DGP Studio. All rights reserved.
// Licensed under the MIT license.
using Snap.Hutao.Win32.Foundation;
using Snap.Hutao.Win32.Graphics.Dxgi.Common;
namespace Snap.Hutao.Win32.Graphics.Dxgi;
internal struct DXGI_SWAP_CHAIN_DESC
{
public DXGI_MODE_DESC BufferDesc;
public DXGI_SAMPLE_DESC SampleDesc;
public DXGI_USAGE BufferUsage;
public uint BufferCount;
public HWND OutputWindow;
public BOOL Windowed;
public DXGI_SWAP_EFFECT SwapEffect;
public uint Flags;
}

View File

@@ -0,0 +1,22 @@
// Copyright (c) DGP Studio. All rights reserved.
// Licensed under the MIT license.
using Snap.Hutao.Win32.Foundation;
using Snap.Hutao.Win32.Graphics.Dxgi.Common;
namespace Snap.Hutao.Win32.Graphics.Dxgi;
internal struct DXGI_SWAP_CHAIN_DESC1
{
public uint Width;
public uint Height;
public DXGI_FORMAT Format;
public BOOL Stereo;
public DXGI_SAMPLE_DESC SampleDesc;
public DXGI_USAGE BufferUsage;
public uint BufferCount;
public DXGI_SCALING Scaling;
public DXGI_SWAP_EFFECT SwapEffect;
public DXGI_ALPHA_MODE AlphaMode;
public DXGI_SWAP_CHAIN_FLAG Flags;
}

View File

@@ -0,0 +1,21 @@
// Copyright (c) DGP Studio. All rights reserved.
// Licensed under the MIT license.
namespace Snap.Hutao.Win32.Graphics.Dxgi;
internal enum DXGI_SWAP_CHAIN_FLAG : uint
{
DXGI_SWAP_CHAIN_FLAG_NONPREROTATED = 0x1,
DXGI_SWAP_CHAIN_FLAG_ALLOW_MODE_SWITCH = 0x2,
DXGI_SWAP_CHAIN_FLAG_GDI_COMPATIBLE = 0x4,
DXGI_SWAP_CHAIN_FLAG_RESTRICTED_CONTENT = 0x8,
DXGI_SWAP_CHAIN_FLAG_RESTRICT_SHARED_RESOURCE_DRIVER = 0x10,
DXGI_SWAP_CHAIN_FLAG_DISPLAY_ONLY = 0x20,
DXGI_SWAP_CHAIN_FLAG_FRAME_LATENCY_WAITABLE_OBJECT = 0x40,
DXGI_SWAP_CHAIN_FLAG_FOREGROUND_LAYER = 0x80,
DXGI_SWAP_CHAIN_FLAG_FULLSCREEN_VIDEO = 0x100,
DXGI_SWAP_CHAIN_FLAG_YUV_VIDEO = 0x200,
DXGI_SWAP_CHAIN_FLAG_HW_PROTECTED = 0x400,
DXGI_SWAP_CHAIN_FLAG_ALLOW_TEARING = 0x800,
DXGI_SWAP_CHAIN_FLAG_RESTRICTED_TO_ALL_HOLOGRAPHIC_DISPLAYS = 0x1000,
}

View File

@@ -0,0 +1,15 @@
// Copyright (c) DGP Studio. All rights reserved.
// Licensed under the MIT license.
using Snap.Hutao.Win32.Foundation;
using Snap.Hutao.Win32.Graphics.Dxgi.Common;
namespace Snap.Hutao.Win32.Graphics.Dxgi;
internal struct DXGI_SWAP_CHAIN_FULLSCREEN_DESC
{
public DXGI_RATIONAL RefreshRate;
public DXGI_MODE_SCANLINE_ORDER ScanlineOrdering;
public DXGI_MODE_SCALING Scaling;
public BOOL Windowed;
}

View File

@@ -0,0 +1,12 @@
// Copyright (c) DGP Studio. All rights reserved.
// Licensed under the MIT license.
namespace Snap.Hutao.Win32.Graphics.Dxgi;
internal enum DXGI_SWAP_EFFECT
{
DXGI_SWAP_EFFECT_DISCARD = 0,
DXGI_SWAP_EFFECT_SEQUENTIAL = 1,
DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL = 3,
DXGI_SWAP_EFFECT_FLIP_DISCARD = 4,
}

View File

@@ -0,0 +1,28 @@
// Copyright (c) DGP Studio. All rights reserved.
// Licensed under the MIT license.
using Snap.Hutao.Win32.Foundation;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
namespace Snap.Hutao.Win32.Graphics.Dxgi;
internal unsafe readonly struct IDXGIAdapter1
{
public readonly Vftbl* ThisPtr;
internal static ref readonly Guid IID
{
get
{
ReadOnlySpan<byte> data = [0x61, 0x8F, 0x03, 0x29, 0x39, 0x38, 0x26, 0x46, 0x91, 0xFD, 0x08, 0x68, 0x79, 0x01, 0x1A, 0x05];
return ref Unsafe.As<byte, Guid>(ref MemoryMarshal.GetReference(data));
}
}
internal readonly struct Vftbl
{
internal readonly IDXGIAdapter.Vftbl IDXGIAdapterVftbl;
internal readonly delegate* unmanaged[Stdcall]<IDXGIAdapter1*, DXGI_ADAPTER_DESC1*, HRESULT> GetDesc1;
}
}

View File

@@ -0,0 +1,33 @@
// Copyright (c) DGP Studio. All rights reserved.
// Licensed under the MIT license.
using Snap.Hutao.Win32.Foundation;
using Snap.Hutao.Win32.System.Com;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
namespace Snap.Hutao.Win32.Graphics.Dxgi;
internal unsafe readonly struct IDXGIFactory
{
public readonly Vftbl* ThisPtr;
internal static ref readonly Guid IID
{
get
{
ReadOnlySpan<byte> data = [0xEC, 0x66, 0x71, 0x7B, 0xC7, 0x21, 0xAE, 0x44, 0xB2, 0x1A, 0xC9, 0xAE, 0x32, 0x1A, 0xE3, 0x69];
return ref Unsafe.As<byte, Guid>(ref MemoryMarshal.GetReference(data));
}
}
internal readonly struct Vftbl
{
internal readonly IDXGIObject.Vftbl IDXGIObjectVftbl;
internal readonly delegate* unmanaged[Stdcall]<IDXGIFactory*, uint, IDXGIAdapter**, HRESULT> EnumAdapters;
internal readonly delegate* unmanaged[Stdcall]<IDXGIFactory*, HWND, uint, HRESULT> MakeWindowAssociation;
internal readonly delegate* unmanaged[Stdcall]<IDXGIFactory*, HWND*, HRESULT> GetWindowAssociation;
internal readonly delegate* unmanaged[Stdcall]<IDXGIFactory*, IUnknown*, DXGI_SWAP_CHAIN_DESC*, IDXGISwapChain**, HRESULT> CreateSwapChain;
internal readonly delegate* unmanaged[Stdcall]<IDXGIFactory*, IDXGIAdapter**, HRESULT> CreateSoftwareAdapter;
}
}

View File

@@ -0,0 +1,31 @@
// Copyright (c) DGP Studio. All rights reserved.
// Licensed under the MIT license.
using Snap.Hutao.Win32.Foundation;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
namespace Snap.Hutao.Win32.Graphics.Dxgi;
[SupportedOSPlatform("windows6.1")]
internal unsafe readonly struct IDXGIFactory1
{
public readonly Vftbl* ThisPtr;
internal static ref readonly Guid IID
{
get
{
ReadOnlySpan<byte> data = [0x78, 0xAE, 0x0A, 0x77, 0x6F, 0xF2, 0xBA, 0x4D, 0xA8, 0x29, 0x25, 0x3C, 0x83, 0xD1, 0xB3, 0x87];
return ref Unsafe.As<byte, Guid>(ref MemoryMarshal.GetReference(data));
}
}
internal readonly struct Vftbl
{
internal readonly IDXGIFactory.Vftbl IDXGIFactoryVftbl;
internal readonly delegate* unmanaged[Stdcall]<IDXGIFactory1*, uint, IDXGIAdapter1**, HRESULT> EnumAdapters1;
internal readonly delegate* unmanaged[Stdcall]<IDXGIFactory1*, BOOL> IsCurrent;
}
}

View File

@@ -0,0 +1,41 @@
// Copyright (c) DGP Studio. All rights reserved.
// Licensed under the MIT license.
using Snap.Hutao.Win32.Foundation;
using Snap.Hutao.Win32.System.Com;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
namespace Snap.Hutao.Win32.Graphics.Dxgi;
[SupportedOSPlatform("windows8.0")]
internal unsafe readonly struct IDXGIFactory2
{
public readonly Vftbl* ThisPtr;
internal static ref readonly Guid IID
{
get
{
ReadOnlySpan<byte> data = [0x1C, 0x3A, 0xC8, 0x50, 0x72, 0xE0, 0x48, 0x4C, 0x87, 0xB0, 0x36, 0x30, 0xFA, 0x36, 0xA6, 0xD0];
return ref Unsafe.As<byte, Guid>(ref MemoryMarshal.GetReference(data));
}
}
internal readonly struct Vftbl
{
internal readonly IDXGIFactory1.Vftbl IDXGIFactory1Vftbl;
internal readonly delegate* unmanaged[Stdcall]<IDXGIFactory2*, BOOL> IsWindowedStereoEnabled;
internal readonly delegate* unmanaged[Stdcall]<IDXGIFactory2*, IUnknown*, HWND, DXGI_SWAP_CHAIN_DESC1*, DXGI_SWAP_CHAIN_FULLSCREEN_DESC*, IDXGIOutput*, IDXGISwapChain1**, HRESULT> CreateSwapChainForHwnd;
internal readonly delegate* unmanaged[Stdcall]<IDXGIFactory2*, IUnknown*, IUnknown*, DXGI_SWAP_CHAIN_DESC1*, IDXGIOutput*, IDXGISwapChain1**, HRESULT> CreateSwapChainForCoreWindow;
internal readonly delegate* unmanaged[Stdcall]<IDXGIFactory2*, HANDLE, LUID*, HRESULT> GetSharedResourceAdapterLuid;
internal readonly delegate* unmanaged[Stdcall]<IDXGIFactory2*, HWND, uint, uint*, HRESULT> RegisterStereoStatusWindow;
internal readonly delegate* unmanaged[Stdcall]<IDXGIFactory2*, HANDLE, uint*, HRESULT> RegisterStereoStatusEvent;
internal readonly delegate* unmanaged[Stdcall]<IDXGIFactory2*, uint, void> UnregisterStereoStatus;
internal readonly delegate* unmanaged[Stdcall]<IDXGIFactory2*, HWND, uint, uint*, HRESULT> RegisterOcclusionStatusWindow;
internal readonly delegate* unmanaged[Stdcall]<IDXGIFactory2*, HANDLE, uint*, HRESULT> RegisterOcclusionStatusEvent;
internal readonly delegate* unmanaged[Stdcall]<IDXGIFactory2*, uint, void> UnregisterOcclusionStatus;
internal readonly delegate* unmanaged[Stdcall]<IDXGIFactory2*, IUnknown*, DXGI_SWAP_CHAIN_DESC1*, IDXGIOutput*, IDXGISwapChain1**, HRESULT> CreateSwapChainForComposition;
}
}

View File

@@ -0,0 +1,29 @@
// Copyright (c) DGP Studio. All rights reserved.
// Licensed under the MIT license.
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
namespace Snap.Hutao.Win32.Graphics.Dxgi;
[SupportedOSPlatform("windows8.1")]
internal unsafe readonly struct IDXGIFactory3
{
public readonly Vftbl* ThisPtr;
internal static ref readonly Guid IID
{
get
{
ReadOnlySpan<byte> data = [0x23, 0x38, 0x48, 0x25, 0x46, 0xCD, 0x7D, 0x4C, 0x86, 0xCA, 0x47, 0xAA, 0x95, 0xB8, 0x37, 0xBD];
return ref Unsafe.As<byte, Guid>(ref MemoryMarshal.GetReference(data));
}
}
internal readonly struct Vftbl
{
internal readonly IDXGIFactory2.Vftbl IDXGIFactory2Vftbl;
internal readonly delegate* unmanaged[Stdcall]<IDXGIFactory3*, uint> GetCreationFlags;
}
}

View File

@@ -0,0 +1,29 @@
// Copyright (c) DGP Studio. All rights reserved.
// Licensed under the MIT license.
using Snap.Hutao.Win32.Foundation;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
namespace Snap.Hutao.Win32.Graphics.Dxgi;
internal unsafe readonly struct IDXGIFactory4
{
public readonly Vftbl* ThisPtr;
internal static ref readonly Guid IID
{
get
{
ReadOnlySpan<byte> data = [0x02, 0xEA, 0xC6, 0x1B, 0x36, 0xEF, 0x4F, 0x46, 0xBF, 0x0C, 0x21, 0xCA, 0x39, 0xE5, 0x16, 0x8A];
return ref Unsafe.As<byte, Guid>(ref MemoryMarshal.GetReference(data));
}
}
internal readonly struct Vftbl
{
internal readonly IDXGIFactory3.Vftbl IDXGIFactory3Vftbl;
internal readonly delegate* unmanaged[Stdcall]<IDXGIFactory4*, LUID, Guid*, void**, HRESULT> EnumAdapterByLuid;
internal readonly delegate* unmanaged[Stdcall]<IDXGIFactory4*, Guid*, void**, HRESULT> EnumWarpAdapter;
}
}

View File

@@ -0,0 +1,28 @@
// Copyright (c) DGP Studio. All rights reserved.
// Licensed under the MIT license.
using Snap.Hutao.Win32.Foundation;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
namespace Snap.Hutao.Win32.Graphics.Dxgi;
internal unsafe readonly struct IDXGIFactory5
{
public readonly Vftbl* ThisPtr;
internal static ref readonly Guid IID
{
get
{
ReadOnlySpan<byte> data = [0xF5, 0xE1, 0x32, 0x76, 0x65, 0xEE, 0xCA, 0x4D, 0x87, 0xFD, 0x84, 0xCD, 0x75, 0xF8, 0x83, 0x8D];
return ref Unsafe.As<byte, Guid>(ref MemoryMarshal.GetReference(data));
}
}
internal readonly struct Vftbl
{
internal readonly IDXGIFactory4.Vftbl IDXGIFactory4Vftbl;
internal readonly delegate* unmanaged[Stdcall]<IDXGIFactory5*, DXGI_FEATURE, void*, uint, HRESULT> CheckFeatureSupport;
}
}

View File

@@ -0,0 +1,28 @@
// Copyright (c) DGP Studio. All rights reserved.
// Licensed under the MIT license.
using Snap.Hutao.Win32.Foundation;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
namespace Snap.Hutao.Win32.Graphics.Dxgi;
internal unsafe readonly struct IDXGIFactory6
{
public readonly Vftbl* ThisPtr;
internal static ref readonly Guid IID
{
get
{
ReadOnlySpan<byte> data = [0x4F, 0x69, 0xB6, 0xC1, 0x09, 0xFF, 0xA9, 0x44, 0xB0, 0x3C, 0x77, 0x90, 0x0A, 0x0A, 0x1D, 0x17];
return ref Unsafe.As<byte, Guid>(ref MemoryMarshal.GetReference(data));
}
}
internal readonly struct Vftbl
{
internal readonly IDXGIFactory5.Vftbl IDXGIFactory5Vftbl;
internal readonly delegate* unmanaged[Stdcall]<IDXGIFactory6*, uint, DXGI_GPU_PREFERENCE, Guid*, void**, HRESULT> EnumAdapterByGpuPreference;
}
}

View File

@@ -0,0 +1,38 @@
// Copyright (c) DGP Studio. All rights reserved.
// Licensed under the MIT license.
using Snap.Hutao.Win32.Foundation;
using Snap.Hutao.Win32.Graphics.Dxgi.Common;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
namespace Snap.Hutao.Win32.Graphics.Dxgi;
internal unsafe readonly struct IDXGISwapChain
{
public readonly Vftbl* ThisPtr;
internal static ref readonly Guid IID
{
get
{
ReadOnlySpan<byte> data = [0xA0, 0x36, 0x0D, 0x31, 0xE7, 0xD2, 0x0A, 0x4C, 0xAA, 0x04, 0x6A, 0x9D, 0x23, 0xB8, 0x88, 0x6A];
return ref Unsafe.As<byte, Guid>(ref MemoryMarshal.GetReference(data));
}
}
internal readonly struct Vftbl
{
internal readonly IDXGIDeviceSubObject.Vftbl IDXGIDeviceSubObjectVftbl;
internal readonly delegate* unmanaged[Stdcall]<IDXGISwapChain*, uint, uint, HRESULT> Present;
internal readonly delegate* unmanaged[Stdcall]<IDXGISwapChain*, uint, Guid*, void**, HRESULT> GetBuffer;
internal readonly delegate* unmanaged[Stdcall]<IDXGISwapChain*, BOOL, IDXGIOutput*, HRESULT> SetFullscreenState;
internal readonly delegate* unmanaged[Stdcall]<IDXGISwapChain*, BOOL*, IDXGIOutput**, HRESULT> GetFullscreenState;
internal readonly delegate* unmanaged[Stdcall]<IDXGISwapChain*, DXGI_SWAP_CHAIN_DESC*, HRESULT> GetDesc;
internal readonly delegate* unmanaged[Stdcall]<IDXGISwapChain*, uint, uint, uint, DXGI_FORMAT, uint, HRESULT> ResizeBuffers;
internal readonly delegate* unmanaged[Stdcall]<IDXGISwapChain*, DXGI_MODE_DESC*, HRESULT> ResizeTarget;
internal readonly delegate* unmanaged[Stdcall]<IDXGISwapChain*, IDXGIOutput**, HRESULT> GetContainingOutput;
internal readonly delegate* unmanaged[Stdcall]<IDXGISwapChain*, DXGI_FRAME_STATISTICS*, HRESULT> GetFrameStatistics;
internal readonly delegate* unmanaged[Stdcall]<IDXGISwapChain*, uint*, HRESULT> GetLastPresentCount;
}
}

View File

@@ -0,0 +1,39 @@
// Copyright (c) DGP Studio. All rights reserved.
// Licensed under the MIT license.
using Snap.Hutao.Win32.Foundation;
using Snap.Hutao.Win32.Graphics.Dxgi.Common;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
namespace Snap.Hutao.Win32.Graphics.Dxgi;
internal unsafe readonly struct IDXGISwapChain1
{
public readonly Vftbl* ThisPtr;
internal static ref readonly Guid IID
{
get
{
ReadOnlySpan<byte> data = [0xF7, 0x45, 0x0A, 0x79, 0x42, 0x0D, 0x76, 0x48, 0x98, 0x3A, 0x0A, 0x55, 0xCF, 0xE6, 0xF4, 0xAA];
return ref Unsafe.As<byte, Guid>(ref MemoryMarshal.GetReference(data));
}
}
internal readonly struct Vftbl
{
internal readonly IDXGISwapChain.Vftbl IDXGISwapChainVftbl;
internal readonly delegate* unmanaged[Stdcall]<IDXGISwapChain1*, DXGI_SWAP_CHAIN_DESC1*, HRESULT> GetDesc1;
internal readonly delegate* unmanaged[Stdcall]<IDXGISwapChain1*, DXGI_SWAP_CHAIN_FULLSCREEN_DESC*, HRESULT> GetFullscreenDesc;
internal readonly delegate* unmanaged[Stdcall]<IDXGISwapChain1*, HWND*, HRESULT> GetHwnd;
internal readonly delegate* unmanaged[Stdcall]<IDXGISwapChain1*, Guid*, void**, HRESULT> GetCoreWindow;
internal readonly delegate* unmanaged[Stdcall]<IDXGISwapChain1*, uint, uint, DXGI_PRESENT_PARAMETERS*, HRESULT> Present1;
internal readonly delegate* unmanaged[Stdcall]<IDXGISwapChain1*, BOOL> IsTemporaryMonoSupported;
internal readonly delegate* unmanaged[Stdcall]<IDXGISwapChain1*, IDXGIOutput**, HRESULT> GetRestrictToOutput;
internal readonly delegate* unmanaged[Stdcall]<IDXGISwapChain1*, DXGI_RGBA*, HRESULT> SetBackgroundColor;
internal readonly delegate* unmanaged[Stdcall]<IDXGISwapChain1*, DXGI_RGBA*, HRESULT> GetBackgroundColor;
internal readonly delegate* unmanaged[Stdcall]<IDXGISwapChain1*, DXGI_MODE_ROTATION, HRESULT> SetRotation;
internal readonly delegate* unmanaged[Stdcall]<IDXGISwapChain1*, DXGI_MODE_ROTATION*, HRESULT> GetRotation;
}
}