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,683 @@
1
+ //
2
+ // Copyright (c) 2021 - 2025 Advanced Micro Devices, Inc. All rights reserved.
3
+ //
4
+ //-------------------------------------------------------------------------------------------------
5
+
6
+ #ifndef ADLX_IDISPLAYGAMMA_H
7
+ #define ADLX_IDISPLAYGAMMA_H
8
+ #pragma once
9
+
10
+ #include "ADLXStructures.h"
11
+
12
+ //-------------------------------------------------------------------------------------------------
13
+ //IDisplayGamma.h - Interfaces for ADLX Display Gamma functionality
14
+
15
+ //The DisplayGamma object implements this interface
16
+ #pragma region IADLXDisplayGamma interface
17
+ #if defined (__cplusplus)
18
+ namespace adlx
19
+ {
20
+ class ADLX_NO_VTABLE IADLXDisplayGamma : public IADLXInterface
21
+ {
22
+ public:
23
+ ADLX_DECLARE_IID (L"IADLXDisplayGamma")
24
+
25
+ /**
26
+ *@page DOX_IADLXDisplayGamma_IsCurrentReGammaRamp IsCurrentReGammaRamp
27
+ *@ENG_START_DOX @brief Checks if re-gamma ramp is used by a display. @ENG_END_DOX
28
+ *
29
+ *@syntax
30
+ *@codeStart
31
+ * @ref ADLX_RESULT IsCurrentReGammaRamp (adlx_bool* isReGammaRamp)
32
+ *@codeEnd
33
+ *
34
+ *@params
35
+ *@paramrow{1.,[out] ,IsReGammaRamp,adlx_bool* ,@ENG_START_DOX The pointer to a variable where the state of re-gamma ramp is returned. The variable is __true__ if re-gamma ramp is used. The variable is __false__ if re-gamma ramp is not used. @ENG_END_DOX}
36
+ *
37
+ *@retvalues
38
+ *@ENG_START_DOX If the state of re-gamma ramp is successfully returned, __ADLX_OK__ is returned. <br>
39
+ * If the state of re-gamma ramp is not successfully returned, an error code is returned. <br>
40
+ * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
41
+ *
42
+ *@copydoc IADLXDisplayGamma_REQ_TABLE
43
+ *
44
+ */
45
+ virtual ADLX_RESULT ADLX_STD_CALL IsCurrentReGammaRamp (adlx_bool* isReGammaRamp) = 0;
46
+
47
+ /**
48
+ *@page DOX_IADLXDisplayGamma_IsCurrentDeGammaRamp IsCurrentDeGammaRamp
49
+ *@ENG_START_DOX @brief Checks if de-gamma ramp is used by a display. @ENG_END_DOX
50
+ *
51
+ *@syntax
52
+ *@codeStart
53
+ * @ref ADLX_RESULT IsCurrentDeGammaRamp (adlx_bool* isDeGammaRamp)
54
+ *@codeEnd
55
+ *
56
+ *@params
57
+ *@paramrow{1.,[out] ,IsDeGammaRamp,adlx_bool* ,@ENG_START_DOX The pointer to a variable where the state of de-gamma ramp is returned. The variable is __true__ if de-gamma ramp is used. The variable is __false__ if de-gamma ramp is not used. @ENG_END_DOX}
58
+ *
59
+ *@retvalues
60
+ *@ENG_START_DOX If the state of de-gamma ramp is successfully returned, __ADLX_OK__ is returned. <br>
61
+ * If the state of de-gamma ramp is not successfully returned, an error code is returned. <br>
62
+ * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
63
+ *
64
+ *@copydoc IADLXDisplayGamma_REQ_TABLE
65
+ *
66
+ */
67
+ virtual ADLX_RESULT ADLX_STD_CALL IsCurrentDeGammaRamp (adlx_bool* isDeGammaRamp) = 0;
68
+
69
+ /**
70
+ *@page DOX_IADLXDisplayGamma_IsCurrentRegammaCoefficient IsCurrentRegammaCoefficient
71
+ *@ENG_START_DOX @brief Checks if re-gamma coefficient is used by a display. @ENG_END_DOX
72
+ *
73
+ *@syntax
74
+ *@codeStart
75
+ * @ref ADLX_RESULT IsCurrentRegammaCoefficient (adlx_bool* isRegammaCoeff)
76
+ *@codeEnd
77
+ *
78
+ *@params
79
+ *@paramrow{1.,[out] ,IsRegammaCoeff,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of re-gamma coefficient is returned. The variable is __true__ if re-gamma coefficient is used. The variable is __false__ if re-gamma coefficient is not used. @ENG_END_DOX}
80
+ *
81
+ *@retvalues
82
+ *@ENG_START_DOX If the state of re-gamma coefficient is successfully returned, __ADLX_OK__ is returned. <br>
83
+ * If the state of re-gamma coefficient is not successfully returned, an error code is returned. <br>
84
+ * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
85
+ *
86
+ *@copydoc IADLXDisplayGamma_REQ_TABLE
87
+ *
88
+ */
89
+ virtual ADLX_RESULT ADLX_STD_CALL IsCurrentRegammaCoefficient (adlx_bool* isRegammaCoeff) = 0;
90
+
91
+ /**
92
+ *@page DOX_IADLXDisplayGamma_GetGammaRamp GetGammaRamp
93
+ *@ENG_START_DOX @brief Gets the gamma ramp LUT on a display. @ENG_END_DOX
94
+ *
95
+ *@syntax
96
+ *@codeStart
97
+ * @ref ADLX_RESULT GetGammaRamp (@ref ADLX_GammaRamp* lut)
98
+ *@codeEnd
99
+ *
100
+ *@params
101
+ *@paramrow{1.,[out] ,lut,@ref ADLX_GammaRamp*,@ENG_START_DOX The pointer to a variable where the gamma ramp LUT is returned. @ENG_END_DOX}
102
+ *
103
+ *@retvalues
104
+ *@ENG_START_DOX If the gamma ramp LUT is successfully returned, __ADLX_OK__ is returned. <br>
105
+ * If the gamma ramp LUT is not successfully returned, an error code is returned. <br>
106
+ * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
107
+ *
108
+ *@copydoc IADLXDisplayGamma_REQ_TABLE
109
+ *
110
+ */
111
+ virtual ADLX_RESULT ADLX_STD_CALL GetGammaRamp (ADLX_GammaRamp* lut) = 0;
112
+
113
+ /**
114
+ *@page DOX_IADLXDisplayGamma_GetGammaCoefficient GetGammaCoefficient
115
+ *@ENG_START_DOX @brief Gets the re-gamma coefficient settings on a display. @ENG_END_DOX
116
+ *
117
+ *@syntax
118
+ *@codeStart
119
+ * @ref ADLX_RESULT GetGammaCoefficient (@ref ADLX_RegammaCoeff* coeff)
120
+ *@codeEnd
121
+ *
122
+ *@params
123
+ *@paramrow{1.,[out] ,coeff,@ref ADLX_RegammaCoeff* ,@ENG_START_DOX The pointer to a variable where the re-gamma coefficient settings are returned. @ENG_END_DOX}
124
+ *
125
+ *@retvalues
126
+ *@ENG_START_DOX If the re-gamma coefficient settings are successfully returned, __ADLX_OK__ is returned. <br>
127
+ * If the re-gamma coefficient settings are not successfully returned, an error code is returned. <br>
128
+ * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
129
+ *
130
+ *@detaileddesc
131
+ *@ENG_START_DOX @details @ENG_END_DOX
132
+ *
133
+ *@copydoc IADLXDisplayGamma_REQ_TABLE
134
+ *
135
+ */
136
+ virtual ADLX_RESULT ADLX_STD_CALL GetGammaCoefficient (ADLX_RegammaCoeff* coeff) = 0;
137
+
138
+ /**
139
+ *@page DOX_IADLXDisplayGamma_IsSupportedReGammaSRGB IsSupportedReGammaSRGB
140
+ *@ENG_START_DOX @brief Checks if the sRGB re-gamma is supported on a display. @ENG_END_DOX
141
+ *
142
+ *@syntax
143
+ *@codeStart
144
+ * @ref ADLX_RESULT IsSupportedReGammaSRGB (adlx_bool* isSupportedRegammaSRGB)
145
+ *@codeEnd
146
+ *
147
+ *@params
148
+ *@paramrow{1.,[out] ,isSupportedRegammaSRGB,adlx_bool* ,@ENG_START_DOX The pointer to a variable where the state of sRGB re-gamma is returned. The variable is __true__ if sRGB re-gamma is supported. The variable is __false__ if sRGB re-gamma is not supported. @ENG_END_DOX}
149
+ *
150
+ *@retvalues
151
+ *@ENG_START_DOX If the state of sRGB re-gamma is successfully returned, __ADLX_OK__ is returned. <br>
152
+ * If the state of sRGB re-gamma is not successfully returned, an error code is returned. <br>
153
+ * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
154
+ *
155
+ *@copydoc IADLXDisplayGamma_REQ_TABLE
156
+ *
157
+ */
158
+ virtual ADLX_RESULT ADLX_STD_CALL IsSupportedReGammaSRGB (adlx_bool* isSupportedRegammaSRGB) = 0;
159
+
160
+ /**
161
+ *@page DOX_IADLXDisplayGamma_IsSupportedReGammaBT709 IsSupportedReGammaBT709
162
+ *@ENG_START_DOX @brief Checks if the BT709 re-gamma is supported on a display. @ENG_END_DOX
163
+ *
164
+ *@syntax
165
+ *@codeStart
166
+ * @ref ADLX_RESULT IsSupportedReGammaBT709 (adlx_bool* isSupportedReGammaBT709)
167
+ *@codeEnd
168
+ *
169
+ *@params
170
+ *@paramrow{1.,[out] ,IsSupportedReGammaBT709,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of BT709 re-gamma is returned. The variable is __true__ if BT709 re-gamma is supported. The variable is __false__ if BT709 re-gamma is not supported. @ENG_END_DOX}
171
+ *
172
+ *@retvalues
173
+ *@ENG_START_DOX If the state of BT709 re-gamma is successfully returned, __ADLX_OK__ is returned. <br>
174
+ * If the state of BT709 re-gamma is not successfully returned, an error code is returned. <br>
175
+ * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
176
+ *
177
+ *@copydoc IADLXDisplayGamma_REQ_TABLE
178
+ *
179
+ */
180
+ virtual ADLX_RESULT ADLX_STD_CALL IsSupportedReGammaBT709 (adlx_bool* isSupportedReGammaBT709) = 0;
181
+
182
+ /**
183
+ *@page DOX_IADLXDisplayGamma_IsSupportedReGammaPQ IsSupportedReGammaPQ
184
+ *@ENG_START_DOX @brief Checks if the PQ re-gamma is supported on a display. @ENG_END_DOX
185
+ *
186
+ *@syntax
187
+ *@codeStart
188
+ * @ref ADLX_RESULT IsSupportedReGammaPQ (adlx_bool* isSupportedReGammaPQ)
189
+ *@codeEnd
190
+ *
191
+ *@params
192
+ *@paramrow{1.,[out] ,IsSupportedReGammaPQ,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of PQ re-gamma is returned. The variable is __true__ if PQ re-gamma is supported. The variable is __false__ if PQ re-gamma is not supported. @ENG_END_DOX}
193
+ *
194
+ *@retvalues
195
+ *@ENG_START_DOX If the state of PQ re-gamma is successfully returned, __ADLX_OK__ is returned. <br>
196
+ * If the state of PQ re-gamma is not successfully returned, an error code is returned. <br>
197
+ * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
198
+ *
199
+ *@copydoc IADLXDisplayGamma_REQ_TABLE
200
+ *
201
+ */
202
+ virtual ADLX_RESULT ADLX_STD_CALL IsSupportedReGammaPQ (adlx_bool* isSupportedReGammaPQ) = 0;
203
+
204
+ /**
205
+ *@page DOX_IADLXDisplayGamma_IsSupportedReGammaPQ2084Interim IsSupportedReGammaPQ2084Interim
206
+ *@ENG_START_DOX @brief Checks if the PQ2084 re-gamma curve is supported on a display. @ENG_END_DOX
207
+ *
208
+ *@syntax
209
+ *@codeStart
210
+ * @ref ADLX_RESULT IsSupportedReGammaPQ2084Interim (adlx_bool* isSupportedReGammaPQ2084Interim);
211
+ *@codeEnd
212
+ *
213
+ *@params
214
+ *@paramrow{1.,[out] ,IsSupportedReGammaPQ2084Interim,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of PQ2084 re-gamma curve is returned. The variable is __true__ if PQ2084 re-gamma curve is supported. The variable is __false__ if PQ2084 re-gamma curve is not supported. @ENG_END_DOX}
215
+ *
216
+ *@retvalues
217
+ *@ENG_START_DOX If the state of PQ2084 re-gamma curve is successfully returned, __ADLX_OK__ is returned. <br>
218
+ * If the state of PQ2084 re-gamma curve is not successfully returned, an error code is returned. <br>
219
+ * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
220
+ *
221
+ *@copydoc IADLXDisplayGamma_REQ_TABLE
222
+ *
223
+ */
224
+ virtual ADLX_RESULT ADLX_STD_CALL IsSupportedReGammaPQ2084Interim (adlx_bool* isSupportedReGammaPQ2084Interim) = 0;
225
+
226
+ /**
227
+ *@page DOX_IADLXDisplayGamma_IsSupportedReGamma36 IsSupportedReGamma36
228
+ *@ENG_START_DOX @brief Checks if the 3.6 re-gamma is supported on a display. @ENG_END_DOX
229
+ *
230
+ *@syntax
231
+ *@codeStart
232
+ * @ref ADLX_RESULT IsSupportedReGamma36 (adlx_bool* isSupportedReGamma36)
233
+ *@codeEnd
234
+ *
235
+ *@params
236
+ *@paramrow{1.,[out] ,IsSupportedReGamma36,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of 3.6 re-gamma is returned. The variable is __true__ if 3.6 re-gamma is supported. The variable is __false__ if 3.6 re-gamma is not supported. @ENG_END_DOX}
237
+ *
238
+ *@retvalues
239
+ *@ENG_START_DOX If the state of 3.6 re-gamma is successfully returned, __ADLX_OK__ is returned. <br>
240
+ * If the state of 3.6 re-gamma is not successfully returned, an error code is returned. <br>
241
+ * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
242
+ *
243
+ *@copydoc IADLXDisplayGamma_REQ_TABLE
244
+ *
245
+ */
246
+ virtual ADLX_RESULT ADLX_STD_CALL IsSupportedReGamma36 (adlx_bool* isSupportedReGamma36) = 0;
247
+
248
+ /**
249
+ *@page DOX_IADLXDisplayGamma_IsCurrentReGammaSRGB IsCurrentReGammaSRGB
250
+ *@ENG_START_DOX @brief Checks if the sRGB re-gamma is used by a display. @ENG_END_DOX
251
+ *
252
+ *@syntax
253
+ *@codeStart
254
+ * @ref ADLX_RESULT IsCurrentReGammaSRGB (adlx_bool* isCurrentReGammaSRGB)
255
+ *@codeEnd
256
+ *
257
+ *@params
258
+ *@paramrow{1.,[out] ,IsCurrentReGammaSRGB,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of sRGB re-gamma is returned. The variable is __true__ if sRGB re-gamma is used. The variable is __false__ if sRGB re-gamma is not used. @ENG_END_DOX}
259
+ *
260
+ *@retvalues
261
+ *@ENG_START_DOX If the state of sRGB re-gamma is successfully returned, __ADLX_OK__ is returned. <br>
262
+ * If the state of sRGB re-gamma is not successfully returned, an error code is returned. <br>
263
+ * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
264
+ *
265
+ *@copydoc IADLXDisplayGamma_REQ_TABLE
266
+ *
267
+ */
268
+ virtual ADLX_RESULT ADLX_STD_CALL IsCurrentReGammaSRGB (adlx_bool* isCurrentReGammaSRGB) = 0;
269
+
270
+ /**
271
+ *@page DOX_IADLXDisplayGamma_IsCurrentReGammaBT709 IsCurrentReGammaBT709
272
+ *@ENG_START_DOX @brief Checks if the BT709 re-gamma is used by a display. @ENG_END_DOX
273
+ *
274
+ *@syntax
275
+ *@codeStart
276
+ * @ref ADLX_RESULT IsCurrentReGammaBT709 (adlx_bool* isCurrentReGammaBT709)
277
+ *@codeEnd
278
+ *
279
+ *@params
280
+ *@paramrow{1.,[out],IsCurrentReGammaBT709,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of BT709 re-gamma is returned. The variable is __true__ if BT709 re-gamma is used. The variable is __false__ if BT709 re-gamma is not used. @ENG_END_DOX}
281
+ *
282
+ *@retvalues
283
+ *@ENG_START_DOX If the state of BT709 re-gamma is successfully returned, __ADLX_OK__ is returned. <br>
284
+ * If the state of BT709 re-gamma is not successfully returned, an error code is returned. <br>
285
+ * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
286
+ *
287
+ *@copydoc IADLXDisplayGamma_REQ_TABLE
288
+ *
289
+ */
290
+ virtual ADLX_RESULT ADLX_STD_CALL IsCurrentReGammaBT709 (adlx_bool* isCurrentReGammaBT709) = 0;
291
+
292
+ /**
293
+ *@page DOX_IADLXDisplayGamma_IsCurrentReGammaPQ IsCurrentReGammaPQ
294
+ *@ENG_START_DOX @brief Checks if the PQ re-gamma is used by a display. @ENG_END_DOX
295
+ *
296
+ *@syntax
297
+ *@codeStart
298
+ * @ref ADLX_RESULT IsCurrentReGammaPQ (adlx_bool* isCurrentReGammaPQ)
299
+ *@codeEnd
300
+ *
301
+ *@params
302
+ *@paramrow{1.,[out],IsCurrentReGammaPQ,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of PQ re-gamma is returned. The variable is __true__ if PQ re-gamma is used. The variable is __false__ if PQ re-gamma is not used. @ENG_END_DOX}
303
+ *
304
+ *@retvalues
305
+ *@ENG_START_DOX If the state of PQ re-gamma is successfully returned, __ADLX_OK__ is returned. <br>
306
+ * If the state of PQ re-gamma is not successfully returned, an error code is returned. <br>
307
+ * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
308
+ *
309
+ *@copydoc IADLXDisplayGamma_REQ_TABLE
310
+ *
311
+ */
312
+ virtual ADLX_RESULT ADLX_STD_CALL IsCurrentReGammaPQ (adlx_bool* isCurrentReGammaPQ) = 0;
313
+
314
+ /**
315
+ *@page DOX_IADLXDisplayGamma_IsCurrentReGammaPQ2084Interim IsCurrentReGammaPQ2084Interim
316
+ *@ENG_START_DOX @brief Checks if the PQ2084 re-gamma curve is used by a display. @ENG_END_DOX
317
+ *
318
+ *@syntax
319
+ *@codeStart
320
+ * @ref ADLX_RESULT IsCurrentReGammaPQ2084Interim (adlx_bool* isCurrentReGammaPQ2084Interim)
321
+ *@codeEnd
322
+ *
323
+ *@params
324
+ *@paramrow{1.,[out],IsCurrentReGammaPQ2084Interim,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of PQ2084 re-gamma curve is returned. The variable is __true__ if PQ2084 re-gamma curve is used. The variable is __false__ if PQ2084 re-gamma curve is not used. @ENG_END_DOX}
325
+ *
326
+ *@retvalues
327
+ *@ENG_START_DOX If the state of PQ2084 re-gamma curve is successfully returned, __ADLX_OK__ is returned. <br>
328
+ * If the state of PQ2084 re-gamma curve is not successfully returned, an error code is returned. <br>
329
+ * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
330
+ *
331
+ *@copydoc IADLXDisplayGamma_REQ_TABLE
332
+ *
333
+ */
334
+ virtual ADLX_RESULT ADLX_STD_CALL IsCurrentReGammaPQ2084Interim (adlx_bool* isCurrentReGammaPQ2084Interim) = 0;
335
+
336
+ /**
337
+ *@page DOX_IADLXDisplayGamma_IsCurrentReGamma36 IsCurrentReGamma36
338
+ *@ENG_START_DOX @brief Checks if the 3.6 re-gamma is used by a display. @ENG_END_DOX
339
+ *
340
+ *@syntax
341
+ *@codeStart
342
+ * @ref ADLX_RESULT IsCurrentReGamma36 (adlx_bool* isCurrentReGamma36)
343
+ *@codeEnd
344
+ *
345
+ *@params
346
+ *@paramrow{1.,[out],IsCurrentReGamma36,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of 3.6 re-gamma is returned. The variable is __true__ if 3.6 re-gamma is used. The variable is __false__ if 3.6 re-gamma is not used. @ENG_END_DOX}
347
+ *
348
+ *@retvalues
349
+ *@ENG_START_DOX If the state of 3.6 re-gamma is successfully returned, __ADLX_OK__ is returned. <br>
350
+ * If the state of 3.6 re-gamma is not successfully returned, an error code is returned. <br>
351
+ * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
352
+ *
353
+ *@copydoc IADLXDisplayGamma_REQ_TABLE
354
+ *
355
+ */
356
+ virtual ADLX_RESULT ADLX_STD_CALL IsCurrentReGamma36 (adlx_bool* isCurrentReGamma36) = 0;
357
+
358
+ /**
359
+ *@page DOX_IADLXDisplayGamma_SetReGammaSRGB SetReGammaSRGB
360
+ *@ENG_START_DOX @brief Sets the sRGB re-gamma on a display. @ENG_END_DOX
361
+ *
362
+ *@syntax
363
+ *@codeStart
364
+ * @ref ADLX_RESULT SetReGammaSRGB ()
365
+ *@codeEnd
366
+ *
367
+ *@params
368
+ * N/A
369
+ *
370
+ *@retvalues
371
+ *@ENG_START_DOX If the sRGB re-gamma is successfully set, __ADLX_OK__ is returned. <br>
372
+ * If the sRGB re-gamma is not successfully set, an error code is returned. <br>
373
+ * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
374
+ *@copydoc IADLXDisplayGamma_REQ_TABLE
375
+ *
376
+ */
377
+ virtual ADLX_RESULT ADLX_STD_CALL SetReGammaSRGB () = 0;
378
+
379
+ /**
380
+ *@page DOX_IADLXDisplayGamma_SetReGammaBT709 SetReGammaBT709
381
+ *@ENG_START_DOX @brief Sets the BT709 re-gamma on a display. @ENG_END_DOX
382
+ *
383
+ *@syntax
384
+ *@codeStart
385
+ * @ref ADLX_RESULT SetReGammaBT709 ()
386
+ *@codeEnd
387
+ *
388
+ *@params
389
+ * N/A
390
+ *
391
+ *@retvalues
392
+ *@ENG_START_DOX If the BT709 re-gamma is successfully set, __ADLX_OK__ is returned. <br>
393
+ * If the BT709 re-gamma is not successfully set, an error code is returned. <br>
394
+ * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
395
+ *@copydoc IADLXDisplayGamma_REQ_TABLE
396
+ *
397
+ */
398
+ virtual ADLX_RESULT ADLX_STD_CALL SetReGammaBT709 () = 0;
399
+
400
+ /**
401
+ *@page DOX_IADLXDisplayGamma_SetReGammaPQ SetReGammaPQ
402
+ *@ENG_START_DOX @brief Sets the PQ re-gamma on a display. @ENG_END_DOX
403
+ *
404
+ *@syntax
405
+ *@codeStart
406
+ * @ref ADLX_RESULT SetReGammaPQ ()
407
+ *@codeEnd
408
+ *
409
+ *@params
410
+ * N/A
411
+ *
412
+ *@retvalues
413
+ *@ENG_START_DOX If the PQ re-gamma is successfully set, __ADLX_OK__ is returned. <br>
414
+ * If the PQ re-gamma is not successfully set, an error code is returned. <br>
415
+ * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
416
+ *@copydoc IADLXDisplayGamma_REQ_TABLE
417
+ *
418
+ */
419
+ virtual ADLX_RESULT ADLX_STD_CALL SetReGammaPQ () = 0;
420
+
421
+ /**
422
+ *@page DOX_IADLXDisplayGamma_SetReGammaPQ2084Interim SetReGammaPQ2084Interim
423
+ *@ENG_START_DOX @brief Sets the PQ2084 re-gamma curve on a display. @ENG_END_DOX
424
+ *
425
+ *@syntax
426
+ *@codeStart
427
+ * @ref ADLX_RESULT SetReGammaPQ2084Interim ()
428
+ *@codeEnd
429
+ *
430
+ *@params
431
+ * N/A
432
+ *
433
+ *@retvalues
434
+ *@ENG_START_DOX If the PQ2084 re-gamma curve is successfully set, __ADLX_OK__ is returned. <br>
435
+ * If the PQ2084 re-gamma curve is not successfully set, an error code is returned. <br>
436
+ * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
437
+ *
438
+ *@copydoc IADLXDisplayGamma_REQ_TABLE
439
+ *
440
+ */
441
+ virtual ADLX_RESULT ADLX_STD_CALL SetReGammaPQ2084Interim () = 0;
442
+
443
+ /**
444
+ *@page DOX_IADLXDisplayGamma_SetReGamma36 SetReGamma36
445
+ *@ENG_START_DOX @brief Sets the 3.6 re-gamma on a display. @ENG_END_DOX
446
+ *
447
+ *@syntax
448
+ *@codeStart
449
+ * @ref ADLX_RESULT SetReGamma36 ()
450
+ *@codeEnd
451
+ *
452
+ *@params
453
+ * N/A
454
+ *
455
+ *@retvalues
456
+ *@ENG_START_DOX If the 3.6 re-gamma is successfully set, __ADLX_OK__ is returned. <br>
457
+ * If the 3.6 re-gamma is not successfully set, an error code is returned. <br>
458
+ * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
459
+ *@copydoc IADLXDisplayGamma_REQ_TABLE
460
+ *
461
+ */
462
+ virtual ADLX_RESULT ADLX_STD_CALL SetReGamma36 () = 0;
463
+
464
+ /**
465
+ *@page DOX_IADLXDisplayGamma_SetReGammaCoefficient SetReGammaCoefficient
466
+ *@ENG_START_DOX @brief Sets the re-gamma coefficient on a display. @ENG_END_DOX
467
+ *
468
+ *@syntax
469
+ *@codeStart
470
+ * @ref ADLX_RESULT SetReGammaCoefficient (@ref ADLX_RegammaCoeff coeff)
471
+ *@codeEnd
472
+ *
473
+ * @params
474
+ * @paramrow{1.,[in] ,coeff,@ref ADLX_RegammaCoeff ,@ENG_START_DOX The re-gamma coefficient. @ENG_END_DOX}
475
+ *
476
+ *@retvalues
477
+ *@ENG_START_DOX If the re-gamma coefficient is successfully set, __ADLX_OK__ is returned. <br>
478
+ * If the re-gamma coefficient is not successfully set, an error code is returned. <br>
479
+ * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
480
+ *
481
+ *@detaileddesc
482
+ *@ENG_START_DOX @details The method sets the custom coefficient on a display.
483
+ * The following is an example of a standard coefficient. @ENG_END_DOX
484
+ * coeff | sRGB | BT709 | Gamma2.2 | Gamma2.4 |P3 |
485
+ * :--- | :---: | :---: | :---: | :---: |:---: |
486
+ * CoefficientA0 | 31308 | 180000 | 0 | 0 | 0 |
487
+ * CoefficientA1 | 12920 | 4500 | 0 | 0 | 0 |
488
+ * CoefficientA2 | 55 | 99 | 0 | 0 | 0 |
489
+ * CoefficientA3 | 55 | 99 | 0 | 0 | 0 |
490
+ * Gamma | 2400 | 2200 | 2200 | 2400 | 2600 |
491
+ *
492
+ *@copydoc IADLXDisplayGamma_REQ_TABLE
493
+ *
494
+ */
495
+ virtual ADLX_RESULT ADLX_STD_CALL SetReGammaCoefficient (ADLX_RegammaCoeff coeff) = 0;
496
+
497
+ /**
498
+ *@page DOX_IADLXDisplayGamma_SetDeGammaRampFile SetDeGammaRamp
499
+ *@ENG_START_DOX @brief Sets the de-gamma on a display using a ramp file. @ENG_END_DOX
500
+ *
501
+ *@syntax
502
+ *@codeStart
503
+ * @ref ADLX_RESULT SetDeGammaRamp (const char* path)
504
+ *@codeEnd
505
+ *
506
+ * @params
507
+ * @paramrow{1.,[in] ,pPath,const char* ,@ENG_START_DOX The zero-terminated string that specifies the path of the ramp file. @ENG_END_DOX}
508
+ *
509
+ *@retvalues
510
+ *@ENG_START_DOX If the de-gamma is successfully set, __ADLX_OK__ is returned. <br>
511
+ * If the de-gamma is not successfully set, an error code is returned. <br>
512
+ * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
513
+ *
514
+ *@detaileddesc
515
+ *@ENG_START_DOX @details The method sets the custom de-gamma on a display using a ramp file.
516
+ * The following is an example of a ramp file. @ENG_END_DOX
517
+ *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
518
+ * [R] [G] [B]
519
+ * [0] 0, 0, 0
520
+ * [1] 49836, 34885, 0
521
+ * ...
522
+ * [254] 58260, 58782, 0
523
+ * [255] 65533, 56634, 0
524
+ *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
525
+ *
526
+ *@copydoc IADLXDisplayGamma_REQ_TABLE
527
+ *
528
+ */
529
+ virtual ADLX_RESULT ADLX_STD_CALL SetDeGammaRamp (const char* path) = 0;
530
+
531
+ /**
532
+ *@page DOX_IADLXDisplayGamma_SetDeGammaRampMemory SetDeGammaRamp
533
+ *@ENG_START_DOX @brief Sets the de-gamma on a display using a ramp buffer. @ENG_END_DOX
534
+ *
535
+ *@syntax
536
+ *@codeStart
537
+ * @ref ADLX_RESULT SetDeGammaRamp (@ref ADLX_GammaRamp gammaRamp)
538
+ *@codeEnd
539
+ *
540
+ * @params
541
+ * @paramrow{1.,[in] ,gammaRamp,@ref ADLX_GammaRamp ,@ENG_START_DOX The gamma ramp buffer. @ENG_END_DOX}
542
+ *
543
+ *@retvalues
544
+ *@ENG_START_DOX If the de-gamma is successfully set, __ADLX_OK__ is returned. <br>
545
+ * If the de-gamma is not successfully set, an error code is returned. <br>
546
+ * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
547
+ *
548
+ *@copydoc IADLXDisplayGamma_REQ_TABLE
549
+ *
550
+ */
551
+ virtual ADLX_RESULT ADLX_STD_CALL SetDeGammaRamp (ADLX_GammaRamp gammaRamp) = 0;
552
+
553
+ /**
554
+ *@page DOX_IADLXDisplayGamma_SetReGammaRampFile SetReGammaRamp
555
+ *@ENG_START_DOX @brief Sets the re-gamma on a display using a ramp file. @ENG_END_DOX
556
+ *
557
+ *@syntax
558
+ *@codeStart
559
+ * @ref ADLX_RESULT SetReGammaRamp (const char* path)
560
+ *@codeEnd
561
+ *
562
+ * @params
563
+ * @paramrow{1.,[in] ,pPath,const char* ,@ENG_START_DOX The zero-terminated string that specifies the path of the ramp file. @ENG_END_DOX}
564
+ *
565
+ *@retvalues
566
+ *@ENG_START_DOX If the re-gamma is successfully set, __ADLX_OK__ is returned. <br>
567
+ * If the re-gamma is not successfully set, an error code is returned. <br>
568
+ * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
569
+ *
570
+ *@detaileddesc
571
+ *@ENG_START_DOX @details The method sets the custom re-gamma on a display using a ramp file.
572
+ * The following is an example of a LUT file format, each acceptable value is a number between 0 and 65535. @ENG_END_DOX
573
+ *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
574
+ * [R] [G] [B]
575
+ * [0] 0, 0, 0
576
+ * [1] 49836, 34885, 0
577
+ * ...
578
+ * [254] 58260, 58782, 0
579
+ * [255] 65533, 56634, 0
580
+ *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
581
+ *
582
+ *@copydoc IADLXDisplayGamma_REQ_TABLE
583
+ *
584
+ */
585
+ virtual ADLX_RESULT ADLX_STD_CALL SetReGammaRamp (const char* path) = 0;
586
+
587
+ /**
588
+ *@page DOX_IADLXDisplayGamma_SetReGammaRampMemory SetReGammaRamp
589
+ *@ENG_START_DOX @brief Sets the re-gamma on a display using a ramp buffer. @ENG_END_DOX
590
+ *
591
+ *@syntax
592
+ *@codeStart
593
+ * @ref ADLX_RESULT SetReGammaRamp (@ref ADLX_GammaRamp gammaRamp)
594
+ *@codeEnd
595
+ *
596
+ * @params
597
+ * @paramrow{1.,[in] ,gammaRamp,@ref ADLX_GammaRamp ,@ENG_START_DOX The gamma ramp buffer. @ENG_END_DOX}
598
+ *
599
+ *@retvalues
600
+ *@ENG_START_DOX If the re-gamma is successfully set, __ADLX_OK__ is returned. <br>
601
+ * If the re-gamma is not successfully set, an error code is returned. <br>
602
+ * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
603
+ *
604
+ *@copydoc IADLXDisplayGamma_REQ_TABLE
605
+ *
606
+ */
607
+ virtual ADLX_RESULT ADLX_STD_CALL SetReGammaRamp (ADLX_GammaRamp gammaRamp) = 0;
608
+
609
+ /**
610
+ *@page DOX_IADLXDisplayGamma_ResetGammaRamp ResetGammaRamp
611
+ *@ENG_START_DOX @brief Resets the gamma ramp on a display. @ENG_END_DOX
612
+ *
613
+ *@syntax
614
+ *@codeStart
615
+ * @ref ADLX_RESULT ResetGammaRamp ()
616
+ *@codeEnd
617
+ *
618
+ * @params
619
+ * N/A
620
+ *
621
+ *@retvalues
622
+ *@ENG_START_DOX If the gamma ramp is successfully reset, __ADLX_OK__ is returned. <br>
623
+ * If the gamma ramp is not successfully reset, an error code is returned. <br>
624
+ * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
625
+ *
626
+ *@copydoc IADLXDisplayGamma_REQ_TABLE
627
+ *
628
+ */
629
+ virtual ADLX_RESULT ADLX_STD_CALL ResetGammaRamp () = 0;
630
+ }; //IADLXDisplayGamma
631
+ //----------------------------------------------------------------------------------------------
632
+ typedef IADLXInterfacePtr_T<IADLXDisplayGamma> IADLXDisplayGammaPtr;
633
+ }
634
+ #else
635
+ ADLX_DECLARE_IID (IADLXDisplayGamma, L"IADLXDisplayGamma")
636
+ typedef struct IADLXDisplayGamma IADLXDisplayGamma;
637
+
638
+ typedef struct IADLXDisplayGammaVtbl
639
+ {
640
+ //IADLXInterface
641
+ adlx_long (ADLX_STD_CALL *Acquire)(IADLXDisplayGamma* pThis);
642
+ adlx_long (ADLX_STD_CALL *Release)(IADLXDisplayGamma* pThis);
643
+ ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLXDisplayGamma* pThis, const wchar_t* interfaceId, void** ppInterface);
644
+
645
+ //IADLXDisplayGamma
646
+ ADLX_RESULT (ADLX_STD_CALL *IsCurrentReGammaRamp)(IADLXDisplayGamma* pThis, adlx_bool* isCurrentReGammaRamp);
647
+ ADLX_RESULT (ADLX_STD_CALL *IsCurrentDeGammaRamp)(IADLXDisplayGamma* pThis, adlx_bool* isCurrentDeGammaRamp);
648
+ ADLX_RESULT (ADLX_STD_CALL *IsCurrentRegammaCoefficient)(IADLXDisplayGamma* pThis, adlx_bool* isCurrentRegammaCoefficient);
649
+ ADLX_RESULT (ADLX_STD_CALL *GetGammaRamp)(IADLXDisplayGamma* pThis, ADLX_GammaRamp* lut);
650
+ ADLX_RESULT (ADLX_STD_CALL *GetGammaCoefficient)(IADLXDisplayGamma* pThis, ADLX_RegammaCoeff* coeff);
651
+
652
+ ADLX_RESULT (ADLX_STD_CALL *IsSupportedReGammaSRGB)(IADLXDisplayGamma* pThis, adlx_bool* isSupportedReGammaSRGB);
653
+ ADLX_RESULT (ADLX_STD_CALL *IsSupportedReGammaBT709)(IADLXDisplayGamma* pThis, adlx_bool* isSupportedReGammaBT709);
654
+ ADLX_RESULT (ADLX_STD_CALL *IsSupportedReGammaPQ)(IADLXDisplayGamma* pThis, adlx_bool* isSupportedReGammaPQ);
655
+ ADLX_RESULT (ADLX_STD_CALL *IsSupportedReGammaPQ2084Interim)(IADLXDisplayGamma* pThis, adlx_bool* isSupportedReGammaPQ2084Interim);
656
+ ADLX_RESULT (ADLX_STD_CALL *IsSupportedReGamma36)(IADLXDisplayGamma* pThis, adlx_bool* isSupportedReGamma36);
657
+ ADLX_RESULT (ADLX_STD_CALL *IsCurrentReGammaSRGB)(IADLXDisplayGamma* pThis, adlx_bool* isCurrentReGammaSRGB);
658
+ ADLX_RESULT (ADLX_STD_CALL *IsCurrentReGammaBT709)(IADLXDisplayGamma* pThis, adlx_bool* isCurrentReGammaBT709);
659
+ ADLX_RESULT (ADLX_STD_CALL *IsCurrentReGammaPQ)(IADLXDisplayGamma* pThis, adlx_bool* isCurrentReGammaPQ);
660
+ ADLX_RESULT (ADLX_STD_CALL *IsCurrentReGammaPQ2084Interim)(IADLXDisplayGamma* pThis, adlx_bool* isCurrentReGammaPQ2084Interim);
661
+ ADLX_RESULT (ADLX_STD_CALL *IsCurrentReGamma36)(IADLXDisplayGamma* pThis, adlx_bool* isCurrentReGamma36);
662
+ ADLX_RESULT (ADLX_STD_CALL *SetReGammaSRGB)(IADLXDisplayGamma* pThis);
663
+ ADLX_RESULT (ADLX_STD_CALL *SetReGammaBT709)(IADLXDisplayGamma* pThis);
664
+ ADLX_RESULT (ADLX_STD_CALL *SetReGammaPQ)(IADLXDisplayGamma* pThis);
665
+ ADLX_RESULT (ADLX_STD_CALL *SetReGammaPQ2084Interim)(IADLXDisplayGamma* pThis);
666
+ ADLX_RESULT (ADLX_STD_CALL *SetReGamma36)(IADLXDisplayGamma* pThis);
667
+
668
+ ADLX_RESULT (ADLX_STD_CALL *SetReGammaCoefficient)(IADLXDisplayGamma* pThis, ADLX_RegammaCoeff coeff);
669
+ ADLX_RESULT (ADLX_STD_CALL *SetDeGammaRamp_Memory)(IADLXDisplayGamma* pThis, ADLX_GammaRamp gammaRamp);
670
+ ADLX_RESULT (ADLX_STD_CALL *SetDeGammaRamp_File)(IADLXDisplayGamma* pThis, const char* path);
671
+ ADLX_RESULT (ADLX_STD_CALL *SetReGammaRamp_Memory)(IADLXDisplayGamma* pThis, ADLX_GammaRamp gammaRamp);
672
+ ADLX_RESULT (ADLX_STD_CALL *SetReGammaRamp_File)(IADLXDisplayGamma* pThis, const char* path);
673
+ ADLX_RESULT (ADLX_STD_CALL *ResetGammaRamp)(IADLXDisplayGamma* pThis);
674
+ } IADLXDisplayGammaVtbl;
675
+
676
+ struct IADLXDisplayGamma
677
+ {
678
+ const IADLXDisplayGammaVtbl *pVtbl;
679
+ };
680
+ #endif
681
+ #pragma endregion IADLXDisplayGamma interface
682
+
683
+ #endif//ADLX_IDISPLAYGAMMA_H