- AMD Device Library eXtra v1.5
-
Programming with ADLX
- Programming with ADLX
-
ADLX Programming Guide
-
ADLX Samples
- ADLX Samples
-
C Samples
- C Samples
-
Display
- Display
- Display3DLUT
- DisplayBlanking
- DisplayColorDepth
- DisplayConnectivityExperience
- DisplayCustomColor
- DisplayCustomResolution
- DisplayDynamicRefreshRateControl
- DisplayEvents
- DisplayFreeSync
- DisplayFreeSyncColorAccuracy
- DisplayGamma
- DisplayGamut
- DisplayGPUScaling
- DisplayHDCP
- DisplayInfo
- DisplayIntegerScaling
- DisplayPixelFormat
- DisplayScalingMode
- DisplayVariBright
- DisplayVSR
-
Performance Monitoring
-
Receiving Events Notifications
-
C++ Samples
- C++ Samples
-
Display
- Display
- Display3DLUT
- DisplayBlanking
- DisplayColorDepth
- DisplayConnectivityExperience
- DisplayCustomColor
- DisplayCustomResolution
- DisplayDynamicRefreshRateControl
- DisplayEvents
- DisplayFreeSync
- DisplayFreeSyncColorAccuracy
- DisplayGamma
- DisplayGamut
- DisplayGPUScaling
- DisplayHDCP
- DisplayInfo
- DisplayIntegerScaling
- DisplayPixelFormat
- DisplayScalingMode
- DisplayVariBright
- DisplayVSR
-
Performance Monitoring
-
Receiving Events Notifications
-
ADLX SDK References
- ADLX SDK References
-
ADLX Helpers
-
ADLX Interfaces
- ADLX Interfaces
-
3D Graphics
- 3D Graphics
-
IADLX3DAnisotropicFiltering
-
IADLX3DAntiAliasing
-
IADLX3DFidelityFXFrameGenUpgrade
-
IADLX3DFidelityFXFrameGenUpgradeRatioOptionList
-
IADLX3DFrameRateTargetControl
-
IADLX3DImageSharpening
-
IADLX3DRadeonSuperResolution
-
IADLX3DSettingsChangedEvent
- IADLX3DSettingsChangedEvent
- GetGPU
- IsAnisotropicFilteringChanged
- IsAntiAliasingChanged
- IsAntiLagChanged
- IsBoostChanged
- IsChillChanged
- IsEnhancedSyncChanged
- IsFrameRateTargetControlChanged
- IsImageSharpeningChanged
- IsMorphologicalAntiAliasingChanged
- IsRadeonSuperResolutionChanged
- IsResetShaderCache
- IsTessellationModeChanged
- IsWaitForVerticalRefreshChanged
-
IADLX3DSettingsChangedEvent3
-
IADLX3DSettingsChangedHandling
-
IADLX3DSettingsServices
-
IADLX3DSettingsServices3
-
Display
- Display
-
IADLXDisplay3DLUT
- IADLXDisplay3DLUT
- ClearUser3DLUT
- GetAllUser3DLUT
- GetHDRUser3DLUT
- GetSCEDynamicContrast
- GetSCEDynamicContrastRange
- GetSDRUser3DLUT
- GetUser3DLUTIndex
- IsCurrentSCEDisabled
- IsCurrentSCEDynamicContrast
- IsCurrentSCEVividGaming
- IsSupportedSCE
- IsSupportedSCEDynamicContrast
- IsSupportedSCEVividGaming
- IsSupportedUser3DLUT
- SetAllUser3DLUT
- SetHDRUser3DLUT
- SetSCEDisabled
- SetSCEDynamicContrast
- SetSCEVividGaming
- SetSDRUser3DLUT
-
IADLXDisplay3DLUTChangedEvent
-
IADLXDisplayBlanking
-
IADLXDisplayChangedHandling
- IADLXDisplayChangedHandling
- AddDisplay3DLUTEventListener
- AddDisplayGammaEventListener
- AddDisplayGamutEventListener
- AddDisplayListEventListener
- AddDisplaySettingsEventListener
- RemoveDisplay3DLUTEventListener
- RemoveDisplayGammaEventListener
- RemoveDisplayGamutEventListener
- RemoveDisplayListEventListener
- RemoveDisplaySettingsEventListener
-
IADLXDisplayConnectivityExperience
- IADLXDisplayConnectivityExperience
- GetDPLinkRate
- GetNumberOfActiveLanes
- GetNumberOfTotalLanes
- GetRelativePreEmphasis
- GetRelativeVoltageSwing
- IsEnabledHDMIQualityDetection
- IsEnabledLinkProtection
- IsSupportedDPLink
- IsSupportedHDMIQualityDetection
- SetEnabledHDMIQualityDetection
- SetRelativePreEmphasis
- SetRelativeVoltageSwing
-
IADLXDisplayCustomColor
- IADLXDisplayCustomColor
- GetBrightness
- GetBrightnessRange
- GetContrast
- GetContrastRange
- GetHue
- GetHueRange
- GetSaturation
- GetSaturationRange
- GetTemperature
- GetTemperatureRange
- IsBrightnessSupported
- IsContrastSupported
- IsHueSupported
- IsSaturationSupported
- IsTemperatureSupported
- SetBrightness
- SetContrast
- SetHue
- SetSaturation
- SetTemperature
-
IADLXDisplayCustomResolution
-
IADLXDisplayDynamicRefreshRateControl
-
IADLXDisplayFreeSyncColorAccuracy
-
IADLXDisplayGamma
- IADLXDisplayGamma
- GetGammaCoefficient
- GetGammaRamp
- IsCurrentDeGammaRamp
- IsCurrentReGamma36
- IsCurrentReGammaBT709
- IsCurrentRegammaCoefficient
- IsCurrentReGammaPQ
- IsCurrentReGammaPQ2084Interim
- IsCurrentReGammaRamp
- IsCurrentReGammaSRGB
- IsSupportedReGamma36
- IsSupportedReGammaBT709
- IsSupportedReGammaPQ
- IsSupportedReGammaPQ2084Interim
- IsSupportedReGammaSRGB
- ResetGammaRamp
- SetDeGammaRamp
- SetReGamma36
- SetReGammaBT709
- SetReGammaCoefficient
- SetReGammaPQ
- SetReGammaPQ2084Interim
- SetReGammaRamp
- SetReGammaSRGB
-
IADLXDisplayGammaChangedEvent
-
IADLXDisplayGamut
- IADLXDisplayGamut
- GetGamutColorSpace
- GetWhitePoint
- IsCurrent5000kWhitePoint
- IsCurrent6500kWhitePoint
- IsCurrent7500kWhitePoint
- IsCurrent9300kWhitePoint
- IsCurrentAdobeRgbColorSpace
- IsCurrentCCIR2020ColorSpace
- IsCurrentCCIR601ColorSpace
- IsCurrentCCIR709ColorSpace
- IsCurrentCIERgbColorSpace
- IsCurrentCustomColorSpace
- IsCurrentCustomWhitePoint
- IsSupported5000kWhitePoint
- IsSupported6500kWhitePoint
- IsSupported7500kWhitePoint
- IsSupported9300kWhitePoint
- IsSupportedAdobeRgbColorSpace
- IsSupportedCCIR2020ColorSpace
- IsSupportedCCIR601ColorSpace
- IsSupportedCCIR709ColorSpace
- IsSupportedCIERgbColorSpace
- IsSupportedCustomColorSpace
- IsSupportedCustomWhitePoint
- SetGamut
-
IADLXDisplayGamutChangedEvent
-
IADLXDisplaySettingsChangedEvent
- IADLXDisplaySettingsChangedEvent
- GetDisplay
- IsColorDepthChanged
- IsCustomColorBrightnessChanged
- IsCustomColorContrastChanged
- IsCustomColorHueChanged
- IsCustomColorSaturationChanged
- IsCustomColorTemperatureChanged
- IsCustomResolutionChanged
- IsFreeSyncChanged
- IsGPUScalingChanged
- IsHDCPChanged
- IsIntegerScalingChanged
- IsPixelFormatChanged
- IsScalingModeChanged
- IsVariBrightChanged
- IsVSRChanged
-
IADLXDisplaySettingsChangedEvent3
-
IADLXDisplayVariBright1
- IADLXDisplayVariBright1
- IsBacklightAdaptiveEnabled
- IsBacklightAdaptiveSupported
- IsBatteryLifeEnabled
- IsBatteryLifeSupported
- IsFullScreenVideoEnabled
- IsFullScreenVideoSupported
- IsWindowsPowerModeEnabled
- IsWindowsPowerModeSupported
- SetBacklightAdaptiveEnabled
- SetBatteryLifeEnabled
- SetFullScreenVideoEnabled
- SetWindowsPowerModeEnabled
-
GPU Tuning
- GPU Tuning
-
IADLXGPUAutoTuningCompleteEvent
-
IADLXGPUTuningChangedEvent1
-
IADLXGPUTuningChangedHandling
-
IADLXGPUTuningServices
- IADLXGPUTuningServices
- GetAutoTuning
- GetGPUTuningChangedHandling
- GetManualFanTuning
- GetManualGFXTuning
- GetManualPowerTuning
- GetManualVRAMTuning
- GetPresetTuning
- IsAtFactory
- IsSupportedAutoTuning
- IsSupportedManualFanTuning
- IsSupportedManualGFXTuning
- IsSupportedManualPowerTuning
- IsSupportedManualVRAMTuning
- IsSupportedPresetTuning
- ResetToFactory
-
IADLXManualFanTuning
- IADLXManualFanTuning
- GetEmptyFanTuningStates
- GetFanTuningRanges
- GetFanTuningStates
- GetMinAcousticLimit
- GetMinAcousticLimitRange
- GetMinFanSpeed
- GetMinFanSpeedRange
- GetTargetFanSpeed
- GetTargetFanSpeedRange
- GetZeroRPMState
- IsSupportedMinAcousticLimit
- IsSupportedMinFanSpeed
- IsSupportedTargetFanSpeed
- IsSupportedZeroRPM
- IsValidFanTuningStates
- SetFanTuningStates
- SetMinAcousticLimit
- SetMinFanSpeed
- SetTargetFanSpeed
- SetZeroRPMState
-
IADLXManualFanTuningState
-
IADLXManualGraphicsTuning1
-
IADLXManualGraphicsTuning2_1
-
Miscellaneous
-
Multimedia
- Multimedia
-
IADLXMultimediaChangedEvent
-
IADLXMultimediaChangedHandling
-
IADLXMultimediaServices
-
IADLXVideoUpscale
-
Performance Monitoring
- Performance Monitoring
-
IADLXGPUMetricsSupport
- IADLXGPUMetricsSupport
- GetGPUClockSpeedRange
- GetGPUFanSpeedRange
- GetGPUHotspotTemperatureRange
- GetGPUIntakeTemperatureRange
- GetGPUPowerRange
- GetGPUTemperatureRange
- GetGPUTotalBoardPowerRange
- GetGPUUsageRange
- GetGPUVoltageRange
- GetGPUVRAMClockSpeedRange
- GetGPUVRAMRange
- IsSupportedGPUClockSpeed
- IsSupportedGPUFanSpeed
- IsSupportedGPUHotspotTemperature
- IsSupportedGPUIntakeTemperature
- IsSupportedGPUPower
- IsSupportedGPUTemperature
- IsSupportedGPUTotalBoardPower
- IsSupportedGPUUsage
- IsSupportedGPUVoltage
- IsSupportedGPUVRAM
- IsSupportedGPUVRAMClockSpeed
-
IADLXPerformanceMonitoringServices
- IADLXPerformanceMonitoringServices
- ClearPerformanceMetricsHistory
- GetAllMetricsHistory
- GetCurrentAllMetrics
- GetCurrentFPS
- GetCurrentGPUMetrics
- GetCurrentPerformanceMetricsHistorySize
- GetCurrentSystemMetrics
- GetFPSHistory
- GetGPUMetricsHistory
- GetMaxPerformanceMetricsHistorySize
- GetMaxPerformanceMetricsHistorySizeRange
- GetSamplingInterval
- GetSamplingIntervalRange
- GetSupportedGPUMetrics
- GetSupportedSystemMetrics
- GetSystemMetricsHistory
- SetMaxPerformanceMetricsHistorySize
- SetSamplingInterval
- StartPerformanceMetricsTracking
- StopPerformanceMetricsTracking
-
Power Tuning
- Power Tuning
-
IADLXGPUConnectChangedEvent
-
IADLXPowerTuningChangedHandling
-
IADLXPowerTuningServices1
-
IADLXSmartShiftMax
-
Legal Information and Compliance/Disclaimers
ADLXCSharpBind
Navigation: Programming with ADLX → ADLX Samples → C# Samples
Demonstrates how to wrap ADLX with SWIG when programming with ADLX.
Sample Path
/Samples/csharp/ADLXCSharpBind
C++
Code
C#
//// Copyright (c) 2021 - 2025 Advanced Micro Devices, Inc. All rights reserved.////-------------------------------------------------------------------------------------------------
%module(directors="1") ADLX%{#include <Windows.h>#include "../../../../SDK/Include/ADLXDefines.h"#include "../../../../SDK/Include/ICollections.h"#include "../../../../SDK/Include/IDisplays.h"#include "../../../../SDK/Include/ISystem.h"#include "../../../../SDK/Include/ILog.h"#include "../../../../SDK/ADLXHelper/Windows/Cpp/ADLXHelper.h"
typedef int64_t adlx_int64;typedef int32_t adlx_int32;typedef int16_t adlx_int16;typedef int8_t adlx_int8;typedef uint64_t adlx_uint64;typedef uint32_t adlx_uint32;typedef uint16_t adlx_uint16;typedef uint8_t adlx_uint8;typedef size_t adlx_size;typedef void* adlx_handle;typedef double adlx_double;typedef float adlx_float;typedef void adlx_void;typedef long adlx_long;typedef adlx_int32 adlx_int;typedef unsigned long adlx_ulong;typedef adlx_uint32 adlx_uint;typedef bool adlx_bool;typedef wchar_t WCHAR; // wc, 16-bit UNICODE charactertypedef WCHAR TCHAR;
// Microsoft#define ADLX_CORE_LINK __declspec(dllexport)#define ADLX_STD_CALL __stdcall#define ADLX_CDECL_CALL __cdecl#define ADLX_FAST_CALL __fastcall#define ADLX_INLINE __inline#define ADLX_FORCEINLINE __forceinline#define ADLX_NO_VTABLE __declspec(novtable)
//IID's#define ADLX_DECLARE_IID(X) static ADLX_INLINE const wchar_t* IID() { return X; }#define ADLX_IS_IID(X, Y) (!wcscmp (X, Y))#define ADLX_DECLARE_ITEM_IID(X) static ADLX_INLINE const wchar_t* ITEM_IID() { return X; }
using namespace adlx;%}
typedef int64_t adlx_int64;typedef int32_t adlx_int32;typedef int16_t adlx_int16;typedef int8_t adlx_int8;typedef uint64_t adlx_uint64;typedef uint32_t adlx_uint32;typedef uint16_t adlx_uint16;typedef uint8_t adlx_uint8;typedef size_t adlx_size;typedef void* adlx_handle;typedef double adlx_double;typedef float adlx_float;typedef void adlx_void;typedef long adlx_long;typedef adlx_int32 adlx_int;typedef unsigned long adlx_ulong;typedef adlx_uint32 adlx_uint;typedef bool adlx_bool;typedef wchar_t WCHAR; // wc, 16-bit UNICODE charactertypedef WCHAR TCHAR;
// Microsoft#define ADLX_CORE_LINK __declspec(dllexport)#define ADLX_STD_CALL __stdcall#define ADLX_CDECL_CALL __cdecl#define ADLX_FAST_CALL __fastcall#define ADLX_INLINE __inline#define ADLX_FORCEINLINE __forceinline#define ADLX_NO_VTABLE __declspec(novtable)
//IID's#define ADLX_DECLARE_IID(X) static ADLX_INLINE const wchar_t* IID() { return X; }#define ADLX_IS_IID(X, Y) (!wcscmp (X, Y))
#define ADLX_DECLARE_ITEM_IID(X) static ADLX_INLINE const wchar_t* ITEM_IID() { return X; }
/* Callback to turn on director wrapping */%feature("director") IADLXDisplayListChangedListener;
%include stdint.i%include carrays.i%include windows.i%include typemaps.i
%include "../../../../SDK/Include/ADLXDefines.h"%include "../../../../SDK/Include/ICollections.h"%include "../../../../SDK/Include/IDisplays.h"%include "../../../../SDK/Include/ISystem.h"%include "../../../../SDK/Include/ILog.h"%include "../../../../SDK/ADLXHelper/Windows/Cpp/ADLXHelper.h"using namespace adlx;
// T* pointer%include cpointer.i%pointer_functions(adlx_int, intP);%pointer_functions(double, doubleP);%pointer_functions(adlx_uint, uintP);%pointer_functions(ADLX_DISPLAY_TYPE, displayTypeP);%pointer_functions(ADLX_DISPLAY_CONNECTOR_TYPE, disConnectTypeP);%pointer_functions(ADLX_DISPLAY_SCAN_TYPE, disScanTypeP);%pointer_functions(adlx_size, adlx_sizeP);
// T** ppointer%define %ppointer_functions(TYPE,NAME)%{static TYPE *new_##NAME() { %}%{ return new TYPE(); %}%{}
static TYPE *copy_##NAME(TYPE value) { %}%{ return new TYPE(value); %}%{}
static void delete_##NAME(TYPE *obj) { %}%{ if (*obj) delete *obj; %}%{}
static void NAME ##_assign(TYPE *obj, TYPE value) { *obj = value;}
static TYPE NAME ##_value(TYPE *obj) { return *obj;}%}
TYPE *new_##NAME();TYPE *copy_##NAME(TYPE value);void delete_##NAME(TYPE *obj);void NAME##_assign(TYPE *obj, TYPE value);TYPE NAME##_value(TYPE *obj);
%enddef
%define %pointer_cast(TYPE1,TYPE2,NAME)%inline %{TYPE2 NAME(TYPE1 x) { return (TYPE2) x;}%}%enddef%ppointer_functions(IADLXDisplayServices*, displaySerP_Ptr);%ppointer_functions(IADLXDisplayList*, displayListP_Ptr);%ppointer_functions(IADLXDisplay*, displayP_Ptr);%ppointer_functions(IADLXDisplayChangedHandling*, displayChangeHandlP_Ptr);%ppointer_functions(char*, charP_Ptr);