node-gpuinfo 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/LICENSE +674 -0
  2. package/README.md +336 -0
  3. package/binding.gyp +69 -0
  4. package/build/Release/gpu.exp +0 -0
  5. package/build/Release/gpu.lib +0 -0
  6. package/build/Release/gpu.node +0 -0
  7. package/build/Release/gpu.pdb +0 -0
  8. package/build/binding.sln +19 -0
  9. package/build/gpu.vcxproj +175 -0
  10. package/build/gpu.vcxproj.filters +169 -0
  11. package/example.js +69 -0
  12. package/index.js +33 -0
  13. package/package.json +68 -0
  14. package/src/binding.cpp +201 -0
  15. package/src/gpu_info.c +130 -0
  16. package/src/gpu_info.h +86 -0
  17. package/src/includes/adlx/ADLX.h +367 -0
  18. package/src/includes/adlx/ADLXDefines.h +1345 -0
  19. package/src/includes/adlx/ADLXHelper/ADLXHelper.c +175 -0
  20. package/src/includes/adlx/ADLXHelper/ADLXHelper.h +245 -0
  21. package/src/includes/adlx/ADLXHelper/WinAPIS.c +64 -0
  22. package/src/includes/adlx/ADLXStructures.h +206 -0
  23. package/src/includes/adlx/ADLXVersion.h +18 -0
  24. package/src/includes/adlx/I3DSettings.h +3476 -0
  25. package/src/includes/adlx/I3DSettings1.h +292 -0
  26. package/src/includes/adlx/I3DSettings2.h +317 -0
  27. package/src/includes/adlx/IApplications.h +397 -0
  28. package/src/includes/adlx/IChangedEvent.h +71 -0
  29. package/src/includes/adlx/ICollections.h +325 -0
  30. package/src/includes/adlx/IDesktops.h +918 -0
  31. package/src/includes/adlx/IDisplay3DLUT.h +663 -0
  32. package/src/includes/adlx/IDisplayGamma.h +683 -0
  33. package/src/includes/adlx/IDisplayGamut.h +760 -0
  34. package/src/includes/adlx/IDisplaySettings.h +3476 -0
  35. package/src/includes/adlx/IDisplays.h +2676 -0
  36. package/src/includes/adlx/IDisplays1.h +191 -0
  37. package/src/includes/adlx/IDisplays2.h +188 -0
  38. package/src/includes/adlx/IDisplays3.h +256 -0
  39. package/src/includes/adlx/IGPUAutoTuning.h +460 -0
  40. package/src/includes/adlx/IGPUManualFanTuning.h +1007 -0
  41. package/src/includes/adlx/IGPUManualGFXTuning.h +607 -0
  42. package/src/includes/adlx/IGPUManualPowerTuning.h +340 -0
  43. package/src/includes/adlx/IGPUManualVRAMTuning.h +576 -0
  44. package/src/includes/adlx/IGPUPresetTuning.h +469 -0
  45. package/src/includes/adlx/IGPUTuning.h +1239 -0
  46. package/src/includes/adlx/IGPUTuning1.h +197 -0
  47. package/src/includes/adlx/II2C.h +198 -0
  48. package/src/includes/adlx/ILog.h +72 -0
  49. package/src/includes/adlx/IMultiMedia.h +578 -0
  50. package/src/includes/adlx/IPerformanceMonitoring.h +2520 -0
  51. package/src/includes/adlx/IPerformanceMonitoring1.h +134 -0
  52. package/src/includes/adlx/IPerformanceMonitoring2.h +341 -0
  53. package/src/includes/adlx/IPerformanceMonitoring3.h +199 -0
  54. package/src/includes/adlx/IPowerTuning.h +473 -0
  55. package/src/includes/adlx/IPowerTuning1.h +515 -0
  56. package/src/includes/adlx/ISmartAccessMemory.h +114 -0
  57. package/src/includes/adlx/ISystem.h +1557 -0
  58. package/src/includes/adlx/ISystem1.h +237 -0
  59. package/src/includes/adlx/ISystem2.h +643 -0
  60. package/src/linux/amd_linux.c +269 -0
  61. package/src/linux/intel_linux.c +20 -0
  62. package/src/linux/nvidia_linux.c +257 -0
  63. package/src/macos/amd_mac.c +131 -0
  64. package/src/macos/intel_mac.c +131 -0
  65. package/src/macos/nvidia_mac.c +21 -0
  66. package/src/vendor/amd.c +37 -0
  67. package/src/vendor/intel.c +37 -0
  68. package/src/vendor/nvidia.c +37 -0
  69. package/src/windows/amd_windows.c +468 -0
  70. package/src/windows/intel_windows.c +157 -0
  71. package/src/windows/nvidia_windows.c +252 -0
