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.
- package/LICENSE +674 -0
- package/README.md +336 -0
- package/binding.gyp +69 -0
- package/build/Release/gpu.exp +0 -0
- package/build/Release/gpu.lib +0 -0
- package/build/Release/gpu.node +0 -0
- package/build/Release/gpu.pdb +0 -0
- package/build/binding.sln +19 -0
- package/build/gpu.vcxproj +175 -0
- package/build/gpu.vcxproj.filters +169 -0
- package/example.js +69 -0
- package/index.js +33 -0
- package/package.json +68 -0
- package/src/binding.cpp +201 -0
- package/src/gpu_info.c +130 -0
- package/src/gpu_info.h +86 -0
- package/src/includes/adlx/ADLX.h +367 -0
- package/src/includes/adlx/ADLXDefines.h +1345 -0
- package/src/includes/adlx/ADLXHelper/ADLXHelper.c +175 -0
- package/src/includes/adlx/ADLXHelper/ADLXHelper.h +245 -0
- package/src/includes/adlx/ADLXHelper/WinAPIS.c +64 -0
- package/src/includes/adlx/ADLXStructures.h +206 -0
- package/src/includes/adlx/ADLXVersion.h +18 -0
- package/src/includes/adlx/I3DSettings.h +3476 -0
- package/src/includes/adlx/I3DSettings1.h +292 -0
- package/src/includes/adlx/I3DSettings2.h +317 -0
- package/src/includes/adlx/IApplications.h +397 -0
- package/src/includes/adlx/IChangedEvent.h +71 -0
- package/src/includes/adlx/ICollections.h +325 -0
- package/src/includes/adlx/IDesktops.h +918 -0
- package/src/includes/adlx/IDisplay3DLUT.h +663 -0
- package/src/includes/adlx/IDisplayGamma.h +683 -0
- package/src/includes/adlx/IDisplayGamut.h +760 -0
- package/src/includes/adlx/IDisplaySettings.h +3476 -0
- package/src/includes/adlx/IDisplays.h +2676 -0
- package/src/includes/adlx/IDisplays1.h +191 -0
- package/src/includes/adlx/IDisplays2.h +188 -0
- package/src/includes/adlx/IDisplays3.h +256 -0
- package/src/includes/adlx/IGPUAutoTuning.h +460 -0
- package/src/includes/adlx/IGPUManualFanTuning.h +1007 -0
- package/src/includes/adlx/IGPUManualGFXTuning.h +607 -0
- package/src/includes/adlx/IGPUManualPowerTuning.h +340 -0
- package/src/includes/adlx/IGPUManualVRAMTuning.h +576 -0
- package/src/includes/adlx/IGPUPresetTuning.h +469 -0
- package/src/includes/adlx/IGPUTuning.h +1239 -0
- package/src/includes/adlx/IGPUTuning1.h +197 -0
- package/src/includes/adlx/II2C.h +198 -0
- package/src/includes/adlx/ILog.h +72 -0
- package/src/includes/adlx/IMultiMedia.h +578 -0
- package/src/includes/adlx/IPerformanceMonitoring.h +2520 -0
- package/src/includes/adlx/IPerformanceMonitoring1.h +134 -0
- package/src/includes/adlx/IPerformanceMonitoring2.h +341 -0
- package/src/includes/adlx/IPerformanceMonitoring3.h +199 -0
- package/src/includes/adlx/IPowerTuning.h +473 -0
- package/src/includes/adlx/IPowerTuning1.h +515 -0
- package/src/includes/adlx/ISmartAccessMemory.h +114 -0
- package/src/includes/adlx/ISystem.h +1557 -0
- package/src/includes/adlx/ISystem1.h +237 -0
- package/src/includes/adlx/ISystem2.h +643 -0
- package/src/linux/amd_linux.c +269 -0
- package/src/linux/intel_linux.c +20 -0
- package/src/linux/nvidia_linux.c +257 -0
- package/src/macos/amd_mac.c +131 -0
- package/src/macos/intel_mac.c +131 -0
- package/src/macos/nvidia_mac.c +21 -0
- package/src/vendor/amd.c +37 -0
- package/src/vendor/intel.c +37 -0
- package/src/vendor/nvidia.c +37 -0
- package/src/windows/amd_windows.c +468 -0
- package/src/windows/intel_windows.c +157 -0
- package/src/windows/nvidia_windows.c +252 -0
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright (c) 2021 - 2025 Advanced Micro Devices, Inc. All rights reserved.
|
|
3
|
+
//
|
|
4
|
+
//-------------------------------------------------------------------------------------------------
|
|
5
|
+
#include "ADLXHelper.h"
|
|
6
|
+
|
|
7
|
+
typedef struct ADLXHelper
|
|
8
|
+
{
|
|
9
|
+
//Handle to the ADLX dll
|
|
10
|
+
adlx_handle m_hDLLHandle;
|
|
11
|
+
|
|
12
|
+
//Full Version of this ADLX instance
|
|
13
|
+
adlx_uint64 m_ADLXFullVersion;
|
|
14
|
+
|
|
15
|
+
//Version of this ADLX instance
|
|
16
|
+
const char* m_ADLXVersion;
|
|
17
|
+
|
|
18
|
+
//The ADLX system services interface
|
|
19
|
+
IADLXSystem* m_pSystemServices;
|
|
20
|
+
|
|
21
|
+
//the ADL mapping interface
|
|
22
|
+
IADLMapping* m_pAdlMapping;
|
|
23
|
+
|
|
24
|
+
//ADLX function - query full version
|
|
25
|
+
ADLXQueryFullVersion_Fn m_fullVersionFn;
|
|
26
|
+
|
|
27
|
+
//ADLX function - qery version
|
|
28
|
+
ADLXQueryVersion_Fn m_versionFn;
|
|
29
|
+
|
|
30
|
+
//ADLX function - initialize with ADL
|
|
31
|
+
ADLXInitializeWithCallerAdl_Fn m_initWithADLFn;
|
|
32
|
+
|
|
33
|
+
//ADLX function - initialize with incompatible driver
|
|
34
|
+
ADLXInitialize_Fn m_initFnEx;
|
|
35
|
+
|
|
36
|
+
//ADLX function - initialize
|
|
37
|
+
ADLXInitialize_Fn m_initFn;
|
|
38
|
+
|
|
39
|
+
//ADLX function - terminate
|
|
40
|
+
ADLXTerminate_Fn m_terminateFn;
|
|
41
|
+
}ADLXHelper;
|
|
42
|
+
|
|
43
|
+
static ADLXHelper g_ADLX = {NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL};
|
|
44
|
+
|
|
45
|
+
ADLX_RESULT InitializePrivate (adlx_handle adlContext, ADLX_ADL_Main_Memory_Free adlMainMemoryFree, adlx_bool useIncompatibleDriver);
|
|
46
|
+
|
|
47
|
+
//-------------------------------------------------------------------------------------------------
|
|
48
|
+
//Initialization
|
|
49
|
+
ADLX_RESULT ADLXHelper_Initialize ()
|
|
50
|
+
{
|
|
51
|
+
return InitializePrivate (NULL, NULL, false);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
ADLX_RESULT ADLXHelper_InitializeWithIncompatibleDriver()
|
|
55
|
+
{
|
|
56
|
+
return InitializePrivate(NULL, NULL, true);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
ADLX_RESULT ADLXHelper_InitializeWithCallerAdl (adlx_handle adlContext, ADLX_ADL_Main_Memory_Free adlMainMemoryFree)
|
|
60
|
+
{
|
|
61
|
+
if (adlContext == NULL || adlMainMemoryFree == NULL)
|
|
62
|
+
{
|
|
63
|
+
return ADLX_INVALID_ARGS;
|
|
64
|
+
}
|
|
65
|
+
return InitializePrivate (adlContext, adlMainMemoryFree, false);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
//-------------------------------------------------------------------------------------------------
|
|
69
|
+
//Termination
|
|
70
|
+
ADLX_RESULT ADLXHelper_Terminate()
|
|
71
|
+
{
|
|
72
|
+
ADLX_RESULT res = ADLX_OK;
|
|
73
|
+
if (g_ADLX.m_hDLLHandle != NULL)
|
|
74
|
+
{
|
|
75
|
+
g_ADLX.m_ADLXFullVersion = 0;
|
|
76
|
+
g_ADLX.m_ADLXVersion = NULL;
|
|
77
|
+
g_ADLX.m_pSystemServices = NULL;
|
|
78
|
+
g_ADLX.m_pAdlMapping = NULL;
|
|
79
|
+
if (NULL != g_ADLX.m_terminateFn)
|
|
80
|
+
{
|
|
81
|
+
res = g_ADLX.m_terminateFn();
|
|
82
|
+
}
|
|
83
|
+
g_ADLX.m_fullVersionFn = NULL;
|
|
84
|
+
g_ADLX.m_versionFn = NULL;
|
|
85
|
+
g_ADLX.m_initWithADLFn = NULL;
|
|
86
|
+
g_ADLX.m_initFnEx = NULL;
|
|
87
|
+
g_ADLX.m_initFn = NULL;
|
|
88
|
+
g_ADLX.m_terminateFn = NULL;
|
|
89
|
+
adlx_free_library(g_ADLX.m_hDLLHandle);
|
|
90
|
+
g_ADLX.m_hDLLHandle = NULL;
|
|
91
|
+
}
|
|
92
|
+
return res;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
//-------------------------------------------------------------------------------------------------
|
|
96
|
+
//Get the full version for this ADLX instance
|
|
97
|
+
adlx_uint64 ADLXHelper_QueryFullVersion()
|
|
98
|
+
{
|
|
99
|
+
return g_ADLX.m_ADLXFullVersion;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
//-------------------------------------------------------------------------------------------------
|
|
103
|
+
//Get the version for this ADLX instance
|
|
104
|
+
const char* ADLXHelper_QueryVersion()
|
|
105
|
+
{
|
|
106
|
+
return g_ADLX.m_ADLXVersion;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
//-------------------------------------------------------------------------------------------------
|
|
110
|
+
//Get the IADLXSystem interface
|
|
111
|
+
IADLXSystem* ADLXHelper_GetSystemServices()
|
|
112
|
+
{
|
|
113
|
+
return g_ADLX.m_pSystemServices;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
//-------------------------------------------------------------------------------------------------
|
|
117
|
+
//Get the IADLMapping interface
|
|
118
|
+
IADLMapping* ADLXHelper_GetAdlMapping ()
|
|
119
|
+
{
|
|
120
|
+
return g_ADLX.m_pAdlMapping;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
//-------------------------------------------------------------------------------------------------
|
|
124
|
+
//Loads ADLX and finds the function pointers to the ADLX functions
|
|
125
|
+
ADLX_RESULT LoadADLXDll()
|
|
126
|
+
{
|
|
127
|
+
if (g_ADLX.m_hDLLHandle == NULL)
|
|
128
|
+
{
|
|
129
|
+
g_ADLX.m_hDLLHandle = adlx_load_library(ADLX_DLL_NAME);
|
|
130
|
+
if (g_ADLX.m_hDLLHandle)
|
|
131
|
+
{
|
|
132
|
+
g_ADLX.m_fullVersionFn = (ADLXQueryFullVersion_Fn)adlx_get_proc_address(g_ADLX.m_hDLLHandle, ADLX_QUERY_FULL_VERSION_FUNCTION_NAME);
|
|
133
|
+
g_ADLX.m_versionFn = (ADLXQueryVersion_Fn)adlx_get_proc_address(g_ADLX.m_hDLLHandle, ADLX_QUERY_VERSION_FUNCTION_NAME);
|
|
134
|
+
g_ADLX.m_initWithADLFn = (ADLXInitializeWithCallerAdl_Fn)adlx_get_proc_address(g_ADLX.m_hDLLHandle, ADLX_INIT_WITH_CALLER_ADL_FUNCTION_NAME);
|
|
135
|
+
g_ADLX.m_initFnEx = (ADLXInitialize_Fn)adlx_get_proc_address(g_ADLX.m_hDLLHandle, ADLX_INIT_WITH_INCOMPATIBLE_DRIVER_FUNCTION_NAME);
|
|
136
|
+
g_ADLX.m_initFn = (ADLXInitialize_Fn)adlx_get_proc_address(g_ADLX.m_hDLLHandle, ADLX_INIT_FUNCTION_NAME);
|
|
137
|
+
g_ADLX.m_terminateFn = (ADLXTerminate_Fn)adlx_get_proc_address(g_ADLX.m_hDLLHandle, ADLX_TERMINATE_FUNCTION_NAME);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
if (g_ADLX.m_fullVersionFn && g_ADLX.m_versionFn && g_ADLX.m_initWithADLFn && g_ADLX.m_initFnEx && g_ADLX.m_initFn && g_ADLX.m_terminateFn)
|
|
141
|
+
{
|
|
142
|
+
return ADLX_OK;
|
|
143
|
+
}
|
|
144
|
+
return ADLX_FAIL;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
//-------------------------------------------------------------------------------------------------
|
|
148
|
+
//Initializes ADLX based on the parameters
|
|
149
|
+
ADLX_RESULT InitializePrivate (adlx_handle adlContext, ADLX_ADL_Main_Memory_Free adlMainMemoryFree, adlx_bool useIncompatibleDriver)
|
|
150
|
+
{
|
|
151
|
+
ADLX_RESULT res = LoadADLXDll();
|
|
152
|
+
if (ADLX_OK == res)
|
|
153
|
+
{
|
|
154
|
+
g_ADLX.m_fullVersionFn(&g_ADLX.m_ADLXFullVersion);
|
|
155
|
+
g_ADLX.m_versionFn(&g_ADLX.m_ADLXVersion);
|
|
156
|
+
if (adlContext != NULL && adlMainMemoryFree != NULL)
|
|
157
|
+
{
|
|
158
|
+
res = g_ADLX.m_initWithADLFn(ADLX_FULL_VERSION, &g_ADLX.m_pSystemServices, &g_ADLX.m_pAdlMapping, adlContext, adlMainMemoryFree);
|
|
159
|
+
}
|
|
160
|
+
else
|
|
161
|
+
{
|
|
162
|
+
if (useIncompatibleDriver)
|
|
163
|
+
{
|
|
164
|
+
res = g_ADLX.m_initFnEx(ADLX_FULL_VERSION, &g_ADLX.m_pSystemServices);
|
|
165
|
+
}
|
|
166
|
+
else
|
|
167
|
+
{
|
|
168
|
+
res = g_ADLX.m_initFn(ADLX_FULL_VERSION, &g_ADLX.m_pSystemServices);
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
return res;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
return ADLX_FAIL;
|
|
175
|
+
}
|
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright (c) 2021 - 2025 Advanced Micro Devices, Inc. All rights reserved.
|
|
3
|
+
//
|
|
4
|
+
//-------------------------------------------------------------------------------------------------
|
|
5
|
+
|
|
6
|
+
#ifndef ADLX_ADLXFactory_h
|
|
7
|
+
#define ADLX_ADLXFactory_h
|
|
8
|
+
#pragma once
|
|
9
|
+
|
|
10
|
+
#include "../ADLX.h"
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* @page page_cHelpADLXHelper_Initialize ADLXHelper_Initialize
|
|
14
|
+
* @ENG_START_DOX
|
|
15
|
+
* @brief Initializes ADLX with default parameters.<br>
|
|
16
|
+
* @ENG_END_DOX
|
|
17
|
+
*
|
|
18
|
+
* @syntax
|
|
19
|
+
* @codeStart
|
|
20
|
+
* @ref ADLX_RESULT ADLXHelper_Initialize ()
|
|
21
|
+
* @codeEnd
|
|
22
|
+
* @params
|
|
23
|
+
* N/A
|
|
24
|
+
*
|
|
25
|
+
* @retvalues
|
|
26
|
+
* @ENG_START_DOX
|
|
27
|
+
* If __ADLXHelper_Initialize__ is successfully executed, __ADLX_OK__ is returned.<br>
|
|
28
|
+
* If __ADLXHelper_Initialize__ is not successfully executed, an error code is returned.<br>
|
|
29
|
+
* If ADLX was previously successfully initialized with any of the initialization functions, __ADLX_ALREADY_INITIALIZED__ is returned.<br>
|
|
30
|
+
* Refer to @ref ADLX_RESULT for success codes and error codes.
|
|
31
|
+
* @ENG_END_DOX
|
|
32
|
+
*
|
|
33
|
+
* @detaileddesc
|
|
34
|
+
* @ENG_START_DOX
|
|
35
|
+
* @details This function is used when an application does not use the ADL library and initializes ADLX with default parameters.<br>
|
|
36
|
+
* For more information for initializing ADLX with default parameters, refer to @ref @adlx_gpu_support "ADLX GPU Support".<br>
|
|
37
|
+
* @ENG_END_DOX
|
|
38
|
+
*
|
|
39
|
+
* @requirements
|
|
40
|
+
* @DetailsTable{#include "ADLXHelper/Windows/C/ADLXHelper.h", @ADLX_First_Ver}
|
|
41
|
+
*/
|
|
42
|
+
ADLX_RESULT ADLXHelper_Initialize();
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* @page page_cHelpADLXHelper_InitializeWithIncompatibleDriver ADLXHelper_InitializeWithIncompatibleDriver
|
|
46
|
+
* @ENG_START_DOX
|
|
47
|
+
* @brief Initializes ADLX with a legacy driver.<br>
|
|
48
|
+
* @ENG_END_DOX
|
|
49
|
+
*
|
|
50
|
+
* @syntax
|
|
51
|
+
* @codeStart
|
|
52
|
+
* @ref ADLX_RESULT ADLXHelper_InitializeWithIncompatibleDriver ()
|
|
53
|
+
* @codeEnd
|
|
54
|
+
* @params
|
|
55
|
+
* N/A
|
|
56
|
+
*
|
|
57
|
+
* @retvalues
|
|
58
|
+
* @ENG_START_DOX
|
|
59
|
+
* If __ADLXHelper_InitializeWithIncompatibleDriver__ is successfully executed, __ADLX_OK__ is returned.<br>
|
|
60
|
+
* If __ADLXHelper_InitializeWithIncompatibleDriver__ is not successfully executed, an error code is returned.<br>
|
|
61
|
+
* If ADLX was previously successfully initialized with any of the initialization functions, __ADLX_ALREADY_INITIALIZED__ is returned.<br>
|
|
62
|
+
* Refer to @ref ADLX_RESULT for success codes and error codes.<br>
|
|
63
|
+
* @ENG_END_DOX
|
|
64
|
+
*
|
|
65
|
+
* @detaileddesc
|
|
66
|
+
* @ENG_START_DOX
|
|
67
|
+
* @details This function is used when an application does not use the ADL library and initializes ADLX to consider AMD GPUs using legacy AMD graphics driver.<br>
|
|
68
|
+
* For more information for initializing ADLX with a legacy driver, refer to @ref @adlx_gpu_support "ADLX GPU Support".<br>
|
|
69
|
+
* @ENG_END_DOX
|
|
70
|
+
*
|
|
71
|
+
* @requirements
|
|
72
|
+
* @DetailsTable{#include "ADLXHelper/Windows/C/ADLXHelper.h", @ADLX_First_Ver}
|
|
73
|
+
*/
|
|
74
|
+
ADLX_RESULT ADLXHelper_InitializeWithIncompatibleDriver();
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* @page page_cHelpADLXHelper_InitializeWithCallerAdl ADLXHelper_InitializeWithCallerAdl
|
|
78
|
+
* @ENG_START_DOX
|
|
79
|
+
* @brief Initializes ADLX with an ADL context.
|
|
80
|
+
* @ENG_END_DOX
|
|
81
|
+
*
|
|
82
|
+
* @syntax
|
|
83
|
+
* @codeStart
|
|
84
|
+
* @ref ADLX_RESULT ADLXHelper_InitializeWithCallerAdl (adlx_handle adlContext, @ref ADLX_ADL_Main_Memory_Free adlMainMemoryFree)
|
|
85
|
+
* @codeEnd
|
|
86
|
+
* @params
|
|
87
|
+
* @paramrow{1.,[in],adlContext,adlx_handle,@ENG_START_DOX The ADL context. @ENG_END_DOX}
|
|
88
|
+
* @paramrow{2.,[in],adlMainMemoryFree,@ref ADLX_ADL_Main_Memory_Free,@ENG_START_DOX The callback handler of the memory deallocation function. @ENG_END_DOX}
|
|
89
|
+
*
|
|
90
|
+
* @retvalues
|
|
91
|
+
* @ENG_START_DOX
|
|
92
|
+
* If __ADLXHelper_InitializeWithCallerAdl__ is successfully executed, __ADLX_OK__ is returned.<br>
|
|
93
|
+
* If __ADLXHelper_InitializeWithCallerAdl__ is not successfully executed, an error code is returned.<br>
|
|
94
|
+
* If ADLX was previously successfully initialized with any of the Initialize versions, __ADLX_ALREADY_INITIALIZED__ is returned.<br>
|
|
95
|
+
* Refer to @ref ADLX_RESULT for success codes and error codes.<br>
|
|
96
|
+
* @ENG_END_DOX
|
|
97
|
+
*
|
|
98
|
+
* @detaileddesc
|
|
99
|
+
* @ENG_START_DOX
|
|
100
|
+
* @details
|
|
101
|
+
* This function is used when an application also uses ADL. A typical scenario is the application is transitioning from ADL to ADLX with some programming already completed with ADL.<br>
|
|
102
|
+
* In such case, the application shall pass the parameters in this function that corresponds to the current ADL initialization already in use, which are: an ADL context and a callback for the memory deallocation when ADL was initialized.<br>
|
|
103
|
+
* For more information for initializing ADLX with an ADL context, refer to @ref page_guide_use_ADLX "Using ADLX in an ADL application".<br>
|
|
104
|
+
* @ENG_END_DOX
|
|
105
|
+
*
|
|
106
|
+
* @requirements
|
|
107
|
+
* @DetailsTable{#include "ADLXHelper/Windows/C/ADLXHelper.h", @ADLX_First_Ver}
|
|
108
|
+
*/
|
|
109
|
+
ADLX_RESULT ADLXHelper_InitializeWithCallerAdl (adlx_handle adlContext, ADLX_ADL_Main_Memory_Free adlMainMemoryFree);
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* @page page_cHelpADLXHelper_Terminate ADLXHelper_Terminate
|
|
113
|
+
* @ENG_START_DOX
|
|
114
|
+
* @brief Terminates ADLX and releases ADLX library.
|
|
115
|
+
* @ENG_END_DOX
|
|
116
|
+
*
|
|
117
|
+
* @syntax
|
|
118
|
+
* @codeStart
|
|
119
|
+
* @ref ADLX_RESULT ADLXHelper_Terminate ()
|
|
120
|
+
* @codeEnd
|
|
121
|
+
* @params
|
|
122
|
+
* N/A
|
|
123
|
+
*
|
|
124
|
+
* @retvalues
|
|
125
|
+
* @ENG_START_DOX
|
|
126
|
+
* If __ADLXHelper_Terminate__ is successfully executed, __ADLX_OK__ is returned.<br>
|
|
127
|
+
* If __ADLXHelper_Terminate__ is not successfully executed, an error code is returned.<br>
|
|
128
|
+
* Refer to @ref ADLX_RESULT for success codes and error codes.
|
|
129
|
+
* @ENG_END_DOX
|
|
130
|
+
*
|
|
131
|
+
* @detaileddesc
|
|
132
|
+
* @ENG_START_DOX
|
|
133
|
+
* @details
|
|
134
|
+
* Any interface obtained from ADLX that is not released becomes invalid.<br>
|
|
135
|
+
* Any attempt of calling ADLX interface after termination could result in errors such as exceptions or crashes.<br>
|
|
136
|
+
* @ENG_END_DOX
|
|
137
|
+
*
|
|
138
|
+
* @requirements
|
|
139
|
+
* @DetailsTable{#include "ADLXHelper/Windows/C/ADLXHelper.h", @ADLX_First_Ver}
|
|
140
|
+
*/
|
|
141
|
+
ADLX_RESULT ADLXHelper_Terminate();
|
|
142
|
+
|
|
143
|
+
/**
|
|
144
|
+
* @page page_cHelpADLXHelper_GetSystemServices ADLXHelper_GetSystemServices
|
|
145
|
+
* @ENG_START_DOX
|
|
146
|
+
* @brief Gets the ADLX system interface.
|
|
147
|
+
* @ENG_END_DOX
|
|
148
|
+
*
|
|
149
|
+
* @syntax
|
|
150
|
+
* @codeStart
|
|
151
|
+
* @ref DOX_IADLXSystem* ADLXHelper_GetSystemServices ()
|
|
152
|
+
* @codeEnd
|
|
153
|
+
* @params
|
|
154
|
+
* N/A
|
|
155
|
+
*
|
|
156
|
+
* @retvalues
|
|
157
|
+
* @ENG_START_DOX
|
|
158
|
+
* If ADLX was successfully initialized before this function call, the @ref DOX_IADLXSystem interface is returned.<br>
|
|
159
|
+
* If ADLX was not successfully initialized, __nullptr__ is returned.
|
|
160
|
+
* @ENG_END_DOX
|
|
161
|
+
*
|
|
162
|
+
* @requirements
|
|
163
|
+
* @DetailsTable{#include "ADLXHelper/Windows/C/ADLXHelper.h", @ADLX_First_Ver}
|
|
164
|
+
*/
|
|
165
|
+
IADLXSystem* ADLXHelper_GetSystemServices ();
|
|
166
|
+
|
|
167
|
+
/**
|
|
168
|
+
* @page page_cHelpADLXHelper_GetAdlMapping ADLXHelper_GetAdlMapping
|
|
169
|
+
* @ENG_START_DOX
|
|
170
|
+
* @brief Gets the ADL Mapping interface.
|
|
171
|
+
* @ENG_END_DOX
|
|
172
|
+
*
|
|
173
|
+
* @syntax
|
|
174
|
+
* @codeStart
|
|
175
|
+
* @ref DOX_IADLMapping* ADLXHelper_GetAdlMapping ()
|
|
176
|
+
* @codeEnd
|
|
177
|
+
* @params
|
|
178
|
+
* N/A
|
|
179
|
+
*
|
|
180
|
+
* @retvalues
|
|
181
|
+
* @ENG_START_DOX
|
|
182
|
+
* If ADLX was successfully initialized with ADL, a valid pointer of the @ref DOX_IADLMapping interface is returned.<br>
|
|
183
|
+
* If ADLX was initialized under any of the following circumstances, __nullptr__ is returned.<br>
|
|
184
|
+
* - ADLX initialization was with other initialization methods.<br>
|
|
185
|
+
* - ADLX initialization was failed.<br>
|
|
186
|
+
* - ADLX initialization was not called.<br>
|
|
187
|
+
* @ENG_END_DOX
|
|
188
|
+
*
|
|
189
|
+
* @detaileddesc
|
|
190
|
+
* @ENG_START_DOX
|
|
191
|
+
* @details __ADLXHelper_GetAdlMapping__ is used to convert data between ADL and ADLX in applications where ADLX was initialized with @ref page_cHelpADLXHelper_InitializeWithCallerAdl.
|
|
192
|
+
* @ENG_END_DOX
|
|
193
|
+
*
|
|
194
|
+
* @requirements
|
|
195
|
+
* @DetailsTable{#include "ADLXHelper/Windows/C/ADLXHelper.h", @ADLX_First_Ver}
|
|
196
|
+
*/
|
|
197
|
+
IADLMapping* ADLXHelper_GetAdlMapping();
|
|
198
|
+
|
|
199
|
+
/**
|
|
200
|
+
* @page page_cHelpADLXHelper_QueryFullVersion ADLXHelper_QueryFullVersion
|
|
201
|
+
* @ENG_START_DOX
|
|
202
|
+
* @brief Gets the full version of ADLX.
|
|
203
|
+
* @ENG_END_DOX
|
|
204
|
+
*
|
|
205
|
+
* @syntax
|
|
206
|
+
* @codeStart
|
|
207
|
+
* adlx_uint64 ADLXHelper_QueryFullVersion ()
|
|
208
|
+
* @codeEnd
|
|
209
|
+
* @params
|
|
210
|
+
* N/A
|
|
211
|
+
*
|
|
212
|
+
* @retvalues
|
|
213
|
+
* @ENG_START_DOX
|
|
214
|
+
* The full version of ADLX.
|
|
215
|
+
* @ENG_END_DOX
|
|
216
|
+
*
|
|
217
|
+
* @requirements
|
|
218
|
+
* @DetailsTable{#include "ADLXHelper/Windows/C/ADLXHelper.h", @ADLX_First_Ver}
|
|
219
|
+
*/
|
|
220
|
+
adlx_uint64 ADLXHelper_QueryFullVersion();
|
|
221
|
+
|
|
222
|
+
/**
|
|
223
|
+
* @page page_cHelpADLXHelper_QueryVersion ADLXHelper_QueryVersion
|
|
224
|
+
* @ENG_START_DOX
|
|
225
|
+
* @brief Gets the version of ADLX.
|
|
226
|
+
* @ENG_END_DOX
|
|
227
|
+
*
|
|
228
|
+
* @syntax
|
|
229
|
+
* @codeStart
|
|
230
|
+
* const char* ADLXHelper_QueryVersion ();
|
|
231
|
+
* @codeEnd
|
|
232
|
+
* @params
|
|
233
|
+
* N/A
|
|
234
|
+
*
|
|
235
|
+
* @retvalues
|
|
236
|
+
* @ENG_START_DOX
|
|
237
|
+
* The version of ADLX.
|
|
238
|
+
* @ENG_END_DOX
|
|
239
|
+
*
|
|
240
|
+
* @requirements
|
|
241
|
+
* @DetailsTable{#include "ADLXHelper/Windows/C/ADLXHelper.h", @ADLX_First_Ver}
|
|
242
|
+
*/
|
|
243
|
+
const char* ADLXHelper_QueryVersion();
|
|
244
|
+
#endif // __ADLXFactoryC_h__
|
|
245
|
+
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright (c) 2021 - 2025 Advanced Micro Devices, Inc. All rights reserved.
|
|
3
|
+
//
|
|
4
|
+
//-------------------------------------------------------------------------------------------------
|
|
5
|
+
//This abstracts Win32 APIs in ADLX ones so we insulate from platform
|
|
6
|
+
#include "../ADLXDefines.h"
|
|
7
|
+
|
|
8
|
+
#if defined(_WIN32) // Microsoft compiler
|
|
9
|
+
#include <Windows.h>
|
|
10
|
+
#else
|
|
11
|
+
#error define your copiler
|
|
12
|
+
#endif
|
|
13
|
+
static volatile uint64_t v = 0;
|
|
14
|
+
|
|
15
|
+
//----------------------------------------------------------------------------------------
|
|
16
|
+
// threading
|
|
17
|
+
//----------------------------------------------------------------------------------------
|
|
18
|
+
adlx_long ADLX_CDECL_CALL adlx_atomic_inc (adlx_long* X)
|
|
19
|
+
{
|
|
20
|
+
#if defined(_WIN32) // Microsoft compiler
|
|
21
|
+
return InterlockedIncrement((long*)X);
|
|
22
|
+
#endif
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
//----------------------------------------------------------------------------------------
|
|
26
|
+
adlx_long ADLX_CDECL_CALL adlx_atomic_dec (adlx_long* X)
|
|
27
|
+
{
|
|
28
|
+
#if defined(_WIN32) // Microsoft compiler
|
|
29
|
+
return InterlockedDecrement((long*)X);
|
|
30
|
+
#endif
|
|
31
|
+
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
//----------------------------------------------------------------------------------------
|
|
35
|
+
adlx_handle ADLX_CDECL_CALL adlx_load_library (const TCHAR* filename)
|
|
36
|
+
{
|
|
37
|
+
#if defined(METRO_APP)
|
|
38
|
+
return LoadPackagedLibrary (filename, 0);
|
|
39
|
+
#elif defined(_WIN32) // Microsoft compiler
|
|
40
|
+
return LoadLibraryEx(filename, NULL, LOAD_LIBRARY_SEARCH_USER_DIRS |
|
|
41
|
+
LOAD_LIBRARY_SEARCH_APPLICATION_DIR |
|
|
42
|
+
LOAD_LIBRARY_SEARCH_DEFAULT_DIRS |
|
|
43
|
+
LOAD_LIBRARY_SEARCH_SYSTEM32);
|
|
44
|
+
#endif
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
//----------------------------------------------------------------------------------------
|
|
48
|
+
int ADLX_CDECL_CALL adlx_free_library (adlx_handle module)
|
|
49
|
+
{
|
|
50
|
+
#if defined(_WIN32) // Microsoft compiler
|
|
51
|
+
return FreeLibrary((HMODULE)module) == TRUE;
|
|
52
|
+
#endif
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
//----------------------------------------------------------------------------------------
|
|
56
|
+
void* ADLX_CDECL_CALL adlx_get_proc_address (adlx_handle module, const char* procName)
|
|
57
|
+
{
|
|
58
|
+
#if defined(_WIN32) // Microsoft compiler
|
|
59
|
+
return (void*)GetProcAddress((HMODULE)module, procName);
|
|
60
|
+
#endif
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
//#endif //_WIN32
|
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright (c) 2021 - 2025 Advanced Micro Devices, Inc. All rights reserved.
|
|
3
|
+
//
|
|
4
|
+
//-------------------------------------------------------------------------------------------------
|
|
5
|
+
|
|
6
|
+
#ifndef ADLX_STRUCTURES_H
|
|
7
|
+
#define ADLX_STRUCTURES_H
|
|
8
|
+
#pragma once
|
|
9
|
+
#include "ADLXDefines.h"
|
|
10
|
+
|
|
11
|
+
/** @file */
|
|
12
|
+
//-------------------------------------------------------------------------------------------------
|
|
13
|
+
#pragma region ADLX_RGB
|
|
14
|
+
/**
|
|
15
|
+
* @struct ADLX_RGB
|
|
16
|
+
* @ingroup structuresVal
|
|
17
|
+
* @ENG_START_DOX
|
|
18
|
+
* @brief This structure contains RGB information.
|
|
19
|
+
* @ENG_END_DOX
|
|
20
|
+
*/
|
|
21
|
+
typedef struct
|
|
22
|
+
{
|
|
23
|
+
adlx_double gamutR; /**< @ENG_START_DOX Red @ENG_END_DOX */
|
|
24
|
+
adlx_double gamutG; /**< @ENG_START_DOX Green @ENG_END_DOX */
|
|
25
|
+
adlx_double gamutB; /**< @ENG_START_DOX Blue @ENG_END_DOX */
|
|
26
|
+
} ADLX_RGB;
|
|
27
|
+
#pragma endregion ADLX_RGB
|
|
28
|
+
|
|
29
|
+
#pragma region ADLX_Point
|
|
30
|
+
/**
|
|
31
|
+
* @struct ADLX_Point
|
|
32
|
+
* @ingroup structuresVal
|
|
33
|
+
* @ENG_START_DOX
|
|
34
|
+
* @brief This structure contains information on driver point coordinates, and is used to store the driver-point coodinates for gamut, as well as white point.
|
|
35
|
+
* @ENG_END_DOX
|
|
36
|
+
*/
|
|
37
|
+
typedef struct
|
|
38
|
+
{
|
|
39
|
+
adlx_int x; /**< @ENG_START_DOX The x coordinate. @ENG_END_DOX */
|
|
40
|
+
adlx_int y; /**< @ENG_START_DOX The y coordinate. @ENG_END_DOX */
|
|
41
|
+
} ADLX_Point;
|
|
42
|
+
#pragma endregion ADLX_Point
|
|
43
|
+
|
|
44
|
+
#pragma region ADLX_GamutColorSpace
|
|
45
|
+
/**
|
|
46
|
+
* @struct ADLX_GamutColorSpace
|
|
47
|
+
* @ingroup structuresVal
|
|
48
|
+
* @ENG_START_DOX
|
|
49
|
+
* @brief This structure contains information on driver-supported gamut coordinates
|
|
50
|
+
* @ENG_END_DOX
|
|
51
|
+
*/
|
|
52
|
+
typedef struct
|
|
53
|
+
{
|
|
54
|
+
ADLX_Point red; /**< @ENG_START_DOX The red channel chromaticity coordinate. @ENG_END_DOX */
|
|
55
|
+
ADLX_Point green; /**< @ENG_START_DOX The green channel chromaticity coordinate. @ENG_END_DOX */
|
|
56
|
+
ADLX_Point blue; /**< @ENG_START_DOX The blue channel chromaticity coordinate. @ENG_END_DOX */
|
|
57
|
+
} ADLX_GamutColorSpace;
|
|
58
|
+
#pragma endregion ADLX_GamutColorSpace
|
|
59
|
+
|
|
60
|
+
#pragma region ADLX_GammaRamp
|
|
61
|
+
/**
|
|
62
|
+
* @struct ADLX_GammaRamp
|
|
63
|
+
* @ingroup structuresVal
|
|
64
|
+
* @ENG_START_DOX
|
|
65
|
+
* @brief This structure contains the display gamma ramp used to program the re-gamma LUT.
|
|
66
|
+
* @ENG_END_DOX
|
|
67
|
+
*/
|
|
68
|
+
typedef struct
|
|
69
|
+
{
|
|
70
|
+
adlx_uint16 gamma[256 * 3]; /**< @ENG_START_DOX The gamma ramp is a buffer containing 256 triplets of adlx_uint16 values.
|
|
71
|
+
Each triplet consists of red, green and blue values. @ENG_END_DOX */
|
|
72
|
+
} ADLX_GammaRamp;
|
|
73
|
+
#pragma endregion ADLX_GammaRamp
|
|
74
|
+
|
|
75
|
+
#pragma region ADLX_RegammaCoeff
|
|
76
|
+
/**
|
|
77
|
+
* @struct ADLX_RegammaCoeff
|
|
78
|
+
* @ingroup structuresVal
|
|
79
|
+
* @ENG_START_DOX
|
|
80
|
+
* @brief This structure contains information on driver-supported re-gamma coefficients used to build the re-gamma curve.
|
|
81
|
+
* @ENG_END_DOX
|
|
82
|
+
*/
|
|
83
|
+
typedef struct
|
|
84
|
+
{
|
|
85
|
+
adlx_int coefficientA0; /**< @ENG_START_DOX The a0 gamma coefficient. @ENG_END_DOX */
|
|
86
|
+
adlx_int coefficientA1; /**< @ENG_START_DOX The a1 gamma coefficient. @ENG_END_DOX */
|
|
87
|
+
adlx_int coefficientA2; /**< @ENG_START_DOX The a2 gamma coefficient. @ENG_END_DOX */
|
|
88
|
+
adlx_int coefficientA3; /**< @ENG_START_DOX The a3 gamma coefficient. @ENG_END_DOX */
|
|
89
|
+
adlx_int gamma; /**< @ENG_START_DOX The regamma divider. @ENG_END_DOX */
|
|
90
|
+
} ADLX_RegammaCoeff;
|
|
91
|
+
#pragma endregion ADLX_RegammaCoeff
|
|
92
|
+
|
|
93
|
+
#pragma region ADLX_TimingInfo
|
|
94
|
+
/**
|
|
95
|
+
* @struct ADLX_TimingInfo
|
|
96
|
+
* @ingroup structuresVal
|
|
97
|
+
* @ENG_START_DOX
|
|
98
|
+
* @brief This structure contains display timing information.
|
|
99
|
+
* @ENG_END_DOX
|
|
100
|
+
*/
|
|
101
|
+
typedef struct
|
|
102
|
+
{
|
|
103
|
+
adlx_int timingFlags; /**< @ENG_START_DOX The detailed timing flag. @ENG_END_DOX */
|
|
104
|
+
adlx_int hTotal; /**< @ENG_START_DOX The total number of pixels that compose all scan lines during a horizontal sync. @ENG_END_DOX */
|
|
105
|
+
adlx_int vTotal; /**< @ENG_START_DOX The total number of vertical pixels permitted/processed per sync. @ENG_END_DOX */
|
|
106
|
+
|
|
107
|
+
adlx_int hDisplay; /**< @ENG_START_DOX The number of horizontal pixels within the active area. @ENG_END_DOX */
|
|
108
|
+
adlx_int vDisplay; /**< @ENG_START_DOX The number of vertical pixels within the active display area. @ENG_END_DOX */
|
|
109
|
+
|
|
110
|
+
adlx_int hFrontPorch; /**< @ENG_START_DOX The number of horizontal pixels between the end of the active area and the next sync. This is the distance between the right/bottom portion of the display up to the right/bottom portion of the actual image. @ENG_END_DOX */
|
|
111
|
+
adlx_int vFrontPorch; /**< @ENG_START_DOX The number of vertical pixels between the end of the active area and the next sync. This is the distance between the right/bottom portion of the display to the right/bottom portion of the actual image. @ENG_END_DOX */
|
|
112
|
+
|
|
113
|
+
adlx_int hSyncWidth; /**< @ENG_START_DOX The number of pixels that compose a scan line during a horizontal sync. @ENG_END_DOX */
|
|
114
|
+
adlx_int vSyncWidth; /**< @ENG_START_DOX The number of vertical pixels permitted/processed during a sync. @ENG_END_DOX */
|
|
115
|
+
|
|
116
|
+
adlx_int hPolarity; /**< @ENG_START_DOX The horizontal polarity of sync signals, 0 POSITIVE; 1 NEGATIVE. Positive makes the active signals high while negative makes the active signals low. @ENG_END_DOX */
|
|
117
|
+
adlx_int vPolarity; /**< @ENG_START_DOX The vertical polarity of sync signals, 0 POSITIVE; 1 NEGATIVE. Positive makes the active signals high while negative makes the active signals low. @ENG_END_DOX */
|
|
118
|
+
} ADLX_TimingInfo;
|
|
119
|
+
|
|
120
|
+
#pragma endregion ADLX_TimingInfo
|
|
121
|
+
|
|
122
|
+
#pragma region ADLX_CustomResolution
|
|
123
|
+
/** @struct ADLX_CustomResolution
|
|
124
|
+
* @ingroup structuresVal
|
|
125
|
+
* @ENG_START_DOX
|
|
126
|
+
* @brief This structure contains information for custom resolution parameters on a given display.
|
|
127
|
+
* @ENG_END_DOX
|
|
128
|
+
*
|
|
129
|
+
*/
|
|
130
|
+
typedef struct
|
|
131
|
+
{
|
|
132
|
+
adlx_int resWidth; /**< @ENG_START_DOX The resolution width. @ENG_END_DOX */
|
|
133
|
+
adlx_int resHeight; /**< @ENG_START_DOX The resolution height. @ENG_END_DOX */
|
|
134
|
+
adlx_int refreshRate; /**< @ENG_START_DOX The refresh rate. @ENG_END_DOX */
|
|
135
|
+
ADLX_DISPLAY_SCAN_TYPE presentation; /**< @ENG_START_DOX The presentation method, 0 PROGRESSIVE; 1 INTERLACED. @ENG_END_DOX */
|
|
136
|
+
ADLX_TIMING_STANDARD timingStandard; /**< @ENG_START_DOX The display timing standard. @ENG_END_DOX */
|
|
137
|
+
adlx_long GPixelClock; /**< @ENG_START_DOX The speed at which pixels are transmitted within on a refresh cycle. @ENG_END_DOX */
|
|
138
|
+
ADLX_TimingInfo detailedTiming; /**< @ENG_START_DOX The detailed timing information. @ENG_END_DOX */
|
|
139
|
+
} ADLX_CustomResolution;
|
|
140
|
+
|
|
141
|
+
#pragma endregion ADLX_CustomResolution
|
|
142
|
+
|
|
143
|
+
#pragma region ADLX_IntRange
|
|
144
|
+
/** @struct ADLX_IntRange
|
|
145
|
+
* @ingroup structuresVal
|
|
146
|
+
* @ENG_START_DOX
|
|
147
|
+
* @brief This structure contains information on the integer range.
|
|
148
|
+
* @ENG_END_DOX
|
|
149
|
+
*
|
|
150
|
+
*/
|
|
151
|
+
typedef struct
|
|
152
|
+
{
|
|
153
|
+
adlx_int minValue; /**< @ENG_START_DOX The minimum integer value. @ENG_END_DOX */
|
|
154
|
+
adlx_int maxValue; /**< @ENG_START_DOX The maximum integer value. @ENG_END_DOX */
|
|
155
|
+
adlx_int step; /**< @ENG_START_DOX The accepted integer range step. @ENG_END_DOX */
|
|
156
|
+
} ADLX_IntRange;
|
|
157
|
+
#pragma endregion ADLX_IntRange
|
|
158
|
+
|
|
159
|
+
#pragma region ADLX_UINT16_RGB
|
|
160
|
+
/** @struct ADLX_UINT16_RGB
|
|
161
|
+
* @ingroup structuresVal
|
|
162
|
+
* @ENG_START_DOX
|
|
163
|
+
* @brief This structure contains UINT16 RGB information.
|
|
164
|
+
* @ENG_END_DOX
|
|
165
|
+
*
|
|
166
|
+
*/
|
|
167
|
+
typedef struct ADLX_UINT16_RGB
|
|
168
|
+
{
|
|
169
|
+
adlx_uint16 red; /**< @ENG_START_DOX Red @ENG_END_DOX */
|
|
170
|
+
adlx_uint16 green; /**< @ENG_START_DOX Green @ENG_END_DOX */
|
|
171
|
+
adlx_uint16 blue; /**< @ENG_START_DOX Blue @ENG_END_DOX */
|
|
172
|
+
} ADLX_UINT16_RGB;
|
|
173
|
+
#pragma endregion ADLX_UINT16_RGB
|
|
174
|
+
|
|
175
|
+
#pragma region ADLX_3DLUT_Data
|
|
176
|
+
/** @struct ADLX_3DLUT_Data
|
|
177
|
+
* @ingroup structuresVal
|
|
178
|
+
* @ENG_START_DOX
|
|
179
|
+
* @brief This structure contains custom 3D LUT information.
|
|
180
|
+
* @ENG_END_DOX
|
|
181
|
+
*
|
|
182
|
+
*/
|
|
183
|
+
|
|
184
|
+
typedef struct ADLX_3DLUT_Data
|
|
185
|
+
{
|
|
186
|
+
ADLX_UINT16_RGB data[MAX_USER_3DLUT_NUM_POINTS * MAX_USER_3DLUT_NUM_POINTS * MAX_USER_3DLUT_NUM_POINTS]; /**< @ENG_START_DOX The data is a buffer containing 17*17*17 triplets of @ref ADLX_UINT16_RGB values. Each triplet consists of red, green and blue values.
|
|
187
|
+
For 3D LUT data we use ushort 0 - 0xFFFF, data must be zero-padded to 16-bit. @ENG_END_DOX */
|
|
188
|
+
} ADLX_3DLUT_Data;
|
|
189
|
+
#pragma endregion ADLX_3DLUT_Data
|
|
190
|
+
|
|
191
|
+
#pragma region ADLX_LUID
|
|
192
|
+
/**
|
|
193
|
+
* @struct ADLX_LUID
|
|
194
|
+
* @ingroup structuresVal
|
|
195
|
+
* @ENG_START_DOX
|
|
196
|
+
* @brief This structure contains the local identifier information of the adapter.
|
|
197
|
+
* @ENG_END_DOX
|
|
198
|
+
*/
|
|
199
|
+
typedef struct ADLX_LUID
|
|
200
|
+
{
|
|
201
|
+
adlx_ulong lowPart; /**< @ENG_START_DOX Specifies the low part of the local id. @ENG_END_DOX */
|
|
202
|
+
adlx_long highPart; /**< @ENG_START_DOX Specifies the high part of the local id. @ENG_END_DOX */
|
|
203
|
+
} ADLX_LUID;
|
|
204
|
+
#pragma endregion ADLX_LUID
|
|
205
|
+
|
|
206
|
+
#endif //ADLX_STRUCTURES_H
|