2 * Copyright 2016 Józef Kucia for CodeWeavers
3 * Copyright 2016 Henri Verbeet for CodeWeavers
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
20 import
"vkd3d_dxgi.idl";
22 typedef enum DXGI_SCALING
24 DXGI_SCALING_STRETCH
= 0x0,
25 DXGI_SCALING_NONE
= 0x1,
26 DXGI_SCALING_ASPECT_RATIO_STRETCH
= 0x2,
27 DXGI_SCALING_FORCE_DWORD
= 0xffffffff,
30 typedef enum DXGI_ALPHA_MODE
32 DXGI_ALPHA_MODE_UNSPECIFIED
= 0x0,
33 DXGI_ALPHA_MODE_PREMULTIPLIED
= 0x1,
34 DXGI_ALPHA_MODE_STRAIGHT
= 0x2,
35 DXGI_ALPHA_MODE_IGNORE
= 0x3,
36 DXGI_ALPHA_MODE_FORCE_DWORD
= 0xffffffff,
39 typedef struct DXGI_SWAP_CHAIN_DESC1
45 DXGI_SAMPLE_DESC SampleDesc
;
46 DXGI_USAGE BufferUsage
;
49 DXGI_SWAP_EFFECT SwapEffect
;
50 DXGI_ALPHA_MODE AlphaMode
;
52 } DXGI_SWAP_CHAIN_DESC1
;
54 typedef struct DXGI_SWAP_CHAIN_FULLSCREEN_DESC DXGI_SWAP_CHAIN_FULLSCREEN_DESC
;
55 typedef struct DXGI_PRESENT_PARAMETERS DXGI_PRESENT_PARAMETERS
;
60 uuid(790a45f7
-0d42
-4876-983a
-0a55cfe6f4aa
),
61 pointer_default(unique)
63 interface IDXGISwapChain1
: IDXGISwapChain
65 HRESULT GetDesc1
(DXGI_SWAP_CHAIN_DESC1
*desc
);
66 HRESULT GetFullscreenDesc
(DXGI_SWAP_CHAIN_FULLSCREEN_DESC
*desc
);
67 HRESULT GetHwnd
(HWND
*hwnd
);
68 HRESULT GetCoreWindow
(REFIID riid
, void **object);
69 HRESULT Present1
(UINT sync_interval
, UINT flags
, const DXGI_PRESENT_PARAMETERS
*parameters
);
70 BOOL IsTemporaryMonoSupported
();
71 HRESULT GetRestrictToOutput
(IDXGIOutput
**output
);
72 HRESULT SetBackgroundColor
(const DXGI_RGBA
*color
);
73 HRESULT GetBackgroundColor
(DXGI_RGBA
*color
);
74 HRESULT SetRotation
(DXGI_MODE_ROTATION rotation
);
75 HRESULT GetRotation
(DXGI_MODE_ROTATION
*rotation
);
81 uuid(50c83a1c
-e072
-4c48
-87b0
-3630fa36a6d0
),
82 pointer_default(unique)
84 interface IDXGIFactory2
: IDXGIFactory1
86 BOOL IsWindowedStereoEnabled
();
87 HRESULT CreateSwapChainForHwnd
(IUnknown
*device
, HWND window
, const DXGI_SWAP_CHAIN_DESC1
*desc
,
88 const DXGI_SWAP_CHAIN_FULLSCREEN_DESC
*fullscreen_desc
, IDXGIOutput
*output
, IDXGISwapChain1
**swapchain
);
89 HRESULT CreateSwapChainForCoreWindow
(IUnknown
*device
, IUnknown
*window
, const DXGI_SWAP_CHAIN_DESC1
*desc
,
90 IDXGIOutput
*output
, IDXGISwapChain1
**swapchain
);
91 HRESULT GetSharedResourceAdapterLuid
(HANDLE resource
, LUID
*luid
);
92 HRESULT RegisterStereoStatusWindow
(HWND window
, UINT msg
, DWORD
*cookie
);
93 HRESULT RegisterStereoStatusEvent
(HANDLE event
, DWORD
*cookie
);
94 void UnregisterStereoStatus
(DWORD cookie
);
95 HRESULT RegisterOcclusionStatusWindow
(HWND window
, UINT msg
, DWORD
*cookie
);
96 HRESULT RegisterOcclusionStatusEvent
(HANDLE event
, DWORD
*cookie
);
97 void UnregisterOcclusionStatus
(DWORD cookie
);
98 HRESULT CreateSwapChainForComposition
(IUnknown
*device
, const DXGI_SWAP_CHAIN_DESC1
*desc
,
99 IDXGIOutput
*output
, IDXGISwapChain1
**swapchain
);