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,292 @@
1
+ //
2
+ // Copyright (c) 2023 - 2025 Advanced Micro Devices, Inc. All rights reserved.
3
+ //
4
+ //-------------------------------------------------------------------------------------------------
5
+
6
+ #ifndef ADLX_I3DSETTINGS1_H
7
+ #define ADLX_I3DSETTINGS1_H
8
+ #pragma once
9
+
10
+ #include "ADLXStructures.h"
11
+ #include "I3DSettings.h"
12
+
13
+
14
+ //-------------------------------------------------------------------------------------------------
15
+ //I3DSetting.h - Interfaces for ADLX GPU 3DSetting functionality
16
+
17
+ //3DAMDFluidMotionFrames interface
18
+ #pragma region IADLX3DAMDFluidMotionFrames
19
+ #if defined (__cplusplus)
20
+ namespace adlx
21
+ {
22
+ class ADLX_NO_VTABLE IADLX3DAMDFluidMotionFrames : public IADLXInterface
23
+ {
24
+ public:
25
+ ADLX_DECLARE_IID(L"IADLX3DAMDFluidMotionFrames")
26
+
27
+ /**
28
+ *@page DOX_IADLX3DAMDFluidMotionFrames_IsSupported IsSupported
29
+ *@ENG_START_DOX @brief Checks if AMD Fluid Motion Frames is supported. @ENG_END_DOX
30
+ *
31
+ *@syntax
32
+ *@codeStart
33
+ * @ref ADLX_RESULT IsSupported (adlx_bool* supported)
34
+ *@codeEnd
35
+ *
36
+ *@params
37
+ * @paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of AMD Fluid Motion Frames is returned. The variable is __true__ if AMD Fluid Motion Frames is supported. The variable is __false__ if AMD Fluid Motion Frames is not supported. @ENG_END_DOX}
38
+ *
39
+ *@retvalues
40
+ *@ENG_START_DOX If the state of AMD Fluid Motion Frames is successfully returned, __ADLX_OK__ is returned.<br>
41
+ * If the state of AMD Fluid Motion Frames is not successfully returned, an error code is returned.<br>
42
+ * Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
43
+ *
44
+ * @addinfo
45
+ * @ENG_START_DOX
46
+ * AMD Fluid Motion Frames is a frame generating feature to achieve higher in-game frame rates. <br>
47
+ *
48
+ * @ENG_END_DOX
49
+ *
50
+ *@copydoc IADLX3DAMDFluidMotionFrames_REQ_TABLE
51
+ *
52
+ */
53
+ virtual ADLX_RESULT ADLX_STD_CALL IsSupported(adlx_bool* supported) = 0;
54
+
55
+ /**
56
+ *@page DOX_IADLX3DAMDFluidMotionFrames_IsEnabled IsEnabled
57
+ *@ENG_START_DOX @brief Checks if AMD Fluid Motion Frames is enabled. @ENG_END_DOX
58
+ *
59
+ *@syntax
60
+ *@codeStart
61
+ * @ref ADLX_RESULT IsEnabled (adlx_bool* enabled)
62
+ *@codeEnd
63
+ *
64
+ *@params
65
+ * @paramrow{1.,[out],enabled,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of AMD Fluid Motion Frames is returned. The variable is __true__ if AMD Fluid Motion Frames is enabled. The variable is __false__ if AMD Fluid Motion Frames is not enabled. @ENG_END_DOX}
66
+ *
67
+ *@retvalues
68
+ *@ENG_START_DOX If the state of AMD Fluid Motion Frames is successfully returned, __ADLX_OK__ is returned.<br>
69
+ * If the state of AMD Fluid Motion Frames is not successfully returned, an error code is returned.<br>
70
+ * Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
71
+ *
72
+ * @addinfo
73
+ * @ENG_START_DOX
74
+ * AMD Fluid Motion Frames is a frame generating feature to achieve higher in-game frame rates. <br>
75
+ * @ENG_END_DOX
76
+ *
77
+ *@copydoc IADLX3DAMDFluidMotionFrames_REQ_TABLE
78
+ *
79
+ */
80
+ virtual ADLX_RESULT ADLX_STD_CALL IsEnabled(adlx_bool* enabled) = 0;
81
+
82
+ /**
83
+ *@page DOX_IADLX3DAMDFluidMotionFrames_SetEnabled SetEnabled
84
+ *@ENG_START_DOX @brief Sets the activation status of AMD Fluid Motion Frames. @ENG_END_DOX
85
+ *
86
+ *@syntax
87
+ *@codeStart
88
+ * @ref ADLX_RESULT SetEnabled (adlx_bool enable)
89
+ *@codeEnd
90
+ *
91
+ *@params
92
+ * @paramrow{1.,[in],enable,adlx_bool,@ENG_START_DOX The new AMD Fluid Motion Frames state. Set __true__ to enable AMD Fluid Motion Frames. Set __false__ to disable AMD Fluid Motion Frames. @ENG_END_DOX}
93
+ *
94
+ *@retvalues
95
+ *@ENG_START_DOX If the state of AMD Fluid Motion Frames is successfully set, __ADLX_OK__ is returned.<br>
96
+ * If the state of AMD Fluid Motion Frames is not successfully set, an error code is returned.<br>
97
+ * Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
98
+ *
99
+ * @addinfo
100
+ * @ENG_START_DOX
101
+ * AMD Fluid Motion Frames is a frame generating feature to achieve higher in-game frame rates. <br>
102
+ * @ENG_END_DOX
103
+ *
104
+ *@copydoc IADLX3DAMDFluidMotionFrames_REQ_TABLE
105
+ *
106
+ */
107
+ virtual ADLX_RESULT ADLX_STD_CALL SetEnabled(adlx_bool enable) = 0;
108
+ }; //IADLX3DAMDFluidMotionFrames
109
+ //----------------------------------------------------------------------------------------------
110
+ typedef IADLXInterfacePtr_T<IADLX3DAMDFluidMotionFrames> IADLX3DAMDFluidMotionFramesPtr;
111
+ } //namespace adlx
112
+ #else //__cplusplus
113
+ ADLX_DECLARE_IID(IADLX3DAMDFluidMotionFrames, L"IADLX3DAMDFluidMotionFrames")
114
+
115
+ typedef struct IADLX3DAMDFluidMotionFrames IADLX3DAMDFluidMotionFrames;
116
+
117
+ typedef struct IADLX3DAMDFluidMotionFramesVtbl
118
+ {
119
+ //IADLXInterface
120
+ adlx_long(ADLX_STD_CALL* Acquire)(IADLX3DAMDFluidMotionFrames* pThis);
121
+ adlx_long(ADLX_STD_CALL* Release)(IADLX3DAMDFluidMotionFrames* pThis);
122
+ ADLX_RESULT(ADLX_STD_CALL* QueryInterface)(IADLX3DAMDFluidMotionFrames* pThis, const wchar_t* interfaceId, void** ppInterface);
123
+
124
+ //IADLX3DAMDFluidMotionFrames
125
+ ADLX_RESULT(ADLX_STD_CALL* IsSupported) (IADLX3DAMDFluidMotionFrames* pThis, adlx_bool* supported);
126
+ ADLX_RESULT(ADLX_STD_CALL* IsEnabled) (IADLX3DAMDFluidMotionFrames* pThis, adlx_bool* enabled);
127
+ ADLX_RESULT(ADLX_STD_CALL* SetEnabled) (IADLX3DAMDFluidMotionFrames* pThis, adlx_bool enable);
128
+ }IADLX3DAMDFluidMotionFramesVtbl;
129
+
130
+ struct IADLX3DAMDFluidMotionFrames { const IADLX3DAMDFluidMotionFramesVtbl* pVtbl; };
131
+
132
+ #endif //__cplusplus
133
+ #pragma endregion IADLX3DAMDFluidMotionFrames
134
+
135
+ //3DSetting Services interface
136
+ #pragma region IADLX3DSettingsServices1
137
+ #if defined (__cplusplus)
138
+ namespace adlx
139
+ {
140
+ class ADLX_NO_VTABLE IADLX3DAMDFluidMotionFrames;
141
+ class ADLX_NO_VTABLE IADLX3DSettingsServices1 : public IADLX3DSettingsServices
142
+ {
143
+ public:
144
+ ADLX_DECLARE_IID(L"IADLX3DSettingsServices1")
145
+
146
+ /**
147
+ *@page DOX_IADLX3DSettingsServices1_GetAMDFluidMotionFrames GetAMDFluidMotionFrames
148
+ *@ENG_START_DOX @brief Gets the reference-counted AMD Fluid Motion Frames interface. @ENG_END_DOX
149
+ *
150
+ *@syntax
151
+ *@codeStart
152
+ * @ref ADLX_RESULT GetAMDFluidMotionFrames (@ref DOX_IADLX3DAMDFluidMotionFrames** pp3DAMDFluidMotionFrames)
153
+ *@codeEnd
154
+ *
155
+ *@params
156
+ *@paramrow{1.,[out] ,pp3DAMDFluidMotionFrames,@ref DOX_IADLX3DAMDFluidMotionFrames** ,@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 __*pp3DAMDFluidMotionFrames__ to __nullptr__. @ENG_END_DOX}
157
+ *
158
+ *@retvalues
159
+ *@ENG_START_DOX If the interface is successfully returned, __ADLX_OK__ is returned.<br>
160
+ * If the interface is not successfully returned, an error code is returned.<br>
161
+ * Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
162
+ *
163
+ *@detaileddesc
164
+ *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX
165
+ *
166
+ *@addinfo
167
+ *@ENG_START_DOX 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
168
+ *
169
+ *@copydoc IADLX3DSettingsServices1_REQ_TABLE
170
+ *
171
+ */
172
+ virtual ADLX_RESULT ADLX_STD_CALL GetAMDFluidMotionFrames(IADLX3DAMDFluidMotionFrames** pp3DAMDFluidMotionFrames) = 0;
173
+
174
+ }; //IADLX3DSettingsServices1
175
+ //----------------------------------------------------------------------------------------------
176
+ typedef IADLXInterfacePtr_T<IADLX3DSettingsServices1> IADLX3DSettingsServices1Ptr;
177
+ } //namespace adlx
178
+ #else //__cplusplus
179
+ ADLX_DECLARE_IID (IADLX3DSettingsServices1, L"IADLX3DSettingsServices1")
180
+ typedef struct IADLX3DSettingsServices1 IADLX3DSettingsServices1;
181
+
182
+ typedef struct IADLX3DSettingsServices1Vtbl
183
+ {
184
+ //IADLXInterface
185
+ adlx_long (ADLX_STD_CALL *Acquire)(IADLX3DSettingsServices1* pThis);
186
+ adlx_long (ADLX_STD_CALL *Release)(IADLX3DSettingsServices1* pThis);
187
+ ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLX3DSettingsServices1* pThis, const wchar_t* interfaceId, void** ppInterface);
188
+
189
+ //IADLX3DSettingsServices
190
+ ADLX_RESULT (ADLX_STD_CALL *GetAntiLag)(IADLX3DSettingsServices1* pThis, IADLXGPU* pGPU, IADLX3DAntiLag** pp3DAntiLag);
191
+ ADLX_RESULT (ADLX_STD_CALL *GetChill)(IADLX3DSettingsServices1* pThis, IADLXGPU* pGPU, IADLX3DChill** pp3DChill);
192
+ ADLX_RESULT (ADLX_STD_CALL *GetBoost)(IADLX3DSettingsServices1* pThis, IADLXGPU* pGPU, IADLX3DBoost** pp3DBoost);
193
+ ADLX_RESULT (ADLX_STD_CALL *GetImageSharpening)(IADLX3DSettingsServices1* pThis, IADLXGPU* pGPU, IADLX3DImageSharpening** pp3DImageSharpening);
194
+ ADLX_RESULT (ADLX_STD_CALL *GetEnhancedSync)(IADLX3DSettingsServices1* pThis, IADLXGPU* pGPU, IADLX3DEnhancedSync** pp3DEnhancedSync);
195
+ ADLX_RESULT (ADLX_STD_CALL *GetWaitForVerticalRefresh)(IADLX3DSettingsServices1* pThis, IADLXGPU* pGPU, IADLX3DWaitForVerticalRefresh** pp3DWaitForVerticalRefresh);
196
+ ADLX_RESULT (ADLX_STD_CALL *GetFrameRateTargetControl)(IADLX3DSettingsServices1* pThis, IADLXGPU* pGPU, IADLX3DFrameRateTargetControl** pp3DFrameRateTargetControl);
197
+ ADLX_RESULT (ADLX_STD_CALL *GetAntiAliasing)(IADLX3DSettingsServices1* pThis, IADLXGPU* pGPU, IADLX3DAntiAliasing** pp3DAntiAliasing);
198
+ ADLX_RESULT (ADLX_STD_CALL *GetMorphologicalAntiAliasing)(IADLX3DSettingsServices1* pThis, IADLXGPU* pGPU, IADLX3DMorphologicalAntiAliasing** pp3DMorphologicalAntiAliasing);
199
+ ADLX_RESULT (ADLX_STD_CALL *GetAnisotropicFiltering)(IADLX3DSettingsServices1* pThis, IADLXGPU* pGPU, IADLX3DAnisotropicFiltering** pp3DAnisotropicFiltering);
200
+ ADLX_RESULT (ADLX_STD_CALL *GetTessellation)(IADLX3DSettingsServices1* pThis, IADLXGPU* pGPU, IADLX3DTessellation** pp3DTessellation);
201
+ ADLX_RESULT (ADLX_STD_CALL *GetRadeonSuperResolution) (IADLX3DSettingsServices1* pThis, IADLX3DRadeonSuperResolution** pp3DRadeonSuperResolution);
202
+ ADLX_RESULT (ADLX_STD_CALL *GetResetShaderCache)(IADLX3DSettingsServices1* pThis, IADLXGPU* pGPU, IADLX3DResetShaderCache** pp3DResetShaderCache);
203
+ ADLX_RESULT (ADLX_STD_CALL *Get3DSettingsChangedHandling)(IADLX3DSettingsServices1* pThis, IADLX3DSettingsChangedHandling** pp3DSettingsChangedHandling);
204
+ ADLX_RESULT(ADLX_STD_CALL* GetAMDFluidMotionFrames) (IADLX3DSettingsServices1* pThis, IADLX3DAMDFluidMotionFrames** pp3DGetAMDFluidMotionFrames);
205
+ }IADLX3DSettingsServices1Vtbl;
206
+
207
+ struct IADLX3DSettingsServices1 { const IADLX3DSettingsServices1Vtbl *pVtbl; };
208
+ #endif //__cplusplus
209
+ #pragma endregion IADLX3DSettingsServices1
210
+
211
+
212
+ //Interface with information on 3D setting changes on a display. ADLX passes this to application that registered for 3D setting changed event in the IADLX3DSettingsChangedListener::On3DSettingsChanged()
213
+ #pragma region IADLX3DSettingsChangedEvent1
214
+ #if defined (__cplusplus)
215
+ namespace adlx
216
+ {
217
+ class ADLX_NO_VTABLE IADLXGPU;
218
+ class ADLX_NO_VTABLE IADLX3DSettingsChangedEvent1 : public IADLX3DSettingsChangedEvent
219
+ {
220
+ public:
221
+ ADLX_DECLARE_IID(L"IADLX3DSettingsChangedEvent1")
222
+
223
+ /**
224
+ *@page DOX_IADLX3DSettingsChangedEvent1_IsAMDFluidMotionFramesChanged IsAMDFluidMotionFramesChanged
225
+ *@ENG_START_DOX @brief Checks for changes to the AMD Fluid Motion Frames settings. @ENG_END_DOX
226
+ *
227
+ *@syntax
228
+ *@codeStart
229
+ * adlx_bool IsAMDFluidMotionFramesChanged ()
230
+ *@codeEnd
231
+ *
232
+ *@params
233
+ *N/A
234
+ *
235
+ *@retvalues
236
+ *@ENG_START_DOX If there are any changes to the AMD Fluid Motion Frames settings, __true__ is returned.<br>
237
+ * If there are no changes to the AMD Fluid Motion Frames settings, __false__ is returned.<br> @ENG_END_DOX
238
+ *
239
+ *
240
+ *@addinfo
241
+ *@ENG_START_DOX
242
+ * __Note:__ AMD Fluid Motion Frames settings are global for all the supported GPUs. For this event notification, @ref DOX_IADLX3DSettingsChangedEvent_GetGPU returns __nullpr__.
243
+ * @ENG_END_DOX
244
+ *
245
+ *@copydoc IADLX3DSettingsChangedEvent1_REQ_TABLE
246
+ *
247
+ */
248
+ virtual adlx_bool ADLX_STD_CALL IsAMDFluidMotionFramesChanged() = 0;
249
+
250
+ }; //IADLX3DSettingsChangedEvent
251
+ //----------------------------------------------------------------------------------------------
252
+ typedef IADLXInterfacePtr_T<IADLX3DSettingsChangedEvent1> IADLX3DSettingsChangedEvent1Ptr;
253
+ } //namespace adlx
254
+ #else //__cplusplus
255
+ ADLX_DECLARE_IID(IADLX3DSettingsChangedEvent1, L"IADLX3DSettingsChangedEvent1")
256
+ typedef struct IADLX3DSettingsChangedEvent1 IADLX3DSettingsChangedEvent1;
257
+
258
+ typedef struct IADLX3DSettingsChangedEvent1Vtbl
259
+ {
260
+ //IADLXInterface
261
+ adlx_long(ADLX_STD_CALL* Acquire)(IADLX3DSettingsChangedEvent1* pThis);
262
+ adlx_long(ADLX_STD_CALL* Release)(IADLX3DSettingsChangedEvent1* pThis);
263
+ ADLX_RESULT(ADLX_STD_CALL* QueryInterface)(IADLX3DSettingsChangedEvent1* pThis, const wchar_t* interfaceId, void** ppInterface);
264
+
265
+ //IADLXChangedEvent
266
+ ADLX_SYNC_ORIGIN(ADLX_STD_CALL* GetOrigin)(IADLX3DSettingsChangedEvent1* pThis);
267
+
268
+ // IADLX3DSettingsChangedEvent interface
269
+ ADLX_RESULT(ADLX_STD_CALL* GetGPU)(IADLX3DSettingsChangedEvent1* pThis, IADLXGPU** ppGPU);
270
+ adlx_bool(ADLX_STD_CALL* IsAntiLagChanged)(IADLX3DSettingsChangedEvent1* pThis);
271
+ adlx_bool(ADLX_STD_CALL* IsChillChanged)(IADLX3DSettingsChangedEvent1* pThis);
272
+ adlx_bool(ADLX_STD_CALL* IsBoostChanged)(IADLX3DSettingsChangedEvent1* pThis);
273
+ adlx_bool(ADLX_STD_CALL* IsImageSharpeningChanged)(IADLX3DSettingsChangedEvent1* pThis);
274
+ adlx_bool(ADLX_STD_CALL* IsEnhancedSyncChanged)(IADLX3DSettingsChangedEvent1* pThis);
275
+ adlx_bool(ADLX_STD_CALL* IsWaitForVerticalRefreshChanged)(IADLX3DSettingsChangedEvent1* pThis);
276
+ adlx_bool(ADLX_STD_CALL* IsFrameRateTargetControlChanged)(IADLX3DSettingsChangedEvent1* pThis);
277
+ adlx_bool(ADLX_STD_CALL* IsAntiAliasingChanged)(IADLX3DSettingsChangedEvent1* pThis);
278
+ adlx_bool(ADLX_STD_CALL* IsMorphologicalAntiAliasingChanged)(IADLX3DSettingsChangedEvent1* pThis);
279
+ adlx_bool(ADLX_STD_CALL* IsAnisotropicFilteringChanged)(IADLX3DSettingsChangedEvent1* pThis);
280
+ adlx_bool(ADLX_STD_CALL* IsTessellationModeChanged)(IADLX3DSettingsChangedEvent1* pThis);
281
+ adlx_bool(ADLX_STD_CALL* IsRadeonSuperResolutionChanged)(IADLX3DSettingsChangedEvent1* pThis);
282
+ adlx_bool(ADLX_STD_CALL* IsResetShaderCache)(IADLX3DSettingsChangedEvent1* pThis);
283
+ adlx_bool(ADLX_STD_CALL* IsAMDFluidMotionFramesChanged)(IADLX3DSettingsChangedEvent1* pThis);
284
+
285
+
286
+ } IADLX3DSettingsChangedEvent1Vtbl;
287
+
288
+ struct IADLX3DSettingsChangedEvent1 { const IADLX3DSettingsChangedEvent1Vtbl* pVtbl; };
289
+ #endif //__cplusplus
290
+ #pragma endregion IADLX3DSettingsChangedEvent1
291
+
292
+ #endif //ADLX_I3DSETTINGS1_H
@@ -0,0 +1,317 @@
1
+ //
2
+ // Copyright (c) 2023 - 2025 Advanced Micro Devices, Inc. All rights reserved.
3
+ //
4
+ //-------------------------------------------------------------------------------------------------
5
+
6
+ #ifndef ADLX_I3DSETTINGS2_H
7
+ #define ADLX_I3DSETTINGS2_H
8
+ #pragma once
9
+
10
+ #include "ADLXStructures.h"
11
+ #include "I3DSettings1.h"
12
+
13
+
14
+ //-------------------------------------------------------------------------------------------------
15
+ //I3DSetting.2h - Interfaces for ADLX GPU 3DSetting functionality
16
+
17
+ //3DSharpenDesktop interface
18
+ #pragma region IADLX3DImageSharpenDesktop
19
+ #if defined (__cplusplus)
20
+ namespace adlx
21
+ {
22
+ class ADLX_NO_VTABLE IADLX3DImageSharpenDesktop : public IADLXInterface
23
+ {
24
+ public:
25
+ ADLX_DECLARE_IID(L"IADLX3DImageSharpenDesktop")
26
+
27
+ /**
28
+ *@page DOX_IADLX3DImageSharpenDesktop_IsSupported IsSupported
29
+ *@ENG_START_DOX @brief Checks if Sharpen Desktop is supported on a GPU. @ENG_END_DOX
30
+ *
31
+ *@syntax
32
+ *@codeStart
33
+ * @ref ADLX_RESULT IsSupported (adlx_bool* supported)
34
+ *@codeEnd
35
+ *
36
+ *@params
37
+ * @paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of Sharpen Desktop is returned. The variable is __true__ if Sharpen Desktop is supported. The variable is __false__ if Sharpen Desktop is not supported. @ENG_END_DOX}
38
+ *
39
+ *@retvalues
40
+ *@ENG_START_DOX If the state of Sharpen Desktop is successfully returned, __ADLX_OK__ is returned.<br>
41
+ * If the state of Sharpen Desktop is not successfully returned, an error code is returned.<br>
42
+ * Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
43
+ *
44
+ * @addinfo
45
+ * @ENG_START_DOX
46
+ * Sharpen Desktop restores clarity softened by other effects to all the desktop visuals, for both windowed applications and for applications that run in fullscreen exclusive mode. <br>
47
+ * @ENG_END_DOX
48
+ *
49
+ *
50
+ *@copydoc IADLX3DImageSharpenDesktop_REQ_TABLE
51
+ *
52
+ */
53
+ virtual ADLX_RESULT ADLX_STD_CALL IsSupported(adlx_bool* supported) = 0;
54
+
55
+ /**
56
+ *@page DOX_IADLX3DImageSharpenDesktop_IsEnabled IsEnabled
57
+ *@ENG_START_DOX @brief Checks if Sharpen Desktop is enabled on a GPU. @ENG_END_DOX
58
+ *
59
+ *@syntax
60
+ *@codeStart
61
+ * @ref ADLX_RESULT IsEnabled (adlx_bool* enabled)
62
+ *@codeEnd
63
+ *
64
+ *@params
65
+ * @paramrow{1.,[out],enabled,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of Sharpen Desktop is returned. The variable is __true__ if Sharpen Desktop is enabled. The variable is __false__ if Sharpen Desktop is not enabled. @ENG_END_DOX}
66
+ *
67
+ *@retvalues
68
+ *@ENG_START_DOX If the state of Sharpen Desktop is successfully returned, __ADLX_OK__ is returned.<br>
69
+ * If the state of Sharpen Desktop is not successfully returned, an error code is returned.<br>
70
+ * Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
71
+ *
72
+ * @addinfo
73
+ * @ENG_START_DOX
74
+ * Sharpen Desktop restores clarity softened by other effects to all the desktop visuals, for both windowed applications and for applications that run in fullscreen exclusive mode. <br>
75
+ * @ENG_END_DOX
76
+ *
77
+ * @depifc
78
+ *
79
+ * Sharpen Desktop requires @ref DOX_IADLX3DImageSharpening "AMD Radeon™ Image Sharpening".<br>
80
+
81
+ * When AMD Radeon Image sharpening is enabled and Sharpen Desktop is enabled, the sharpening is applied for both windowed applications and for applications that run in fullscreen exclusive mode.<br>
82
+
83
+ * When AMD Radeon Image sharpening is enabled and Sharpen Desktop is disabled, the sharpening is only applied to applications that run in fullscreen exclusive mode.<br>
84
+
85
+ * When AMD Radeon™ Image sharpening is disabled and Sharpen Desktop is enabled, Sharpen Desktop remains in enabled state, but the value is ignored.<br>
86
+
87
+ * @ENG_END_DOX
88
+ *
89
+ *@copydoc IADLX3DImageSharpenDesktop_REQ_TABLE
90
+ *
91
+ */
92
+ virtual ADLX_RESULT ADLX_STD_CALL IsEnabled(adlx_bool* enabled) = 0;
93
+
94
+ /**
95
+ *@page DOX_IADLX3DImageSharpenDesktop_SetEnabled SetEnabled
96
+ *@ENG_START_DOX @brief Sets Sharpen Desktop to enabled or disabled on a GPU. @ENG_END_DOX
97
+ *
98
+ *@syntax
99
+ *@codeStart
100
+ * @ref ADLX_RESULT SetEnabled (adlx_bool enable)
101
+ *@codeEnd
102
+ *
103
+ *@params
104
+ * @paramrow{1.,[in],enable,adlx_bool,@ENG_START_DOX The new Sharpen Desktop state. Set __true__ to enable Sharpen Desktop. Set __false__ to disable Sharpen Desktop. @ENG_END_DOX}
105
+ *
106
+ *@retvalues
107
+ *@ENG_START_DOX If the state of Sharpen Desktop is successfully set, __ADLX_OK__ is returned.<br>
108
+ * If the state of Sharpen Desktop is not successfully set, an error code is returned.<br>
109
+ * Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
110
+ *
111
+ * @addinfo
112
+ * @ENG_START_DOX
113
+ * Sharpen Desktop restores clarity softened by other effects to all the desktop visuals, for both windowed applications and for applications that run in fullscreen exclusive mode. <br>
114
+ * @ENG_END_DOX
115
+ *
116
+ * @depifc
117
+ *
118
+ * Sharpen Desktop requires @ref DOX_IADLX3DImageSharpening "AMD Radeon™ Image Sharpening".<br>
119
+
120
+ * When AMD Radeon Image sharpening is enabled and Sharpen Desktop is enabled, the sharpening is applied for both windowed applications and for applications that run in fullscreen exclusive mode.<br>
121
+
122
+ * When AMD Radeon Image sharpening is enabled and Sharpen Desktop is disabled, the sharpening is only applied to applications that run in fullscreen exclusive mode.<br>
123
+
124
+ * When AMD Radeon™ Image sharpening is disabled and Sharpen Desktop is enabled, Sharpen Desktop remains in enabled state, but the value is ignored.<br>
125
+ *
126
+ * @ENG_END_DOX
127
+ *
128
+ *@copydoc IADLX3DImageSharpenDesktop_REQ_TABLE
129
+ *
130
+ */
131
+ virtual ADLX_RESULT ADLX_STD_CALL SetEnabled(adlx_bool enable) = 0;
132
+ }; //IADLX3DImageSharpenDesktop
133
+ //----------------------------------------------------------------------------------------------
134
+ typedef IADLXInterfacePtr_T<IADLX3DImageSharpenDesktop> IADLX3DImageSharpenDesktopPtr;
135
+ } //namespace adlx
136
+ #else //__cplusplus
137
+ ADLX_DECLARE_IID(IADLX3DImageSharpenDesktop, L"IADLX3DImageSharpenDesktop")
138
+
139
+ typedef struct IADLX3DImageSharpenDesktop IADLX3DImageSharpenDesktop;
140
+
141
+ typedef struct IADLX3DImageSharpenDesktopVtbl
142
+ {
143
+ //IADLXInterface
144
+ adlx_long(ADLX_STD_CALL* Acquire)(IADLX3DImageSharpenDesktop* pThis);
145
+ adlx_long(ADLX_STD_CALL* Release)(IADLX3DImageSharpenDesktop* pThis);
146
+ ADLX_RESULT(ADLX_STD_CALL* QueryInterface)(IADLX3DImageSharpenDesktop* pThis, const wchar_t* interfaceId, void** ppInterface);
147
+
148
+ //IADLX3DImageSharpenDesktop
149
+ ADLX_RESULT(ADLX_STD_CALL* IsSupported) (IADLX3DImageSharpenDesktop* pThis, adlx_bool* supported);
150
+ ADLX_RESULT(ADLX_STD_CALL* IsEnabled) (IADLX3DImageSharpenDesktop* pThis, adlx_bool* enabled);
151
+ ADLX_RESULT(ADLX_STD_CALL* SetEnabled) (IADLX3DImageSharpenDesktop* pThis, adlx_bool enable);
152
+ }IADLX3DImageSharpenDesktopVtbl;
153
+
154
+ struct IADLX3DImageSharpenDesktop { const IADLX3DImageSharpenDesktopVtbl* pVtbl; };
155
+
156
+ #endif //__cplusplus
157
+ #pragma endregion IADLX3DImageSharpenDesktop
158
+
159
+ //3DSetting Services interface
160
+ #pragma region IADLX3DSettingsServices2
161
+ #if defined (__cplusplus)
162
+ namespace adlx
163
+ {
164
+ class ADLX_NO_VTABLE IADLX3DSettingsServices2 : public IADLX3DSettingsServices1
165
+ {
166
+ public:
167
+ ADLX_DECLARE_IID(L"IADLX3DSettingsServices2")
168
+
169
+ /**
170
+ *@page DOX_IADLX3DSettingsServices2_GetImageSharpenDesktop GetImageSharpenDesktop
171
+ *@ENG_START_DOX @brief Gets the reference-counted Sharpen Desktop interface of a GPU. @ENG_END_DOX
172
+ *
173
+ *@syntax
174
+ *@codeStart
175
+ * @ref ADLX_RESULT GetImageSharpenDesktop (@ref DOX_IADLXGPU* pGPU, @ref DOX_IADLX3DImageSharpenDesktop** pp3DImageSharpenDesktop)
176
+
177
+ *@codeEnd
178
+ *
179
+ *@params
180
+ *@paramrow{1.,[in] ,pGPU,@ref DOX_IADLXGPU* ,@ENG_START_DOX The pointer to the GPU interface. @ENG_END_DOX}
181
+ *@paramrow{2.,[out] ,pp3DImageSharpenDesktop,@ref DOX_IADLX3DImageSharpenDesktop** ,@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 __*pp3DImageSharpenDesktop__ to __nullptr__. @ENG_END_DOX}
182
+ *
183
+ *@retvalues
184
+ *@ENG_START_DOX If the interface is successfully returned, __ADLX_OK__ is returned.<br>
185
+ * If the interface is not successfully returned, an error code is returned.<br>
186
+ * Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
187
+ *
188
+ *@detaileddesc
189
+ *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX
190
+ *
191
+ *@addinfo
192
+ *@ENG_START_DOX 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
193
+ *
194
+ *@copydoc IADLX3DSettingsServices2_REQ_TABLE
195
+ *
196
+ */
197
+ virtual ADLX_RESULT ADLX_STD_CALL GetImageSharpenDesktop(IADLXGPU* pGPU,IADLX3DImageSharpenDesktop** pp3DImageSharpenDesktop) = 0;
198
+
199
+ }; //IADLX3DSettingsServices1
200
+ //----------------------------------------------------------------------------------------------
201
+ typedef IADLXInterfacePtr_T<IADLX3DSettingsServices2> IADLX3DSettingsServices2Ptr;
202
+ } //namespace adlx
203
+ #else //__cplusplus
204
+ ADLX_DECLARE_IID (IADLX3DSettingsServices2, L"IADLX3DSettingsServices2")
205
+ typedef struct IADLX3DSettingsServices2 IADLX3DSettingsServices2;
206
+
207
+ typedef struct IADLX3DSettingsServices2Vtbl
208
+ {
209
+ //IADLXInterface
210
+ adlx_long (ADLX_STD_CALL *Acquire)(IADLX3DSettingsServices2* pThis);
211
+ adlx_long (ADLX_STD_CALL *Release)(IADLX3DSettingsServices2* pThis);
212
+ ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLX3DSettingsServices2* pThis, const wchar_t* interfaceId, void** ppInterface);
213
+
214
+ //IADLX3DSettingsServices
215
+ ADLX_RESULT (ADLX_STD_CALL *GetAntiLag)(IADLX3DSettingsServices2* pThis, IADLXGPU* pGPU, IADLX3DAntiLag** pp3DAntiLag);
216
+ ADLX_RESULT (ADLX_STD_CALL *GetChill)(IADLX3DSettingsServices2* pThis, IADLXGPU* pGPU, IADLX3DChill** pp3DChill);
217
+ ADLX_RESULT (ADLX_STD_CALL *GetBoost)(IADLX3DSettingsServices2* pThis, IADLXGPU* pGPU, IADLX3DBoost** pp3DBoost);
218
+ ADLX_RESULT (ADLX_STD_CALL *GetImageSharpening)(IADLX3DSettingsServices2* pThis, IADLXGPU* pGPU, IADLX3DImageSharpening** pp3DImageSharpening);
219
+ ADLX_RESULT (ADLX_STD_CALL *GetEnhancedSync)(IADLX3DSettingsServices2* pThis, IADLXGPU* pGPU, IADLX3DEnhancedSync** pp3DEnhancedSync);
220
+ ADLX_RESULT (ADLX_STD_CALL *GetWaitForVerticalRefresh)(IADLX3DSettingsServices2* pThis, IADLXGPU* pGPU, IADLX3DWaitForVerticalRefresh** pp3DWaitForVerticalRefresh);
221
+ ADLX_RESULT (ADLX_STD_CALL *GetFrameRateTargetControl)(IADLX3DSettingsServices2* pThis, IADLXGPU* pGPU, IADLX3DFrameRateTargetControl** pp3DFrameRateTargetControl);
222
+ ADLX_RESULT (ADLX_STD_CALL *GetAntiAliasing)(IADLX3DSettingsServices2* pThis, IADLXGPU* pGPU, IADLX3DAntiAliasing** pp3DAntiAliasing);
223
+ ADLX_RESULT (ADLX_STD_CALL *GetMorphologicalAntiAliasing)(IADLX3DSettingsServices2* pThis, IADLXGPU* pGPU, IADLX3DMorphologicalAntiAliasing** pp3DMorphologicalAntiAliasing);
224
+ ADLX_RESULT (ADLX_STD_CALL *GetAnisotropicFiltering)(IADLX3DSettingsServices2* pThis, IADLXGPU* pGPU, IADLX3DAnisotropicFiltering** pp3DAnisotropicFiltering);
225
+ ADLX_RESULT (ADLX_STD_CALL *GetTessellation)(IADLX3DSettingsServices2* pThis, IADLXGPU* pGPU, IADLX3DTessellation** pp3DTessellation);
226
+ ADLX_RESULT (ADLX_STD_CALL *GetRadeonSuperResolution) (IADLX3DSettingsServices2* pThis, IADLX3DRadeonSuperResolution** pp3DRadeonSuperResolution);
227
+ ADLX_RESULT (ADLX_STD_CALL *GetResetShaderCache)(IADLX3DSettingsServices2* pThis, IADLXGPU* pGPU, IADLX3DResetShaderCache** pp3DResetShaderCache);
228
+ ADLX_RESULT (ADLX_STD_CALL *Get3DSettingsChangedHandling)(IADLX3DSettingsServices2* pThis, IADLX3DSettingsChangedHandling** pp3DSettingsChangedHandling);
229
+ ADLX_RESULT(ADLX_STD_CALL* GetAMDFluidMotionFrames) (IADLX3DSettingsServices2* pThis, IADLX3DAMDFluidMotionFrames** pp3DGetAMDFluidMotionFrames);
230
+ ADLX_RESULT(ADLX_STD_CALL* GetImageSharpenDesktop) (IADLX3DSettingsServices2* pThis, IADLXGPU* pGPU, IADLX3DImageSharpenDesktop** pp3DImageSharpenDesktop);
231
+
232
+ }IADLX3DSettingsServices2Vtbl;
233
+
234
+ struct IADLX3DSettingsServices2 { const IADLX3DSettingsServices2Vtbl *pVtbl; };
235
+ #endif //__cplusplus
236
+ #pragma endregion IADLX3DSettingsServices2
237
+
238
+ //Interface with information on 3D setting changes on a GPU. ADLX passes this to application that registered for 3D setting changed event in the IADLX3DSettingsChangedListener::On3DSettingsChanged()
239
+ #pragma region IADLX3DSettingsChangedEvent2
240
+ #if defined (__cplusplus)
241
+ namespace adlx
242
+ {
243
+ class ADLX_NO_VTABLE IADLXGPU;
244
+ class ADLX_NO_VTABLE IADLX3DSettingsChangedEvent2 : public IADLX3DSettingsChangedEvent1
245
+ {
246
+ public:
247
+ ADLX_DECLARE_IID(L"IADLX3DSettingsChangedEvent2")
248
+
249
+ /**
250
+ *@page DOX_IADLX3DSettingsChangedEvent2_IsImageSharpenDesktopChanged IsImageSharpenDesktopChanged
251
+ *@ENG_START_DOX @brief Checks for changes to the Sharpen Desktop settings. @ENG_END_DOX
252
+ *
253
+ *@syntax
254
+ *@codeStart
255
+ * adlx_bool IsImageSharpenDesktopChanged ()
256
+ *@codeEnd
257
+ *
258
+ *@params
259
+ *N/A
260
+ *
261
+ *@retvalues
262
+ *@ENG_START_DOX If there are any changes to the Sharpen Desktop settings, __true__ is returned.<br>
263
+ * If there are on changes to the Sharpen Desktop settings, __false__ is returned.<br> @ENG_END_DOX
264
+ *
265
+ *@addinfo
266
+ *@ENG_START_DOX
267
+ * __Note:__ To obtain the GPU, use @ref DOX_IADLX3DSettingsChangedEvent_GetGPU.
268
+ * @ENG_END_DOX
269
+ *
270
+ *@copydoc IADLX3DSettingsChangedEvent2_REQ_TABLE
271
+ *
272
+ */
273
+ virtual adlx_bool ADLX_STD_CALL IsImageSharpenDesktopChanged() = 0;
274
+
275
+ }; //IADLX3DSettingsChangedEvent
276
+ //----------------------------------------------------------------------------------------------
277
+ typedef IADLXInterfacePtr_T<IADLX3DSettingsChangedEvent2> IADLX3DSettingsChangedEvent2Ptr;
278
+ } //namespace adlx
279
+ #else //__cplusplus
280
+ ADLX_DECLARE_IID(IADLX3DSettingsChangedEvent2, L"IADLX3DSettingsChangedEvent2")
281
+ typedef struct IADLX3DSettingsChangedEvent2 IADLX3DSettingsChangedEvent2;
282
+
283
+ typedef struct IADLX3DSettingsChangedEvent2Vtbl
284
+ {
285
+ //IADLXInterface
286
+ adlx_long(ADLX_STD_CALL* Acquire)(IADLX3DSettingsChangedEvent2* pThis);
287
+ adlx_long(ADLX_STD_CALL* Release)(IADLX3DSettingsChangedEvent2* pThis);
288
+ ADLX_RESULT(ADLX_STD_CALL* QueryInterface)(IADLX3DSettingsChangedEvent2* pThis, const wchar_t* interfaceId, void** ppInterface);
289
+
290
+ //IADLXChangedEvent
291
+ ADLX_SYNC_ORIGIN(ADLX_STD_CALL* GetOrigin)(IADLX3DSettingsChangedEvent2* pThis);
292
+
293
+ // IADLX3DSettingsChangedEvent interface
294
+ ADLX_RESULT(ADLX_STD_CALL* GetGPU)(IADLX3DSettingsChangedEvent2* pThis, IADLXGPU** ppGPU);
295
+ adlx_bool(ADLX_STD_CALL* IsAntiLagChanged)(IADLX3DSettingsChangedEvent2* pThis);
296
+ adlx_bool(ADLX_STD_CALL* IsChillChanged)(IADLX3DSettingsChangedEvent2* pThis);
297
+ adlx_bool(ADLX_STD_CALL* IsBoostChanged)(IADLX3DSettingsChangedEvent2* pThis);
298
+ adlx_bool(ADLX_STD_CALL* IsImageSharpeningChanged)(IADLX3DSettingsChangedEvent2* pThis);
299
+ adlx_bool(ADLX_STD_CALL* IsEnhancedSyncChanged)(IADLX3DSettingsChangedEvent2* pThis);
300
+ adlx_bool(ADLX_STD_CALL* IsWaitForVerticalRefreshChanged)(IADLX3DSettingsChangedEvent2* pThis);
301
+ adlx_bool(ADLX_STD_CALL* IsFrameRateTargetControlChanged)(IADLX3DSettingsChangedEvent2* pThis);
302
+ adlx_bool(ADLX_STD_CALL* IsAntiAliasingChanged)(IADLX3DSettingsChangedEvent2* pThis);
303
+ adlx_bool(ADLX_STD_CALL* IsMorphologicalAntiAliasingChanged)(IADLX3DSettingsChangedEvent2* pThis);
304
+ adlx_bool(ADLX_STD_CALL* IsAnisotropicFilteringChanged)(IADLX3DSettingsChangedEvent2* pThis);
305
+ adlx_bool(ADLX_STD_CALL* IsTessellationModeChanged)(IADLX3DSettingsChangedEvent2* pThis);
306
+ adlx_bool(ADLX_STD_CALL* IsRadeonSuperResolutionChanged)(IADLX3DSettingsChangedEvent2* pThis);
307
+ adlx_bool(ADLX_STD_CALL* IsResetShaderCache)(IADLX3DSettingsChangedEvent2* pThis);
308
+ adlx_bool(ADLX_STD_CALL* IsAMDFluidMotionFramesChanged)(IADLX3DSettingsChangedEvent2* pThis);
309
+ adlx_bool(ADLX_STD_CALL* IsImageSharpenDesktopChanged)(IADLX3DSettingsChangedEvent2* pThis);
310
+
311
+ } IADLX3DSettingsChangedEvent2Vtbl;
312
+
313
+ struct IADLX3DSettingsChangedEvent2 { const IADLX3DSettingsChangedEvent2Vtbl* pVtbl; };
314
+ #endif //__cplusplus
315
+ #pragma endregion IADLX3DSettingsChangedEvent2
316
+
317
+ #endif //ADLX_I3DSETTINGS2_H