// ------------------------------------------------------------------------------ // // This code was generated by a tool. // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. // // ------------------------------------------------------------------------------ namespace Win32.Graphics.Dxgi; /// /// IDXGISwapChain4 [Guid("3d585d5a-bd4a-489e-b1f4-3dbcb6452ffb")] [NativeTypeName("struct IDXGISwapChain4 : IDXGISwapChain3")] [NativeInheritance("IDXGISwapChain3")] public unsafe partial struct IDXGISwapChain4 : IDXGISwapChain4.Interface, INativeGuid { public static ref readonly Guid IID_IDXGISwapChain4 { [MethodImpl(MethodImplOptions.AggressiveInlining)] get { ReadOnlySpan data = new byte[] { 0x5A, 0x5D, 0x58, 0x3D, 0x4A, 0xBD, 0x9E, 0x48, 0xB1, 0xF4, 0x3D, 0xBC, 0xB6, 0x45, 0x2F, 0xFB }; Debug.Assert(data.Length == Unsafe.SizeOf()); return ref Unsafe.As(ref MemoryMarshal.GetReference(data)); } } #if NET6_0_OR_GREATER static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IDXGISwapChain4)); #else public static Guid* NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_IDXGISwapChain4)); #endif public void** lpVtbl; /// [MethodImpl(MethodImplOptions.AggressiveInlining)] [VtblIndex(0)] public HResult QueryInterface([NativeTypeName("const IID &")] Guid* riid, void** ppvObject) { return ((delegate* unmanaged[Stdcall])(lpVtbl[0]))((IDXGISwapChain4*)Unsafe.AsPointer(ref this), riid, ppvObject); } /// [MethodImpl(MethodImplOptions.AggressiveInlining)] [VtblIndex(1)] [return: NativeTypeName("ULONG")] public uint AddRef() { return ((delegate* unmanaged[Stdcall])(lpVtbl[1]))((IDXGISwapChain4*)Unsafe.AsPointer(ref this)); } /// [MethodImpl(MethodImplOptions.AggressiveInlining)] [VtblIndex(2)] [return: NativeTypeName("ULONG")] public uint Release() { return ((delegate* unmanaged[Stdcall])(lpVtbl[2]))((IDXGISwapChain4*)Unsafe.AsPointer(ref this)); } /// [MethodImpl(MethodImplOptions.AggressiveInlining)] [VtblIndex(3)] public HResult SetPrivateData(Guid* Name, uint DataSize, void* pData) { return ((delegate* unmanaged[Stdcall])(lpVtbl[3]))((IDXGISwapChain4*)Unsafe.AsPointer(ref this), Name, DataSize, pData); } /// [MethodImpl(MethodImplOptions.AggressiveInlining)] [VtblIndex(4)] public HResult SetPrivateDataInterface(Guid* Name, IUnknown* pUnknown) { return ((delegate* unmanaged[Stdcall])(lpVtbl[4]))((IDXGISwapChain4*)Unsafe.AsPointer(ref this), Name, pUnknown); } /// [MethodImpl(MethodImplOptions.AggressiveInlining)] [VtblIndex(5)] public HResult GetPrivateData(Guid* Name, uint* pDataSize, void* pData) { return ((delegate* unmanaged[Stdcall])(lpVtbl[5]))((IDXGISwapChain4*)Unsafe.AsPointer(ref this), Name, pDataSize, pData); } /// [MethodImpl(MethodImplOptions.AggressiveInlining)] [VtblIndex(6)] public HResult GetParent(Guid* riid, void** ppParent) { return ((delegate* unmanaged[Stdcall])(lpVtbl[6]))((IDXGISwapChain4*)Unsafe.AsPointer(ref this), riid, ppParent); } /// [MethodImpl(MethodImplOptions.AggressiveInlining)] [VtblIndex(7)] public HResult GetDevice(Guid* riid, void** ppDevice) { return ((delegate* unmanaged[Stdcall])(lpVtbl[7]))((IDXGISwapChain4*)Unsafe.AsPointer(ref this), riid, ppDevice); } /// [MethodImpl(MethodImplOptions.AggressiveInlining)] [VtblIndex(8)] public HResult Present(uint SyncInterval, PresentFlags Flags) { return ((delegate* unmanaged[Stdcall])(lpVtbl[8]))((IDXGISwapChain4*)Unsafe.AsPointer(ref this), SyncInterval, Flags); } /// [MethodImpl(MethodImplOptions.AggressiveInlining)] [VtblIndex(9)] public HResult GetBuffer(uint Buffer, Guid* riid, void** ppSurface) { return ((delegate* unmanaged[Stdcall])(lpVtbl[9]))((IDXGISwapChain4*)Unsafe.AsPointer(ref this), Buffer, riid, ppSurface); } /// [MethodImpl(MethodImplOptions.AggressiveInlining)] [VtblIndex(10)] public HResult SetFullscreenState(Bool32 Fullscreen, IDXGIOutput* pTarget) { return ((delegate* unmanaged[Stdcall])(lpVtbl[10]))((IDXGISwapChain4*)Unsafe.AsPointer(ref this), Fullscreen, pTarget); } /// [MethodImpl(MethodImplOptions.AggressiveInlining)] [VtblIndex(11)] public HResult GetFullscreenState(Bool32* pFullscreen, IDXGIOutput** ppTarget) { return ((delegate* unmanaged[Stdcall])(lpVtbl[11]))((IDXGISwapChain4*)Unsafe.AsPointer(ref this), pFullscreen, ppTarget); } /// [MethodImpl(MethodImplOptions.AggressiveInlining)] [VtblIndex(12)] public HResult GetDesc(SwapChainDescription* pDesc) { return ((delegate* unmanaged[Stdcall])(lpVtbl[12]))((IDXGISwapChain4*)Unsafe.AsPointer(ref this), pDesc); } /// [MethodImpl(MethodImplOptions.AggressiveInlining)] [VtblIndex(13)] public HResult ResizeBuffers(uint BufferCount, uint Width, uint Height, Common.Format NewFormat, SwapChainFlags SwapChainFlags) { return ((delegate* unmanaged[Stdcall])(lpVtbl[13]))((IDXGISwapChain4*)Unsafe.AsPointer(ref this), BufferCount, Width, Height, NewFormat, SwapChainFlags); } /// [MethodImpl(MethodImplOptions.AggressiveInlining)] [VtblIndex(14)] public HResult ResizeTarget(Common.ModeDescription* pNewTargetParameters) { return ((delegate* unmanaged[Stdcall])(lpVtbl[14]))((IDXGISwapChain4*)Unsafe.AsPointer(ref this), pNewTargetParameters); } /// [MethodImpl(MethodImplOptions.AggressiveInlining)] [VtblIndex(15)] public HResult GetContainingOutput(IDXGIOutput** ppOutput) { return ((delegate* unmanaged[Stdcall])(lpVtbl[15]))((IDXGISwapChain4*)Unsafe.AsPointer(ref this), ppOutput); } /// [MethodImpl(MethodImplOptions.AggressiveInlining)] [VtblIndex(16)] public HResult GetFrameStatistics(FrameStatistics* pStats) { return ((delegate* unmanaged[Stdcall])(lpVtbl[16]))((IDXGISwapChain4*)Unsafe.AsPointer(ref this), pStats); } /// [MethodImpl(MethodImplOptions.AggressiveInlining)] [VtblIndex(17)] public HResult GetLastPresentCount(uint* pLastPresentCount) { return ((delegate* unmanaged[Stdcall])(lpVtbl[17]))((IDXGISwapChain4*)Unsafe.AsPointer(ref this), pLastPresentCount); } /// [MethodImpl(MethodImplOptions.AggressiveInlining)] [VtblIndex(18)] public HResult GetDesc1(SwapChainDescription1* pDesc) { return ((delegate* unmanaged[Stdcall])(lpVtbl[18]))((IDXGISwapChain4*)Unsafe.AsPointer(ref this), pDesc); } /// [MethodImpl(MethodImplOptions.AggressiveInlining)] [VtblIndex(19)] public HResult GetFullscreenDesc(SwapChainFullscreenDescription* pDesc) { return ((delegate* unmanaged[Stdcall])(lpVtbl[19]))((IDXGISwapChain4*)Unsafe.AsPointer(ref this), pDesc); } /// [MethodImpl(MethodImplOptions.AggressiveInlining)] [VtblIndex(20)] public HResult GetHwnd(IntPtr* pHwnd) { return ((delegate* unmanaged[Stdcall])(lpVtbl[20]))((IDXGISwapChain4*)Unsafe.AsPointer(ref this), pHwnd); } /// [MethodImpl(MethodImplOptions.AggressiveInlining)] [VtblIndex(21)] public HResult GetCoreWindow(Guid* refiid, void** ppUnk) { return ((delegate* unmanaged[Stdcall])(lpVtbl[21]))((IDXGISwapChain4*)Unsafe.AsPointer(ref this), refiid, ppUnk); } /// [MethodImpl(MethodImplOptions.AggressiveInlining)] [VtblIndex(22)] public HResult Present1(uint SyncInterval, uint PresentFlags, PresentParameters* pPresentParameters) { return ((delegate* unmanaged[Stdcall])(lpVtbl[22]))((IDXGISwapChain4*)Unsafe.AsPointer(ref this), SyncInterval, PresentFlags, pPresentParameters); } /// [MethodImpl(MethodImplOptions.AggressiveInlining)] [VtblIndex(23)] public Bool32 IsTemporaryMonoSupported() { return ((delegate* unmanaged[Stdcall])(lpVtbl[23]))((IDXGISwapChain4*)Unsafe.AsPointer(ref this)); } /// [MethodImpl(MethodImplOptions.AggressiveInlining)] [VtblIndex(24)] public HResult GetRestrictToOutput(IDXGIOutput** ppRestrictToOutput) { return ((delegate* unmanaged[Stdcall])(lpVtbl[24]))((IDXGISwapChain4*)Unsafe.AsPointer(ref this), ppRestrictToOutput); } /// [MethodImpl(MethodImplOptions.AggressiveInlining)] [VtblIndex(25)] public HResult SetBackgroundColor(Color4* pColor) { return ((delegate* unmanaged[Stdcall])(lpVtbl[25]))((IDXGISwapChain4*)Unsafe.AsPointer(ref this), pColor); } /// [MethodImpl(MethodImplOptions.AggressiveInlining)] [VtblIndex(26)] public HResult GetBackgroundColor(Color4** pColor) { return ((delegate* unmanaged[Stdcall])(lpVtbl[26]))((IDXGISwapChain4*)Unsafe.AsPointer(ref this), pColor); } /// [MethodImpl(MethodImplOptions.AggressiveInlining)] [VtblIndex(27)] public HResult SetRotation(Common.ModeRotation Rotation) { return ((delegate* unmanaged[Stdcall])(lpVtbl[27]))((IDXGISwapChain4*)Unsafe.AsPointer(ref this), Rotation); } /// [MethodImpl(MethodImplOptions.AggressiveInlining)] [VtblIndex(28)] public HResult GetRotation(Common.ModeRotation* pRotation) { return ((delegate* unmanaged[Stdcall])(lpVtbl[28]))((IDXGISwapChain4*)Unsafe.AsPointer(ref this), pRotation); } /// [MethodImpl(MethodImplOptions.AggressiveInlining)] [VtblIndex(29)] public HResult SetSourceSize(uint Width, uint Height) { return ((delegate* unmanaged[Stdcall])(lpVtbl[29]))((IDXGISwapChain4*)Unsafe.AsPointer(ref this), Width, Height); } /// [MethodImpl(MethodImplOptions.AggressiveInlining)] [VtblIndex(30)] public HResult GetSourceSize(uint* pWidth, uint* pHeight) { return ((delegate* unmanaged[Stdcall])(lpVtbl[30]))((IDXGISwapChain4*)Unsafe.AsPointer(ref this), pWidth, pHeight); } /// [MethodImpl(MethodImplOptions.AggressiveInlining)] [VtblIndex(31)] public HResult SetMaximumFrameLatency(uint MaxLatency) { return ((delegate* unmanaged[Stdcall])(lpVtbl[31]))((IDXGISwapChain4*)Unsafe.AsPointer(ref this), MaxLatency); } /// [MethodImpl(MethodImplOptions.AggressiveInlining)] [VtblIndex(32)] public HResult GetMaximumFrameLatency(uint* pMaxLatency) { return ((delegate* unmanaged[Stdcall])(lpVtbl[32]))((IDXGISwapChain4*)Unsafe.AsPointer(ref this), pMaxLatency); } /// [MethodImpl(MethodImplOptions.AggressiveInlining)] [VtblIndex(33)] public Handle GetFrameLatencyWaitableObject() { return ((delegate* unmanaged[Stdcall])(lpVtbl[33]))((IDXGISwapChain4*)Unsafe.AsPointer(ref this)); } /// [MethodImpl(MethodImplOptions.AggressiveInlining)] [VtblIndex(34)] public HResult SetMatrixTransform(Matrix3x2* pMatrix) { return ((delegate* unmanaged[Stdcall])(lpVtbl[34]))((IDXGISwapChain4*)Unsafe.AsPointer(ref this), pMatrix); } /// [MethodImpl(MethodImplOptions.AggressiveInlining)] [VtblIndex(35)] public HResult GetMatrixTransform(Matrix3x2* pMatrix) { return ((delegate* unmanaged[Stdcall])(lpVtbl[35]))((IDXGISwapChain4*)Unsafe.AsPointer(ref this), pMatrix); } /// [MethodImpl(MethodImplOptions.AggressiveInlining)] [VtblIndex(36)] public uint GetCurrentBackBufferIndex() { return ((delegate* unmanaged[Stdcall])(lpVtbl[36]))((IDXGISwapChain4*)Unsafe.AsPointer(ref this)); } /// [MethodImpl(MethodImplOptions.AggressiveInlining)] [VtblIndex(37)] public HResult CheckColorSpaceSupport(Common.ColorSpaceType ColorSpace, uint* pColorSpaceSupport) { return ((delegate* unmanaged[Stdcall])(lpVtbl[37]))((IDXGISwapChain4*)Unsafe.AsPointer(ref this), ColorSpace, pColorSpaceSupport); } /// [MethodImpl(MethodImplOptions.AggressiveInlining)] [VtblIndex(38)] public HResult SetColorSpace1(Common.ColorSpaceType ColorSpace) { return ((delegate* unmanaged[Stdcall])(lpVtbl[38]))((IDXGISwapChain4*)Unsafe.AsPointer(ref this), ColorSpace); } /// [MethodImpl(MethodImplOptions.AggressiveInlining)] [VtblIndex(39)] public HResult ResizeBuffers1(uint BufferCount, uint Width, uint Height, Common.Format Format, uint SwapChainFlags, uint* pCreationNodeMask, IUnknown** ppPresentQueue) { return ((delegate* unmanaged[Stdcall])(lpVtbl[39]))((IDXGISwapChain4*)Unsafe.AsPointer(ref this), BufferCount, Width, Height, Format, SwapChainFlags, pCreationNodeMask, ppPresentQueue); } /// [MethodImpl(MethodImplOptions.AggressiveInlining)] [VtblIndex(40)] public HResult SetHDRMetaData(HDRMetadataType Type, uint Size, void* pMetaData) { return ((delegate* unmanaged[Stdcall])(lpVtbl[40]))((IDXGISwapChain4*)Unsafe.AsPointer(ref this), Type, Size, pMetaData); } public interface Interface : IDXGISwapChain3.Interface { [VtblIndex(40)] HResult SetHDRMetaData(HDRMetadataType Type, uint Size, void* pMetaData); } }