diff --git a/DisplayMagicianShared/AMD/ADL.cs b/DisplayMagicianShared/AMD/ADL.cs index f7a1bd1..cd5c8d6 100644 --- a/DisplayMagicianShared/AMD/ADL.cs +++ b/DisplayMagicianShared/AMD/ADL.cs @@ -199,6 +199,20 @@ namespace ATI.ADL /// return ADL Error Code public delegate int ADL2_Display_DisplayMapConfig_Validate(IntPtr ADLContextHandle, int adapterIndex, int numPossibleMap, ref ADLPossibleMap possibleMaps, out int numPossibleMapResult, ref IntPtr possibleMapResult); + /// ADL2 function to set the current display mode information + /// Handle to ADL client context. + /// Adapter Index + /// The number of display maps to set + /// The pointer to the display manner information. Refer to the ADLDisplayMap structure for more information. + /// The number of display targets to set + /// The pointer to the display target object. Refer to the ADLDisplayTarget structure for more information. + /// The number of display targets that can be added + /// The list of display targets that can be added + /// The number of display targets that can be removed + /// The list of display targets that can be removed + /// return ADL Error Code + public delegate int ADL2_Display_DisplayMapConfig_PossibleAddAndRemove(IntPtr ADLContextHandle, int adapterIndex, int numDisplayMap, ref ADLDisplayMap displayMap, int numDisplayTarget, ref ADLDisplayTarget displayTarget, out int numPossibleAddTarget, out IntPtr possibleAddTarget, out int numPossibleRemoveTarget, out IntPtr possibleRemoveTarget); + // ADL version of function delegates /// ADL Create Function to create ADL Data @@ -1420,6 +1434,10 @@ namespace ATI.ADL [DllImport(Atiadlxx_FileName)] public static extern int ADL2_Display_DisplayMapConfig_Validate(IntPtr ADLContextHandle, int adapterIndex, int numPossibleMap, ref ADLPossibleMap possibleMaps, out int numPossibleMapResult, ref IntPtr possibleMapResult); + [DllImport(Atiadlxx_FileName)] + public static extern int ADL2_Display_DisplayMapConfig_PossibleAddAndRemove(IntPtr ADLContextHandle, int adapterIndex, int numDisplayMap, ref ADLDisplayMap displayMap, int numDisplayTarget, ref ADLDisplayTarget displayTarget, out int numPossibleAddTarget, out IntPtr possibleAddTarget, out int numPossibleRemoveTarget, out IntPtr possibleRemoveTarget); + + // ====================================== @@ -2033,6 +2051,29 @@ namespace ATI.ADL private static bool ADL2_Display_DisplayMapConfig_Validate_Check = false; #endregion ADL2_Display_DisplayMapConfig_Validate + #region ADL2_Display_DisplayMapConfig_PossibleAddAndRemove + /// ADL2_Display_DisplayMapConfig_PossibleAddAndRemove Delegates + public static ADL2_Display_DisplayMapConfig_PossibleAddAndRemove ADL2_Display_DisplayMapConfig_PossibleAddAndRemove + { + get + { + if (!ADL2_Display_DisplayMapConfig_PossibleAddAndRemove_Check && null == ADL2_Display_DisplayMapConfig_PossibleAddAndRemove_) + { + ADL2_Display_DisplayMapConfig_PossibleAddAndRemove_Check = true; + if (ADLCheckLibrary.IsFunctionValid("ADL2_Display_DisplayMapConfig_PossibleAddAndRemove")) + { + ADL2_Display_DisplayMapConfig_PossibleAddAndRemove_ = ADLImport.ADL2_Display_DisplayMapConfig_PossibleAddAndRemove; + } + } + return ADL2_Display_DisplayMapConfig_PossibleAddAndRemove_; + } + } + /// Private Delegate + private static ADL2_Display_DisplayMapConfig_PossibleAddAndRemove ADL2_Display_DisplayMapConfig_PossibleAddAndRemove_ = null; + /// check flag to indicate the delegate has been checked + private static bool ADL2_Display_DisplayMapConfig_PossibleAddAndRemove_Check = false; + #endregion ADL2_Display_DisplayMapConfig_PossibleAddAndRemove + // ================================ #region ADL_Main_Control_Create