• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/*
2 * Copyright 2017 Ihsan Akmal
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12 * Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
17 */
18
19import "dxgi1_5.idl";
20
21typedef enum DXGI_ADAPTER_FLAG3
22{
23    DXGI_ADAPTER_FLAG3_NONE = 0x0,
24    DXGI_ADAPTER_FLAG3_REMOTE = 0x1,
25    DXGI_ADAPTER_FLAG3_SOFTWARE = 0x2,
26    DXGI_ADAPTER_FLAG3_ACG_COMPATIBLE = 0x4,
27    DXGI_ADAPTER_FLAG3_FORCE_DWORD = 0xffffffff,
28} DXGI_ADAPTER_FLAG3;
29
30typedef enum DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAGS
31{
32    DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAG_FULLSCREEN = 0x1,
33    DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAG_WINDOWED = 0x2,
34    DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAG_CURSOR_STRETCHED = 0x4,
35} DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAGS;
36
37typedef struct DXGI_ADAPTER_DESC3
38{
39    WCHAR Description[128];
40    UINT VendorId;
41    UINT DeviceId;
42    UINT SubSysId;
43    UINT Revision;
44    SIZE_T DedicatedVideoMemory;
45    SIZE_T DedicatedSystemMemory;
46    SIZE_T SharedSystemMemory;
47    LUID AdapterLuid;
48    DXGI_ADAPTER_FLAG3 Flags;
49    DXGI_GRAPHICS_PREEMPTION_GRANULARITY GraphicsPreemptionGranularity;
50    DXGI_COMPUTE_PREEMPTION_GRANULARITY ComputePreemptionGranularity;
51} DXGI_ADAPTER_DESC3;
52
53typedef struct DXGI_OUTPUT_DESC1
54{
55    WCHAR DeviceName[32];
56    RECT DesktopCoordinates;
57    BOOL AttachedToDesktop;
58    DXGI_MODE_ROTATION Rotation;
59    HMONITOR Monitor;
60    UINT BitsPerColor;
61    DXGI_COLOR_SPACE_TYPE ColorSpace;
62    FLOAT RedPrimary[2];
63    FLOAT GreenPrimary[2];
64    FLOAT BluePrimary[2];
65    FLOAT WhitePoint[2];
66    FLOAT MinLuminance;
67    FLOAT MaxLuminance;
68    FLOAT MaxFullFrameLuminance;
69} DXGI_OUTPUT_DESC1;
70
71[
72    object,
73    uuid(3c8d99d1-4fbf-4181-a82c-af66bf7bd24e),
74    local,
75    pointer_default(unique)
76]
77interface IDXGIAdapter4 : IDXGIAdapter3
78{
79    HRESULT GetDesc3(
80        [out] DXGI_ADAPTER_DESC3 *desc
81    );
82}
83
84[
85    object,
86    uuid(068346e8-aaec-4b84-add7-137f513f77a1),
87    local,
88    pointer_default(unique)
89]
90interface IDXGIOutput6 : IDXGIOutput5
91{
92    HRESULT GetDesc1(
93        [out] DXGI_OUTPUT_DESC1 *desc
94    );
95    HRESULT CheckHardwareCompositionSupport(
96        [out] UINT *flags
97    );
98}
99