@@ -0,0 +1,191 @@
1
+ //
2
+ // Copyright (c) 2021 - 2025 Advanced Micro Devices, Inc. All rights reserved.
3
+ //
4
+ //-------------------------------------------------------------------------------------------------
5
+
6
+ #ifndef ADLX_IDISPLAYS1_H
7
+ #define ADLX_IDISPLAYS1_H
8
+ #pragma once
9
+
10
+ #include "IDisplays.h"
11
+
12
+ //-------------------------------------------------------------------------------------------------
13
+ //IDisplays1.h - Interfaces for ADLX Display Information functionality
14
+
15
+ #pragma region IADLXDisplayServices1
16
+
17
+ #if defined (__cplusplus)
18
+ namespace adlx
19
+ {
20
+ class ADLX_NO_VTABLE IADLXDisplayConnectivityExperience;
21
+ class ADLX_NO_VTABLE IADLXDisplayBlanking;
22
+ class ADLX_NO_VTABLE IADLXDisplayServices1 : public IADLXDisplayServices
23
+ {
24
+ public:
25
+ ADLX_DECLARE_IID(L"IADLXDisplayServices1")
26
+
27
+ /**
28
+ *@page DOX_IADLXDisplayServices1_GetDisplayBlanking GetDisplayBlanking
29
+ *@ENG_START_DOX @brief Gets the reference counted display blanking interface of a display. @ENG_END_DOX
30
+ *
31
+ *@syntax
32
+ *@codeStart
33
+ * @ref ADLX_RESULT GetDisplayBlanking (IADLXDisplay* pDisplay, @ref DOX_IADLXDisplayBlanking** ppDisplayBlanking)
34
+ *@codeEnd
35
+ *
36
+ *@params
37
+ *@paramrow{1.,[in],pDisplay,@ref DOX_IADLXDisplay*,@ENG_START_DOX The pointer to the display interface. @ENG_END_DOX}
38
+ *@paramrow{2.,[out],ppDisplayBlanking,@ref DOX_IADLXDisplayBlanking **,@ENG_START_DOX The address of a pointer to the returned interface. If the interface is not successfully returned\, the method sets the dereferenced address __*ppDisplayBlanking__ to __nullptr__. @ENG_END_DOX}
39
+ *
40
+ *@retvalues
41
+ *@ENG_START_DOX
42
+ * If the interface is successfully returned, __ADLX_OK__ is returned. <br>
43
+ * If the interface is not successfully returned, an error code is returned. <br>
44
+ * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
45
+ *
46
+ *@detaileddesc
47
+ *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it's no longer needed. @ENG_END_DOX
48
+ *
49
+ *@addinfo
50
+ *@ENG_START_DOX
51
+ *When using ADLX interfaces as smart pointers in C++, it isn't necessary to call @ref DOX_IADLXInterface_Release as it's called by smart pointers in the internal implementation. @ENG_END_DOX
52
+ *
53
+ *@copydoc IADLXDisplayServices1_REQ_TABLE
54
+ *
55
+ */
56
+ virtual ADLX_RESULT ADLX_STD_CALL GetDisplayBlanking(IADLXDisplay* pDisplay, IADLXDisplayBlanking** ppDisplayBlanking) = 0;
57
+
58
+ }; //IADLXDisplayServices1
59
+ //----------------------------------------------------------------------------------------------
60
+ typedef IADLXInterfacePtr_T<IADLXDisplayServices1> IADLXDisplayServices1Ptr;
61
+ } // namespace adlx
62
+ #else //__cplusplus
63
+ ADLX_DECLARE_IID(IADLXDisplayServices1, L"IADLXDisplayServices1")
64
+ typedef struct IADLXDisplayServices1 IADLXDisplayServices1;
65
+
66
+ typedef struct IADLXDisplayFreeSync IADLXDisplayFreeSync;
67
+ typedef struct IADLXDisplayVSR IADLXDisplayVSR;
68
+ typedef struct IADLXDisplayGPUScaling IADLXDisplayGPUScaling;
69
+ typedef struct IADLXDisplayScalingMode IADLXDisplayScalingMode;
70
+ typedef struct IADLXDisplayIntegerScaling IADLXDisplayIntegerScaling;
71
+ typedef struct IADLXDisplayColorDepth IADLXDisplayColorDepth;
72
+ typedef struct IADLXDisplayPixelFormat IADLXDisplayPixelFormat;
73
+ typedef struct IADLXDisplayCustomColor IADLXDisplayCustomColor;
74
+ typedef struct IADLXDisplayHDCP IADLXDisplayHDCP;
75
+ typedef struct IADLXDisplayCustomResolution IADLXDisplayCustomResolution;
76
+ typedef struct IADLXDisplayChangedHandling IADLXDisplayChangedHandling;
77
+ typedef struct IADLXDisplayVariBright IADLXDisplayVariBright;
78
+ typedef struct IADLXDisplayConnectivityExperience IADLXDisplayConnectivityExperience;
79
+ typedef struct IADLXDisplayBlanking IADLXDisplayBlanking;
80
+
81
+ typedef struct IADLXDisplayServices1Vtbl
82
+ {
83
+ //IADLXInterface
84
+ adlx_long(ADLX_STD_CALL* Acquire)(IADLXDisplayServices1* pThis);
85
+ adlx_long(ADLX_STD_CALL* Release)(IADLXDisplayServices1* pThis);
86
+ ADLX_RESULT(ADLX_STD_CALL* QueryInterface)(IADLXDisplayServices1* pThis, const wchar_t* interfaceId, void** ppInterface);
87
+
88
+ //IADLXDisplayServices
89
+ ADLX_RESULT(ADLX_STD_CALL* GetNumberOfDisplays)(IADLXDisplayServices1* pThis, adlx_uint* numDisplays);
90
+ ADLX_RESULT(ADLX_STD_CALL* GetDisplays)(IADLXDisplayServices1* pThis, IADLXDisplayList** ppDisplays);
91
+ ADLX_RESULT(ADLX_STD_CALL* Get3DLUT)(IADLXDisplayServices1* pThis, IADLXDisplay* pDisplay, IADLXDisplay3DLUT** ppDisp3DLUT);
92
+ ADLX_RESULT(ADLX_STD_CALL* GetGamut)(IADLXDisplayServices1* pThis, IADLXDisplay* pDisplay, IADLXDisplayGamut** ppDispGamut);
93
+ ADLX_RESULT(ADLX_STD_CALL* GetGamma)(IADLXDisplayServices1* pThis, IADLXDisplay* pDisplay, IADLXDisplayGamma** ppDispGamma);
94
+ ADLX_RESULT(ADLX_STD_CALL* GetDisplayChangedHandling)(IADLXDisplayServices1* pThis, IADLXDisplayChangedHandling** ppDisplayChangedHandling);
95
+ ADLX_RESULT(ADLX_STD_CALL* GetFreeSync)(IADLXDisplayServices1* pThis, IADLXDisplay* pDisplay, IADLXDisplayFreeSync** ppFreeSync);
96
+ ADLX_RESULT(ADLX_STD_CALL* GetVirtualSuperResolution)(IADLXDisplayServices1* pThis, IADLXDisplay* pDisplay, IADLXDisplayVSR** ppVSR);
97
+ ADLX_RESULT(ADLX_STD_CALL* GetGPUScaling)(IADLXDisplayServices1* pThis, IADLXDisplay* pDisplay, IADLXDisplayGPUScaling** ppGPUScaling);
98
+ ADLX_RESULT(ADLX_STD_CALL* GetScalingMode)(IADLXDisplayServices1* pThis, IADLXDisplay* pDisplay, IADLXDisplayScalingMode** ppScalingMode);
99
+ ADLX_RESULT(ADLX_STD_CALL* GetIntegerScaling)(IADLXDisplayServices1* pThis, IADLXDisplay* pDisplay, IADLXDisplayIntegerScaling** ppIntegerScaling);
100
+ ADLX_RESULT(ADLX_STD_CALL* GetColorDepth)(IADLXDisplayServices1* pThis, IADLXDisplay* pDisplay, IADLXDisplayColorDepth** ppColorDepth);
101
+ ADLX_RESULT(ADLX_STD_CALL* GetPixelFormat)(IADLXDisplayServices1* pThis, IADLXDisplay* pDisplay, IADLXDisplayPixelFormat** ppPixelFormat);
102
+ ADLX_RESULT(ADLX_STD_CALL* GetCustomColor)(IADLXDisplayServices1* pThis, IADLXDisplay* pDisplay, IADLXDisplayCustomColor** ppCustomColor);
103
+ ADLX_RESULT(ADLX_STD_CALL* GetHDCP)(IADLXDisplayServices1* pThis, IADLXDisplay* pDisplay, IADLXDisplayHDCP** ppHDCP);
104
+ ADLX_RESULT(ADLX_STD_CALL* GetCustomResolution)(IADLXDisplayServices1* pThis, IADLXDisplay* pDisplay, IADLXDisplayCustomResolution** ppCustomResolution);
105
+ ADLX_RESULT(ADLX_STD_CALL* GetVariBright)(IADLXDisplayServices1* pThis, IADLXDisplay* pDisplay, IADLXDisplayVariBright** ppVariBright);
106
+
107
+ //IADLXDisplayServices1
108
+ ADLX_RESULT(ADLX_STD_CALL* GetDisplayBlanking)(IADLXDisplayServices1* pThis, IADLXDisplay* pDisplay, IADLXDisplayBlanking** ppDisplayBlanking);
109
+ } IADLXDisplayServices1Vtbl;
110
+
111
+ struct IADLXDisplayServices1 { const IADLXDisplayServices1Vtbl* pVtbl; };
112
+ #endif
113
+
114
+ #pragma endregion IADLXDisplayServices1
115
+
116
+ #pragma region IADLXDisplaySettingsChangedEvent1
117
+ #if defined (__cplusplus)
118
+ namespace adlx
119
+ {
120
+ class ADLX_NO_VTABLE IADLXDisplaySettingsChangedEvent1 : public IADLXDisplaySettingsChangedEvent
121
+ {
122
+ public:
123
+ ADLX_DECLARE_IID(L"IADLXDisplaySettingsChangedEvent1")
124
+
125
+ /**
126
+ *@page DOX_IADLXDisplaySettingsChangedEvent1_IsDisplayBlankingChanged IsDisplayBlankingChanged
127
+ *@ENG_START_DOX @brief Checks if the display blanking of the display is changed. @ENG_END_DOX
128
+ *
129
+ *@syntax
130
+ *@codeStart
131
+ * adlx_bool IsDisplayBlankingChanged ()
132
+ *@codeEnd
133
+ *
134
+ *@params
135
+ *N/A
136
+ *
137
+ *@retvalues
138
+ *@ENG_START_DOX
139
+ * If the display blanking settings are changed, __true__ is returned. <br>
140
+ * If the display blanking settings are not changed, __false__ is returned. @ENG_END_DOX
141
+ *
142
+ *@copydoc IADLXDisplaySettingsChangedEvent1_REQ_TABLE
143
+ *
144
+ */
145
+ virtual adlx_bool ADLX_STD_CALL IsDisplayBlankingChanged() = 0;
146
+ }; //IADLXDisplaySettingsChangedEvent1
147
+ //----------------------------------------------------------------------------------------------
148
+ typedef IADLXInterfacePtr_T<IADLXDisplaySettingsChangedEvent1> IADLXDisplaySettingsChangedEvent1Ptr;
149
+ } //namespace adlx
150
+ #else //__cplusplus
151
+ ADLX_DECLARE_IID(IADLXDisplaySettingsChangedEvent1, L"IADLXDisplaySettingsChangedEvent1")
152
+ typedef struct IADLXDisplaySettingsChangedEvent1 IADLXDisplaySettingsChangedEvent1;
153
+
154
+ typedef struct IADLXDisplaySettingsChangedEvent1Vtbl
155
+ {
156
+ //IADLXInterface
157
+ adlx_long(ADLX_STD_CALL* Acquire)(IADLXDisplaySettingsChangedEvent1* pThis);
158
+ adlx_long(ADLX_STD_CALL* Release)(IADLXDisplaySettingsChangedEvent1* pThis);
159
+ ADLX_RESULT(ADLX_STD_CALL* QueryInterface)(IADLXDisplaySettingsChangedEvent1* pThis, const wchar_t* interfaceId, void** ppInterface);
160
+
161
+ //IADLXChangedEvent
162
+ ADLX_SYNC_ORIGIN(ADLX_STD_CALL* GetOrigin)(IADLXDisplaySettingsChangedEvent1* pThis);
163
+
164
+ // IADLXDisplaySettingsChangedEvent interface
165
+ ADLX_RESULT(ADLX_STD_CALL* GetDisplay)(IADLXDisplaySettingsChangedEvent1* pThis, IADLXDisplay** ppDisplay);
166
+ adlx_bool(ADLX_STD_CALL* IsFreeSyncChanged)(IADLXDisplaySettingsChangedEvent1* pThis);
167
+ adlx_bool(ADLX_STD_CALL* IsVSRChanged)(IADLXDisplaySettingsChangedEvent1* pThis);
168
+ adlx_bool(ADLX_STD_CALL* IsGPUScalingChanged)(IADLXDisplaySettingsChangedEvent1* pThis);
169
+ adlx_bool(ADLX_STD_CALL* IsScalingModeChanged)(IADLXDisplaySettingsChangedEvent1* pThis);
170
+ adlx_bool(ADLX_STD_CALL* IsIntegerScalingChanged)(IADLXDisplaySettingsChangedEvent1* pThis);
171
+ adlx_bool(ADLX_STD_CALL* IsColorDepthChanged)(IADLXDisplaySettingsChangedEvent1* pThis);
172
+ adlx_bool(ADLX_STD_CALL* IsPixelFormatChanged)(IADLXDisplaySettingsChangedEvent1* pThis);
173
+ adlx_bool(ADLX_STD_CALL* IsHDCPChanged)(IADLXDisplaySettingsChangedEvent1* pThis);
174
+ adlx_bool(ADLX_STD_CALL* IsCustomColorHueChanged)(IADLXDisplaySettingsChangedEvent1* pThis);
175
+ adlx_bool(ADLX_STD_CALL* IsCustomColorSaturationChanged)(IADLXDisplaySettingsChangedEvent1* pThis);
176
+ adlx_bool(ADLX_STD_CALL* IsCustomColorBrightnessChanged)(IADLXDisplaySettingsChangedEvent1* pThis);
177
+ adlx_bool(ADLX_STD_CALL* IsCustomColorTemperatureChanged)(IADLXDisplaySettingsChangedEvent1* pThis);
178
+ adlx_bool(ADLX_STD_CALL* IsCustomColorContrastChanged)(IADLXDisplaySettingsChangedEvent1* pThis);
179
+ adlx_bool(ADLX_STD_CALL* IsCustomResolutionChanged)(IADLXDisplaySettingsChangedEvent1* pThis);
180
+ adlx_bool(ADLX_STD_CALL* IsVariBrightChanged)(IADLXDisplaySettingsChangedEvent1* pThis);
181
+
182
+ // IADLXDisplaySettingsChangedEvent1 interface
183
+ adlx_bool(ADLX_STD_CALL* IsDisplayBlankingChanged)(IADLXDisplaySettingsChangedEvent1* pThis);
184
+
185
+ } IADLXDisplaySettingsChangedEvent1Vtbl;
186
+
187
+ struct IADLXDisplaySettingsChangedEvent1 { const IADLXDisplaySettingsChangedEvent1Vtbl* pVtbl; };
188
+ #endif //__cplusplus
189
+ #pragma endregion IADLXDisplaySettingsChangedEvent1
190
+
191
+ #endif //ADLX_IDISPLAYS1_H
@@ -0,0 +1,188 @@
1
+ //
2
+ // Copyright (c) 2021 - 2025 Advanced Micro Devices, Inc. All rights reserved.
3
+ //
4
+ //-------------------------------------------------------------------------------------------------
5
+
6
+ #ifndef ADLX_IDISPLAYS2_H
7
+ #define ADLX_IDISPLAYS2_H
8
+ #pragma once
9
+
10
+ #include "IDisplays1.h"
11
+
12
+ //-------------------------------------------------------------------------------------------------
13
+ //IDisplays2.h - Interfaces for ADLX Display Information functionality
14
+
15
+ #pragma region IADLXDisplayServices2
16
+
17
+ #if defined (__cplusplus)
18
+ namespace adlx
19
+ {
20
+ class ADLX_NO_VTABLE IADLXDisplayConnectivityExperience;
21
+ class ADLX_NO_VTABLE IADLXDisplayServices2 : public IADLXDisplayServices1
22
+ {
23
+ public:
24
+ ADLX_DECLARE_IID(L"IADLXDisplayServices2")
25
+
26
+ /**
27
+ *@page DOX_IADLXDisplayServices2_GetDisplayConnectivityExperience GetDisplayConnectivityExperience
28
+ *@ENG_START_DOX @brief Gets the reference counted DCE interface for a display. @ENG_END_DOX
29
+ *
30
+ *@syntax
31
+ *@codeStart
32
+ * @ref ADLX_RESULT GetDisplayConnectivityExperience (@ref DOX_IADLXDisplay* pDisplay, @ref DOX_IADLXDisplayConnectivityExperience ** ppDisplayConnectivityExperience)
33
+ *@codeEnd
34
+ *
35
+ *@params
36
+ *@paramrow{1.,[in],pDisplay,@ref DOX_IADLXDisplay*,@ENG_START_DOX The pointer to the display interface. @ENG_END_DOX}
37
+ *@paramrow{2.,[out],ppDisplayConnectivityExperience,@ref DOX_IADLXDisplayConnectivityExperience **,@ENG_START_DOX The address of a pointer to the returned interface. If the interface is not successfully returned\, the method sets the dereferenced address __*ppDisplayConnectivityExperience__ to __nullptr__. @ENG_END_DOX}
38
+ *
39
+ *@retvalues
40
+ *@ENG_START_DOX
41
+ * If the interface is successfully returned, __ADLX_OK__ is returned. <br>
42
+ * If the interface is not successfully returned, an error code is returned. <br>
43
+ * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
44
+ *
45
+ *@detaileddesc
46
+ *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX
47
+ *
48
+ *@addinfo
49
+ *@ENG_START_DOX
50
+ *In C++, when using ADLX interfaces as smart pointers, there is no need to call @ref DOX_IADLXInterface_Release because smart pointers call it in their internal implementation. @ENG_END_DOX
51
+ *
52
+ *@copydoc IADLXDisplayServices2_REQ_TABLE
53
+ *
54
+ */
55
+ virtual ADLX_RESULT ADLX_STD_CALL GetDisplayConnectivityExperience(IADLXDisplay* pDisplay, IADLXDisplayConnectivityExperience** ppDisplayConnectivityExperience) = 0;
56
+ }; //IADLXDisplayServices2
57
+ //----------------------------------------------------------------------------------------------
58
+ typedef IADLXInterfacePtr_T<IADLXDisplayServices2> IADLXDisplayServices2Ptr;
59
+ } // namespace adlx
60
+ #else //__cplusplus
61
+ ADLX_DECLARE_IID(IADLXDisplayServices2, L"IADLXDisplayServices2")
62
+ typedef struct IADLXDisplayServices2 IADLXDisplayServices2;
63
+
64
+ typedef struct IADLXDisplayConnectivityExperience IADLXDisplayConnectivityExperience;
65
+
66
+ typedef struct IADLXDisplayServices2Vtbl
67
+ {
68
+ //IADLXInterface
69
+ adlx_long(ADLX_STD_CALL* Acquire)(IADLXDisplayServices2* pThis);
70
+ adlx_long(ADLX_STD_CALL* Release)(IADLXDisplayServices2* pThis);
71
+ ADLX_RESULT(ADLX_STD_CALL* QueryInterface)(IADLXDisplayServices2* pThis, const wchar_t* interfaceId, void** ppInterface);
72
+
73
+ //IADLXDisplayServices
74
+ ADLX_RESULT(ADLX_STD_CALL* GetNumberOfDisplays)(IADLXDisplayServices2* pThis, adlx_uint* numDisplays);
75
+ ADLX_RESULT(ADLX_STD_CALL* GetDisplays)(IADLXDisplayServices2* pThis, IADLXDisplayList** ppDisplays);
76
+ ADLX_RESULT(ADLX_STD_CALL* Get3DLUT)(IADLXDisplayServices2* pThis, IADLXDisplay* pDisplay, IADLXDisplay3DLUT** ppDisp3DLUT);
77
+ ADLX_RESULT(ADLX_STD_CALL* GetGamut)(IADLXDisplayServices2* pThis, IADLXDisplay* pDisplay, IADLXDisplayGamut** ppDispGamut);
78
+ ADLX_RESULT(ADLX_STD_CALL* GetGamma)(IADLXDisplayServices2* pThis, IADLXDisplay* pDisplay, IADLXDisplayGamma** ppDispGamma);
79
+ ADLX_RESULT(ADLX_STD_CALL* GetDisplayChangedHandling)(IADLXDisplayServices2* pThis, IADLXDisplayChangedHandling** ppDisplayChangedHandling);
80
+ ADLX_RESULT(ADLX_STD_CALL* GetFreeSync)(IADLXDisplayServices2* pThis, IADLXDisplay* pDisplay, IADLXDisplayFreeSync** ppFreeSync);
81
+ ADLX_RESULT(ADLX_STD_CALL* GetVirtualSuperResolution)(IADLXDisplayServices2* pThis, IADLXDisplay* pDisplay, IADLXDisplayVSR** ppVSR);
82
+ ADLX_RESULT(ADLX_STD_CALL* GetGPUScaling)(IADLXDisplayServices2* pThis, IADLXDisplay* pDisplay, IADLXDisplayGPUScaling** ppGPUScaling);
83
+ ADLX_RESULT(ADLX_STD_CALL* GetScalingMode)(IADLXDisplayServices2* pThis, IADLXDisplay* pDisplay, IADLXDisplayScalingMode** ppScalingMode);
84
+ ADLX_RESULT(ADLX_STD_CALL* GetIntegerScaling)(IADLXDisplayServices2* pThis, IADLXDisplay* pDisplay, IADLXDisplayIntegerScaling** ppIntegerScaling);
85
+ ADLX_RESULT(ADLX_STD_CALL* GetColorDepth)(IADLXDisplayServices2* pThis, IADLXDisplay* pDisplay, IADLXDisplayColorDepth** ppColorDepth);
86
+ ADLX_RESULT(ADLX_STD_CALL* GetPixelFormat)(IADLXDisplayServices2* pThis, IADLXDisplay* pDisplay, IADLXDisplayPixelFormat** ppPixelFormat);
87
+ ADLX_RESULT(ADLX_STD_CALL* GetCustomColor)(IADLXDisplayServices2* pThis, IADLXDisplay* pDisplay, IADLXDisplayCustomColor** ppCustomColor);
88
+ ADLX_RESULT(ADLX_STD_CALL* GetHDCP)(IADLXDisplayServices2* pThis, IADLXDisplay* pDisplay, IADLXDisplayHDCP** ppHDCP);
89
+ ADLX_RESULT(ADLX_STD_CALL* GetCustomResolution)(IADLXDisplayServices2* pThis, IADLXDisplay* pDisplay, IADLXDisplayCustomResolution** ppCustomResolution);
90
+ ADLX_RESULT(ADLX_STD_CALL* GetVariBright)(IADLXDisplayServices2* pThis, IADLXDisplay* pDisplay, IADLXDisplayVariBright** ppVariBright);
91
+
92
+ //IADLXDisplayServices1
93
+ ADLX_RESULT(ADLX_STD_CALL* GetDisplayBlanking)(IADLXDisplayServices2* pThis, IADLXDisplay* pDisplay, IADLXDisplayBlanking** ppDisplayBlanking);
94
+
95
+ //IADLXDisplayServices2
96
+ ADLX_RESULT(ADLX_STD_CALL* GetDisplayConnectivityExperience)(IADLXDisplayServices2* pThis, IADLXDisplay* pDisplay, IADLXDisplayConnectivityExperience** ppDisplayConnectivityExperience);
97
+ } IADLXDisplayServices2Vtbl;
98
+
99
+ struct IADLXDisplayServices2 { const IADLXDisplayServices2Vtbl* pVtbl; };
100
+ #endif
101
+
102
+ #pragma endregion IADLXDisplayServices2
103
+
104
+ #pragma region IADLXDisplaySettingsChangedEvent2
105
+ #if defined (__cplusplus)
106
+ namespace adlx
107
+ {
108
+ class ADLX_NO_VTABLE IADLXDisplaySettingsChangedEvent2 : public IADLXDisplaySettingsChangedEvent1
109
+ {
110
+ public:
111
+ ADLX_DECLARE_IID(L"IADLXDisplaySettingsChangedEvent2")
112
+
113
+ /**
114
+ *@page DOX_IADLXDisplaySettingsChangedEvent2_IsConnectivityExperienceChanged IsConnectivityExperienceChanged
115
+ *@ENG_START_DOX @brief Checks if the DCE settings of the display are changed. @ENG_END_DOX
116
+ *
117
+ *@syntax
118
+ *@codeStart
119
+ * adlx_bool IsDisplayConnectivityExperienceChanged ()
120
+ *@codeEnd
121
+ *
122
+ *@params
123
+ *N/A
124
+ *
125
+ *@retvalues
126
+ *@ENG_START_DOX
127
+ * If the DCE settings are changed, __true__ is returned. <br>
128
+ * If the DCE settings are not changed, __false__ is returned. @ENG_END_DOX
129
+ *
130
+ *
131
+ *@addinfo
132
+ *@ENG_START_DOX
133
+ * __Note:__ To obtain the display, use @ref DOX_IADLXDisplaySettingsChangedEvent_GetDisplay.
134
+ *@ENG_END_DOX
135
+ *
136
+ *@copydoc IADLXDisplaySettingsChangedEvent2_REQ_TABLE
137
+ */
138
+ virtual adlx_bool ADLX_STD_CALL IsDisplayConnectivityExperienceChanged() = 0;
139
+ }; //IADLXDisplaySettingsChangedEvent2
140
+ //----------------------------------------------------------------------------------------------
141
+ typedef IADLXInterfacePtr_T<IADLXDisplaySettingsChangedEvent2> IADLXDisplaySettingsChangedEvent2Ptr;
142
+ } //namespace adlx
143
+ #else //__cplusplus
144
+ ADLX_DECLARE_IID(IADLXDisplaySettingsChangedEvent2, L"IADLXDisplaySettingsChangedEvent2")
145
+ typedef struct IADLXDisplaySettingsChangedEvent2 IADLXDisplaySettingsChangedEvent2;
146
+
147
+ typedef struct IADLXDisplaySettingsChangedEvent2Vtbl
148
+ {
149
+ //IADLXInterface
150
+ adlx_long(ADLX_STD_CALL* Acquire)(IADLXDisplaySettingsChangedEvent2* pThis);
151
+ adlx_long(ADLX_STD_CALL* Release)(IADLXDisplaySettingsChangedEvent2* pThis);
152
+ ADLX_RESULT(ADLX_STD_CALL* QueryInterface)(IADLXDisplaySettingsChangedEvent2* pThis, const wchar_t* interfaceId, void** ppInterface);
153
+
154
+ //IADLXChangedEvent
155
+ ADLX_SYNC_ORIGIN(ADLX_STD_CALL* GetOrigin)(IADLXDisplaySettingsChangedEvent2* pThis);
156
+
157
+ // IADLXDisplaySettingsChangedEvent interface
158
+ ADLX_RESULT(ADLX_STD_CALL* GetDisplay)(IADLXDisplaySettingsChangedEvent2* pThis, IADLXDisplay** ppDisplay);
159
+ adlx_bool(ADLX_STD_CALL* IsFreeSyncChanged)(IADLXDisplaySettingsChangedEvent2* pThis);
160
+ adlx_bool(ADLX_STD_CALL* IsVSRChanged)(IADLXDisplaySettingsChangedEvent2* pThis);
161
+ adlx_bool(ADLX_STD_CALL* IsGPUScalingChanged)(IADLXDisplaySettingsChangedEvent2* pThis);
162
+ adlx_bool(ADLX_STD_CALL* IsScalingModeChanged)(IADLXDisplaySettingsChangedEvent2* pThis);
163
+ adlx_bool(ADLX_STD_CALL* IsIntegerScalingChanged)(IADLXDisplaySettingsChangedEvent2* pThis);
164
+ adlx_bool(ADLX_STD_CALL* IsColorDepthChanged)(IADLXDisplaySettingsChangedEvent2* pThis);
165
+ adlx_bool(ADLX_STD_CALL* IsPixelFormatChanged)(IADLXDisplaySettingsChangedEvent2* pThis);
166
+ adlx_bool(ADLX_STD_CALL* IsHDCPChanged)(IADLXDisplaySettingsChangedEvent2* pThis);
167
+ adlx_bool(ADLX_STD_CALL* IsCustomColorHueChanged)(IADLXDisplaySettingsChangedEvent2* pThis);
168
+ adlx_bool(ADLX_STD_CALL* IsCustomColorSaturationChanged)(IADLXDisplaySettingsChangedEvent2* pThis);
169
+ adlx_bool(ADLX_STD_CALL* IsCustomColorBrightnessChanged)(IADLXDisplaySettingsChangedEvent2* pThis);
170
+ adlx_bool(ADLX_STD_CALL* IsCustomColorTemperatureChanged)(IADLXDisplaySettingsChangedEvent2* pThis);
171
+ adlx_bool(ADLX_STD_CALL* IsCustomColorContrastChanged)(IADLXDisplaySettingsChangedEvent2* pThis);
172
+ adlx_bool(ADLX_STD_CALL* IsCustomResolutionChanged)(IADLXDisplaySettingsChangedEvent2* pThis);
173
+ adlx_bool(ADLX_STD_CALL* IsVariBrightChanged)(IADLXDisplaySettingsChangedEvent2* pThis);
174
+
175
+ // IADLXDisplaySettingsChangedEvent1 interface
176
+ adlx_bool(ADLX_STD_CALL* IsDisplayBlankingChanged)(IADLXDisplaySettingsChangedEvent2* pThis);
177
+
178
+ // IADLXDisplaySettingsChangedEvent2 interface
179
+ adlx_bool(ADLX_STD_CALL* IsDisplayConnectivityExperienceChanged)(IADLXDisplaySettingsChangedEvent2* pThis);
180
+
181
+
182
+ } IADLXDisplaySettingsChangedEvent2Vtbl;
183
+
184
+ struct IADLXDisplaySettingsChangedEvent2 { const IADLXDisplaySettingsChangedEvent2Vtbl* pVtbl; };
185
+ #endif //__cplusplus
186
+ #pragma endregion IADLXDisplaySettingsChangedEvent2
187
+
188
+ #endif //ADLX_IDISPLAYS2_H
@@ -0,0 +1,256 @@
1
+ //
2
+ // Copyright (c) 2021 - 2025 Advanced Micro Devices, Inc. All rights reserved.
3
+ //
4
+ //-------------------------------------------------------------------------------------------------
5
+
6
+ #ifndef ADLX_IDISPLAYS3_H
7
+ #define ADLX_IDISPLAYS3_H
8
+ #pragma once
9
+
10
+ #include "IDisplays2.h"
11
+
12
+ //-------------------------------------------------------------------------------------------------
13
+ //IDisplays3.h - Interfaces for ADLX Display dynamic refresh rate control functionality
14
+
15
+ #pragma region IADLXDisplayServices3
16
+
17
+ #if defined (__cplusplus)
18
+ namespace adlx
19
+ {
20
+ class ADLX_NO_VTABLE IADLXDisplayDynamicRefreshRateControl;
21
+ class ADLX_NO_VTABLE IADLXDisplayFreeSyncColorAccuracy;
22
+ class ADLX_NO_VTABLE IADLXDisplayServices3 : public IADLXDisplayServices2
23
+ {
24
+ public:
25
+ ADLX_DECLARE_IID(L"IADLXDisplayServices3")
26
+
27
+ /**
28
+ *@page DOX_IADLXDisplayServices3_GetDynamicRefreshRateControl GetDynamicRefreshRateControl
29
+ *@ENG_START_DOX @brief Gets the reference counted Dynamic Refresh Rate Control interface for a display. @ENG_END_DOX
30
+ *
31
+ *@syntax
32
+ *@codeStart
33
+ * @ref ADLX_RESULT GetDynamicRefreshRateControl (@ref DOX_IADLXDisplay* pDisplay, @ref DOX_IADLXDisplayDynamicRefreshRateControl** ppDRRC)
34
+ *@codeEnd
35
+ *
36
+ *@params
37
+ *@paramrow{1.,[in],pDisplay,@ref DOX_IADLXDisplay*,@ENG_START_DOX The pointer to the display interface. @ENG_END_DOX}
38
+ *@paramrow{2.,[out],ppDRRC,@ref DOX_IADLXDisplayDynamicRefreshRateControl**,@ENG_START_DOX The address of a pointer to the returned interface. If the interface is not successfully returned\, the method sets the dereferenced address __*ppDRRC__ to __nullptr__. @ENG_END_DOX}
39
+ *
40
+ *@retvalues
41
+ *@ENG_START_DOX
42
+ * If the interface is successfully returned, __ADLX_OK__ is returned. <br>
43
+ * If the interface is not successfully returned, an error code is returned. <br>
44
+ * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
45
+ *
46
+ *@detaileddesc
47
+ *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX
48
+ *
49
+ *@addinfo
50
+ *@ENG_START_DOX
51
+ *In C++, when using ADLX interfaces as smart pointers, there is no need to call @ref DOX_IADLXInterface_Release because smart pointers call it in their internal implementation. @ENG_END_DOX
52
+ *
53
+ *@copydoc IADLXDisplayServices3_REQ_TABLE
54
+ *
55
+ */
56
+ virtual ADLX_RESULT ADLX_STD_CALL GetDynamicRefreshRateControl (IADLXDisplay* pDisplay, IADLXDisplayDynamicRefreshRateControl** ppDRRC) = 0;
57
+
58
+ /**
59
+ *@page DOX_IADLXDisplayServices3_GetFreeSyncColorAccuracy GetFreeSyncColorAccuracy
60
+ *@ENG_START_DOX @brief Gets the reference counted FreeSync color accuracy interface for a display. @ENG_END_DOX
61
+ *
62
+ *@syntax
63
+ *@codeStart
64
+ * @ref ADLX_RESULT GetFreeSyncColorAccuracy (@ref DOX_IADLXDisplay* pDisplay, @ref DOX_IADLXDisplayFreeSyncColorAccuracy** ppFSCA)
65
+ *@codeEnd
66
+ *
67
+ *@params
68
+ *@paramrow{1.,[in],pDisplay,@ref DOX_IADLXDisplay*,@ENG_START_DOX The pointer to the display interface. @ENG_END_DOX}
69
+ *@paramrow{2.,[out],ppFSCA,@ref DOX_IADLXDisplayFreeSyncColorAccuracy**,@ENG_START_DOX The address of a pointer to the returned interface. If the interface is not successfully returned\, the method sets the dereferenced address __*ppFSCA to __nullptr__. @ENG_END_DOX}
70
+ *
71
+ *@retvalues
72
+ *@ENG_START_DOX
73
+ * If the interface is successfully returned, __ADLX_OK__ is returned. <br>
74
+ * If the interface is not successfully returned, an error code is returned. <br>
75
+ * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
76
+ *
77
+ *@detaileddesc
78
+ *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX
79
+ *
80
+ *@addinfo
81
+ *@ENG_START_DOX
82
+ *In C++, when using ADLX interfaces as smart pointers, there is no need to call @ref DOX_IADLXInterface_Release because smart pointers call it in their internal implementation. @ENG_END_DOX
83
+ *
84
+ *@copydoc IADLXDisplayServices3_REQ_TABLE
85
+ *
86
+ */
87
+ virtual ADLX_RESULT ADLX_STD_CALL GetFreeSyncColorAccuracy(IADLXDisplay* pDisplay, IADLXDisplayFreeSyncColorAccuracy** ppFSCA) = 0;
88
+ }; //IADLXDisplayServices3
89
+ //----------------------------------------------------------------------------------------------
90
+ typedef IADLXInterfacePtr_T<IADLXDisplayServices3> IADLXDisplayServices3Ptr;
91
+ } // namespace adlx
92
+ #else //__cplusplus
93
+ ADLX_DECLARE_IID(IADLXDisplayServices3, L"IADLXDisplayServices3")
94
+ typedef struct IADLXDisplayServices3 IADLXDisplayServices3;
95
+
96
+ typedef struct IADLXDisplayDynamicRefreshRateControl IADLXDisplayDynamicRefreshRateControl;
97
+ typedef struct IADLXDisplayFreeSyncColorAccuracy IADLXDisplayFreeSyncColorAccuracy;
98
+
99
+
100
+ typedef struct IADLXDisplayServices3Vtbl
101
+ {
102
+ //IADLXInterface
103
+ adlx_long(ADLX_STD_CALL* Acquire)(IADLXDisplayServices3* pThis);
104
+ adlx_long(ADLX_STD_CALL* Release)(IADLXDisplayServices3* pThis);
105
+ ADLX_RESULT(ADLX_STD_CALL* QueryInterface)(IADLXDisplayServices3* pThis, const wchar_t* interfaceId, void** ppInterface);
106
+
107
+ //IADLXDisplayServices
108
+ ADLX_RESULT(ADLX_STD_CALL* GetNumberOfDisplays)(IADLXDisplayServices3* pThis, adlx_uint* numDisplays);
109
+ ADLX_RESULT(ADLX_STD_CALL* GetDisplays)(IADLXDisplayServices3* pThis, IADLXDisplayList** ppDisplays);
110
+ ADLX_RESULT(ADLX_STD_CALL* Get3DLUT)(IADLXDisplayServices3* pThis, IADLXDisplay* pDisplay, IADLXDisplay3DLUT** ppDisp3DLUT);
111
+ ADLX_RESULT(ADLX_STD_CALL* GetGamut)(IADLXDisplayServices3* pThis, IADLXDisplay* pDisplay, IADLXDisplayGamut** ppDispGamut);
112
+ ADLX_RESULT(ADLX_STD_CALL* GetGamma)(IADLXDisplayServices3* pThis, IADLXDisplay* pDisplay, IADLXDisplayGamma** ppDispGamma);
113
+ ADLX_RESULT(ADLX_STD_CALL* GetDisplayChangedHandling)(IADLXDisplayServices3* pThis, IADLXDisplayChangedHandling** ppDisplayChangedHandling);
114
+ ADLX_RESULT(ADLX_STD_CALL* GetFreeSync)(IADLXDisplayServices3* pThis, IADLXDisplay* pDisplay, IADLXDisplayFreeSync** ppFreeSync);
115
+ ADLX_RESULT(ADLX_STD_CALL* GetVirtualSuperResolution)(IADLXDisplayServices3* pThis, IADLXDisplay* pDisplay, IADLXDisplayVSR** ppVSR);
116
+ ADLX_RESULT(ADLX_STD_CALL* GetGPUScaling)(IADLXDisplayServices3* pThis, IADLXDisplay* pDisplay, IADLXDisplayGPUScaling** ppGPUScaling);
117
+ ADLX_RESULT(ADLX_STD_CALL* GetScalingMode)(IADLXDisplayServices3* pThis, IADLXDisplay* pDisplay, IADLXDisplayScalingMode** ppScalingMode);
118
+ ADLX_RESULT(ADLX_STD_CALL* GetIntegerScaling)(IADLXDisplayServices3* pThis, IADLXDisplay* pDisplay, IADLXDisplayIntegerScaling** ppIntegerScaling);
119
+ ADLX_RESULT(ADLX_STD_CALL* GetColorDepth)(IADLXDisplayServices3* pThis, IADLXDisplay* pDisplay, IADLXDisplayColorDepth** ppColorDepth);
120
+ ADLX_RESULT(ADLX_STD_CALL* GetPixelFormat)(IADLXDisplayServices3* pThis, IADLXDisplay* pDisplay, IADLXDisplayPixelFormat** ppPixelFormat);
121
+ ADLX_RESULT(ADLX_STD_CALL* GetCustomColor)(IADLXDisplayServices3* pThis, IADLXDisplay* pDisplay, IADLXDisplayCustomColor** ppCustomColor);
122
+ ADLX_RESULT(ADLX_STD_CALL* GetHDCP)(IADLXDisplayServices3* pThis, IADLXDisplay* pDisplay, IADLXDisplayHDCP** ppHDCP);
123
+ ADLX_RESULT(ADLX_STD_CALL* GetCustomResolution)(IADLXDisplayServices3* pThis, IADLXDisplay* pDisplay, IADLXDisplayCustomResolution** ppCustomResolution);
124
+ ADLX_RESULT(ADLX_STD_CALL* GetVariBright)(IADLXDisplayServices3* pThis, IADLXDisplay* pDisplay, IADLXDisplayVariBright** ppVariBright);
125
+
126
+ //IADLXDisplayServices1
127
+ ADLX_RESULT(ADLX_STD_CALL* GetDisplayBlanking)(IADLXDisplayServices3* pThis, IADLXDisplay* pDisplay, IADLXDisplayBlanking** ppDisplayBlanking);
128
+
129
+ //IADLXDisplayServices2
130
+ ADLX_RESULT(ADLX_STD_CALL* GetDisplayConnectivityExperience)(IADLXDisplayServices3* pThis, IADLXDisplay* pDisplay, IADLXDisplayConnectivityExperience** ppDisplayConnectivityExperience);
131
+
132
+ //IADLXDisplayServices3
133
+ ADLX_RESULT(ADLX_STD_CALL* GetDynamicRefreshRateControl)(IADLXDisplayServices3* pThis, IADLXDisplay* pDisplay, IADLXDisplayDynamicRefreshRateControl** ppDRRC);
134
+ ADLX_RESULT(ADLX_STD_CALL* GetFreeSyncColorAccuracy)(IADLXDisplayServices3* pThis, IADLXDisplay* pDisplay, IADLXDisplayFreeSyncColorAccuracy** ppFSCA);
135
+ } IADLXDisplayServices3Vtbl;
136
+
137
+ struct IADLXDisplayServices3 { const IADLXDisplayServices3Vtbl* pVtbl; };
138
+ #endif
139
+
140
+ #pragma endregion IADLXDisplayServices3
141
+
142
+ #pragma region IADLXDisplaySettingsChangedEvent3
143
+ #if defined (__cplusplus)
144
+ namespace adlx
145
+ {
146
+ class ADLX_NO_VTABLE IADLXDisplaySettingsChangedEvent3 : public IADLXDisplaySettingsChangedEvent2
147
+ {
148
+ public:
149
+ ADLX_DECLARE_IID(L"IADLXDisplaySettingsChangedEvent3")
150
+
151
+ /**
152
+ *@page DOX_IADLXDisplaySettingsChangedEvent3_IsDisplayDynamicRefreshRateControlChanged IsDisplayDynamicRefreshRateControlChanged
153
+ *@ENG_START_DOX @brief Checks if the dynamic refresh rate control settings of the display are changed. @ENG_END_DOX
154
+ *
155
+ *@syntax
156
+ *@codeStart
157
+ * adlx_bool IsDisplayDynamicRefreshRateControlChanged ()
158
+ *@codeEnd
159
+ *
160
+ *@params
161
+ *N/A
162
+ *
163
+ *@retvalues
164
+ *@ENG_START_DOX
165
+ * If the Dynamic Refresh Rate Control settings are changed, __true__ is returned. <br>
166
+ * If the Dynamic Refresh Rate Control settings are not changed, __false__ is returned. @ENG_END_DOX
167
+ *
168
+ *
169
+ *@addinfo
170
+ *@ENG_START_DOX
171
+ * __Note:__ To obtain the display, use @ref DOX_IADLXDisplaySettingsChangedEvent_GetDisplay.
172
+ *@ENG_END_DOX
173
+ *
174
+ *@copydoc IADLXDisplaySettingsChangedEvent3_REQ_TABLE
175
+ */
176
+ virtual adlx_bool ADLX_STD_CALL IsDisplayDynamicRefreshRateControlChanged () = 0;
177
+
178
+ /**
179
+ *@page DOX_IADLXDisplaySettingsChangedEvent3_IsFreeSyncColorAccuracyChanged IsFreeSyncColorAccuracyChanged
180
+ *@ENG_START_DOX @brief Checks for changes to the configuration of the HDR media profile on a display. @ENG_END_DOX
181
+ *
182
+ *@syntax
183
+ *@codeStart
184
+ * adlx_bool IsFreeSyncColorAccuracyChanged ()
185
+ *@codeEnd
186
+ *
187
+ *@params
188
+ *N/A
189
+ *
190
+ *@retvalues
191
+ *@ENG_START_DOX
192
+ * If the FreeSync color accuracy settings are changed, __true__ is returned. <br>
193
+ * If the FreeSync color accuracy settings are not changed, __false__ is returned. @ENG_END_DOX
194
+ *
195
+ *
196
+ *@addinfo
197
+ *@ENG_START_DOX
198
+ * __Note:__ To obtain the display, use @ref DOX_IADLXDisplaySettingsChangedEvent_GetDisplay.
199
+ *@ENG_END_DOX
200
+ *
201
+ *@copydoc IADLXDisplaySettingsChangedEvent3_REQ_TABLE
202
+ */
203
+ virtual adlx_bool ADLX_STD_CALL IsFreeSyncColorAccuracyChanged() = 0;
204
+ }; //IADLXDisplaySettingsChangedEvent3
205
+ //----------------------------------------------------------------------------------------------
206
+ typedef IADLXInterfacePtr_T<IADLXDisplaySettingsChangedEvent3> IADLXDisplaySettingsChangedEvent3Ptr;
207
+ } //namespace adlx
208
+ #else //__cplusplus
209
+ ADLX_DECLARE_IID(IADLXDisplaySettingsChangedEvent3, L"IADLXDisplaySettingsChangedEvent3")
210
+ typedef struct IADLXDisplaySettingsChangedEvent3 IADLXDisplaySettingsChangedEvent3;
211
+
212
+ typedef struct IADLXDisplaySettingsChangedEvent3Vtbl
213
+ {
214
+ //IADLXInterface
215
+ adlx_long(ADLX_STD_CALL* Acquire)(IADLXDisplaySettingsChangedEvent3* pThis);
216
+ adlx_long(ADLX_STD_CALL* Release)(IADLXDisplaySettingsChangedEvent3* pThis);
217
+ ADLX_RESULT(ADLX_STD_CALL* QueryInterface)(IADLXDisplaySettingsChangedEvent3* pThis, const wchar_t* interfaceId, void** ppInterface);
218
+
219
+ //IADLXChangedEvent
220
+ ADLX_SYNC_ORIGIN(ADLX_STD_CALL* GetOrigin)(IADLXDisplaySettingsChangedEvent3* pThis);
221
+
222
+ // IADLXDisplaySettingsChangedEvent interface
223
+ ADLX_RESULT(ADLX_STD_CALL* GetDisplay)(IADLXDisplaySettingsChangedEvent3* pThis, IADLXDisplay** ppDisplay);
224
+ adlx_bool(ADLX_STD_CALL* IsFreeSyncChanged)(IADLXDisplaySettingsChangedEvent3* pThis);
225
+ adlx_bool(ADLX_STD_CALL* IsVSRChanged)(IADLXDisplaySettingsChangedEvent3* pThis);
226
+ adlx_bool(ADLX_STD_CALL* IsGPUScalingChanged)(IADLXDisplaySettingsChangedEvent3* pThis);
227
+ adlx_bool(ADLX_STD_CALL* IsScalingModeChanged)(IADLXDisplaySettingsChangedEvent3* pThis);
228
+ adlx_bool(ADLX_STD_CALL* IsIntegerScalingChanged)(IADLXDisplaySettingsChangedEvent3* pThis);
229
+ adlx_bool(ADLX_STD_CALL* IsColorDepthChanged)(IADLXDisplaySettingsChangedEvent3* pThis);
230
+ adlx_bool(ADLX_STD_CALL* IsPixelFormatChanged)(IADLXDisplaySettingsChangedEvent3* pThis);
231
+ adlx_bool(ADLX_STD_CALL* IsHDCPChanged)(IADLXDisplaySettingsChangedEvent3* pThis);
232
+ adlx_bool(ADLX_STD_CALL* IsCustomColorHueChanged)(IADLXDisplaySettingsChangedEvent3* pThis);
233
+ adlx_bool(ADLX_STD_CALL* IsCustomColorSaturationChanged)(IADLXDisplaySettingsChangedEvent3* pThis);
234
+ adlx_bool(ADLX_STD_CALL* IsCustomColorBrightnessChanged)(IADLXDisplaySettingsChangedEvent3* pThis);
235
+ adlx_bool(ADLX_STD_CALL* IsCustomColorTemperatureChanged)(IADLXDisplaySettingsChangedEvent3* pThis);
236
+ adlx_bool(ADLX_STD_CALL* IsCustomColorContrastChanged)(IADLXDisplaySettingsChangedEvent3* pThis);
237
+ adlx_bool(ADLX_STD_CALL* IsCustomResolutionChanged)(IADLXDisplaySettingsChangedEvent3* pThis);
238
+ adlx_bool(ADLX_STD_CALL* IsVariBrightChanged)(IADLXDisplaySettingsChangedEvent3* pThis);
239
+
240
+ // IADLXDisplaySettingsChangedEvent1 interface
241
+ adlx_bool(ADLX_STD_CALL* IsDisplayBlankingChanged)(IADLXDisplaySettingsChangedEvent3* pThis);
242
+
243
+ // IADLXDisplaySettingsChangedEvent2 interface
244
+ adlx_bool(ADLX_STD_CALL* IsDisplayConnectivityExperienceChanged)(IADLXDisplaySettingsChangedEvent3* pThis);
245
+
246
+ // IADLXDisplaySettingsChangedEvent3 interface
247
+ adlx_bool(ADLX_STD_CALL* IsDisplayDynamicRefreshRateControlChanged)(IADLXDisplaySettingsChangedEvent3* pThis);
248
+ adlx_bool(ADLX_STD_CALL* IsFreeSyncColorAccuracyChanged)(IADLXDisplaySettingsChangedEvent3* pThis);
249
+
250
+ } IADLXDisplaySettingsChangedEvent3Vtbl;
251
+
252
+ struct IADLXDisplaySettingsChangedEvent3 { const IADLXDisplaySettingsChangedEvent3Vtbl* pVtbl; };
253
+ #endif //__cplusplus
254
+ #pragma endregion IADLXDisplaySettingsChangedEvent3
255
+
256
+ #endif //ADLX_IDISPLAYS3_H