diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d683f00..e6a0bc8 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -28,5 +28,27 @@ jobs: - name: Generate minimal-version dependencies run: cargo -Zminimal-versions generate-lockfile - uses: dtolnay/rust-toolchain@1.74.0 + - name: Upgrade to regex@1.5.1 + # Workaround for: + # https://github.com/rust-lang/regex/issues/931 + # https://github.com/rust-lang/rust-bindgen/pull/2714 + run: cargo update -p regex --precise 1.5.1 - name: Cargo check run: cargo check --workspace --all-targets + + generate: + runs-on: windows-latest + steps: + - uses: actions/checkout@v4 + - name: Checkout submodule + # Manually update submodules with --checkout because they are configured with update=none and will be skipped otherwise + run: git submodule update --recursive --init --force --checkout + - name: Run generator + run: cargo r -p api_gen + - name: Normalize line endings + run: | + git add --renormalize -u + git reset + - name: Diff autogen result + shell: bash + run: test -z "$(git status --porcelain)" || (echo "::error::Generated files are different, please regenerate with cargo run -p api_gen!"; git diff; false) diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..3e65500 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,5 @@ +[submodule "ADLX"] + path = vendor/ADLX + url = https://github.com/GPUOpen-LibrariesAndSDKs/ADLX + depth = 1 + update = none diff --git a/Cargo.toml b/Cargo.toml index d29aab6..09be657 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -15,5 +15,7 @@ keywords = ["amd", "adlx", "gpu"] anyhow = "1.0.79" libloading = "0.8" -[build-dependencies] -bindgen = "0.69.2" +[workspace] +members = [ + "api_gen" +] diff --git a/api_gen/Cargo.toml b/api_gen/Cargo.toml new file mode 100644 index 0000000..67d893c --- /dev/null +++ b/api_gen/Cargo.toml @@ -0,0 +1,8 @@ +[package] +name = "api_gen" +version = "0.0.0" +edition = "2021" +publish = false + +[dependencies] +bindgen = "0.69.2" diff --git a/api_gen/src/main.rs b/api_gen/src/main.rs new file mode 100644 index 0000000..462c79c --- /dev/null +++ b/api_gen/src/main.rs @@ -0,0 +1,21 @@ +use std::path::Path; + +fn main() { + let crate_root = Path::new(env!("CARGO_MANIFEST_DIR")); + + let header_path = crate_root.join("wrapper.h"); + + let bindings = bindgen::Builder::default() + .header(header_path.to_string_lossy()) + .clang_arg(format!( + "-I{}", + crate_root.join("../vendor/ADLX/SDK/Include/").display() + )) + .allowlist_item("I?ADLX\\w+") + .generate() + .expect("failed to generate adlx bindings"); + + bindings + .write_to_file(crate_root.join("../src/ffi.rs")) + .expect("Couldn't write bindings!"); +} diff --git a/api_gen/wrapper.h b/api_gen/wrapper.h new file mode 100644 index 0000000..00aa381 --- /dev/null +++ b/api_gen/wrapper.h @@ -0,0 +1,6 @@ +#include + +// Interfaces to generate bindings for +#include +#include +#include diff --git a/build.rs b/build.rs deleted file mode 100644 index 2c684c7..0000000 --- a/build.rs +++ /dev/null @@ -1,17 +0,0 @@ -use std::{env, path::PathBuf}; - -fn main() { - println!("cargo:rerun-if-changed=src/adlx/wrapper.h"); - - let bindings = bindgen::Builder::default() - .header("src/adlx/wrapper.h") - .allowlist_item("I?ADLX\\w+") - .generate() - .expect("failed to generate adlx bindings"); - - // Write the bindings to the $OUT_DIR/bindings.rs file. - let out_path = PathBuf::from(env::var("OUT_DIR").unwrap()); - bindings - .write_to_file(out_path.join("bindings.rs")) - .expect("Couldn't write bindings!"); -} diff --git a/examples/system.rs b/examples/system.rs index a5ae446..4f48f9a 100644 --- a/examples/system.rs +++ b/examples/system.rs @@ -1,6 +1,6 @@ //! Open the ADLX library, retrieve [`adlx::adlx::system::System`], and call a simple function on it -use adlx::{gpu::Gpu1, helper::AdlxHelper, interface::Interface}; +use adlx::helper::AdlxHelper; use anyhow::Result; fn main() -> Result<()> { diff --git a/src/adlx/sdk/ADLXHelper/Windows/C/ADLXHelper.c b/src/adlx/sdk/ADLXHelper/Windows/C/ADLXHelper.c deleted file mode 100644 index b6c1482..0000000 --- a/src/adlx/sdk/ADLXHelper/Windows/C/ADLXHelper.c +++ /dev/null @@ -1,175 +0,0 @@ -// -// Copyright (c) 2021 - 2023 Advanced Micro Devices, Inc. All rights reserved. -// -//------------------------------------------------------------------------------------------------- -#include "ADLXHelper.h" - -typedef struct ADLXHelper -{ - //Handle to the ADLX dll - adlx_handle m_hDLLHandle; - - //Full Version of this ADLX instance - adlx_uint64 m_ADLXFullVersion; - - //Version of this ADLX instance - const char* m_ADLXVersion; - - //The ADLX system services interface - IADLXSystem* m_pSystemServices; - - //the ADL mapping interface - IADLMapping* m_pAdlMapping; - - //ADLX function - query full version - ADLXQueryFullVersion_Fn m_fullVersionFn; - - //ADLX function - qery version - ADLXQueryVersion_Fn m_versionFn; - - //ADLX function - initialize with ADL - ADLXInitializeWithCallerAdl_Fn m_initWithADLFn; - - //ADLX function - initialize with incompatible driver - ADLXInitialize_Fn m_initFnEx; - - //ADLX function - initialize - ADLXInitialize_Fn m_initFn; - - //ADLX function - terminate - ADLXTerminate_Fn m_terminateFn; -}ADLXHelper; - -static ADLXHelper g_ADLX = {NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL}; - -ADLX_RESULT InitializePrivate (adlx_handle adlContext, ADLX_ADL_Main_Memory_Free adlMainMemoryFree, adlx_bool useIncompatibleDriver); - -//------------------------------------------------------------------------------------------------- -//Initialization -ADLX_RESULT ADLXHelper_Initialize () -{ - return InitializePrivate (NULL, NULL, false); -} - -ADLX_RESULT ADLXHelper_InitializeWithIncompatibleDriver() -{ - return InitializePrivate(NULL, NULL, true); -} - -ADLX_RESULT ADLXHelper_InitializeWithCallerAdl (adlx_handle adlContext, ADLX_ADL_Main_Memory_Free adlMainMemoryFree) -{ - if (adlContext == NULL || adlMainMemoryFree == NULL) - { - return ADLX_INVALID_ARGS; - } - return InitializePrivate (adlContext, adlMainMemoryFree, false); -} - -//------------------------------------------------------------------------------------------------- -//Termination -ADLX_RESULT ADLXHelper_Terminate() -{ - ADLX_RESULT res = ADLX_OK; - if (g_ADLX.m_hDLLHandle != NULL) - { - g_ADLX.m_ADLXFullVersion = 0; - g_ADLX.m_ADLXVersion = NULL; - g_ADLX.m_pSystemServices = NULL; - g_ADLX.m_pAdlMapping = NULL; - if (NULL != g_ADLX.m_terminateFn) - { - res = g_ADLX.m_terminateFn(); - } - g_ADLX.m_fullVersionFn = NULL; - g_ADLX.m_versionFn = NULL; - g_ADLX.m_initWithADLFn = NULL; - g_ADLX.m_initFnEx = NULL; - g_ADLX.m_initFn = NULL; - g_ADLX.m_terminateFn = NULL; - adlx_free_library(g_ADLX.m_hDLLHandle); - g_ADLX.m_hDLLHandle = NULL; - } - return res; -} - -//------------------------------------------------------------------------------------------------- -//Get the full version for this ADLX instance -adlx_uint64 ADLXHelper_QueryFullVersion() -{ - return g_ADLX.m_ADLXFullVersion; -} - -//------------------------------------------------------------------------------------------------- -//Get the version for this ADLX instance -const char* ADLXHelper_QueryVersion() -{ - return g_ADLX.m_ADLXVersion; -} - -//------------------------------------------------------------------------------------------------- -//Get the IADLXSystem interface -IADLXSystem* ADLXHelper_GetSystemServices() -{ - return g_ADLX.m_pSystemServices; -} - -//------------------------------------------------------------------------------------------------- -//Get the IADLMapping interface -IADLMapping* ADLXHelper_GetAdlMapping () -{ - return g_ADLX.m_pAdlMapping; -} - -//------------------------------------------------------------------------------------------------- -//Loads ADLX and finds the function pointers to the ADLX functions -ADLX_RESULT LoadADLXDll() -{ - if (g_ADLX.m_hDLLHandle == NULL) - { - g_ADLX.m_hDLLHandle = adlx_load_library(ADLX_DLL_NAME); - if (g_ADLX.m_hDLLHandle) - { - g_ADLX.m_fullVersionFn = (ADLXQueryFullVersion_Fn)adlx_get_proc_address(g_ADLX.m_hDLLHandle, ADLX_QUERY_FULL_VERSION_FUNCTION_NAME); - g_ADLX.m_versionFn = (ADLXQueryVersion_Fn)adlx_get_proc_address(g_ADLX.m_hDLLHandle, ADLX_QUERY_VERSION_FUNCTION_NAME); - g_ADLX.m_initWithADLFn = (ADLXInitializeWithCallerAdl_Fn)adlx_get_proc_address(g_ADLX.m_hDLLHandle, ADLX_INIT_WITH_CALLER_ADL_FUNCTION_NAME); - g_ADLX.m_initFnEx = (ADLXInitialize_Fn)adlx_get_proc_address(g_ADLX.m_hDLLHandle, ADLX_INIT_WITH_INCOMPATIBLE_DRIVER_FUNCTION_NAME); - g_ADLX.m_initFn = (ADLXInitialize_Fn)adlx_get_proc_address(g_ADLX.m_hDLLHandle, ADLX_INIT_FUNCTION_NAME); - g_ADLX.m_terminateFn = (ADLXTerminate_Fn)adlx_get_proc_address(g_ADLX.m_hDLLHandle, ADLX_TERMINATE_FUNCTION_NAME); - } - } - 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) - { - return ADLX_OK; - } - return ADLX_FAIL; -} - -//------------------------------------------------------------------------------------------------- -//Initializes ADLX based on the parameters -ADLX_RESULT InitializePrivate (adlx_handle adlContext, ADLX_ADL_Main_Memory_Free adlMainMemoryFree, adlx_bool useIncompatibleDriver) -{ - ADLX_RESULT res = LoadADLXDll(); - if (ADLX_OK == res) - { - g_ADLX.m_fullVersionFn(&g_ADLX.m_ADLXFullVersion); - g_ADLX.m_versionFn(&g_ADLX.m_ADLXVersion); - if (adlContext != NULL && adlMainMemoryFree != NULL) - { - res = g_ADLX.m_initWithADLFn(ADLX_FULL_VERSION, &g_ADLX.m_pSystemServices, &g_ADLX.m_pAdlMapping, adlContext, adlMainMemoryFree); - } - else - { - if (useIncompatibleDriver) - { - res = g_ADLX.m_initFnEx(ADLX_FULL_VERSION, &g_ADLX.m_pSystemServices); - } - else - { - res = g_ADLX.m_initFn(ADLX_FULL_VERSION, &g_ADLX.m_pSystemServices); - } - } - return res; - } - - return ADLX_FAIL; -} \ No newline at end of file diff --git a/src/adlx/sdk/ADLXHelper/Windows/C/ADLXHelper.h b/src/adlx/sdk/ADLXHelper/Windows/C/ADLXHelper.h deleted file mode 100644 index 9cd395f..0000000 --- a/src/adlx/sdk/ADLXHelper/Windows/C/ADLXHelper.h +++ /dev/null @@ -1,245 +0,0 @@ -// -// Copyright (c) 2021 - 2023 Advanced Micro Devices, Inc. All rights reserved. -// -//------------------------------------------------------------------------------------------------- - -#ifndef ADLX_ADLXFactory_h -#define ADLX_ADLXFactory_h -#pragma once - -#include "../../../Include/ADLX.h" - -/** -* @page page_cHelpADLXHelper_Initialize ADLXHelper_Initialize -* @ENG_START_DOX -* @brief Initializes ADLX with default parameters.
-* @ENG_END_DOX -* -* @syntax -* @codeStart -* @ref ADLX_RESULT ADLXHelper_Initialize () -* @codeEnd -* @params -* N/A -* -* @retvalues -* @ENG_START_DOX -* If __ADLXHelper_Initialize__ is successfully executed, __ADLX_OK__ is returned.
-* If __ADLXHelper_Initialize__ is not successfully executed, an error code is returned.
-* If ADLX was previously successfully initialized with any of the initialization functions, __ADLX_ALREADY_INITIALIZED__ is returned.
-* Refer to @ref ADLX_RESULT for success codes and error codes. -* @ENG_END_DOX -* -* @detaileddesc -* @ENG_START_DOX -* @details This function is used when an application does not use the ADL library and initializes ADLX with default parameters.
-* For more information for initializing ADLX with default parameters, refer to @ref @adlx_gpu_support "ADLX GPU Support".
-* @ENG_END_DOX -* -* @requirements -* @DetailsTable{#include "ADLXHelper/Windows/C/ADLXHelper.h", @ADLX_First_Ver} -*/ -ADLX_RESULT ADLXHelper_Initialize(); - -/** -* @page page_cHelpADLXHelper_InitializeWithIncompatibleDriver ADLXHelper_InitializeWithIncompatibleDriver -* @ENG_START_DOX -* @brief Initializes ADLX with a legacy driver.
-* @ENG_END_DOX -* -* @syntax -* @codeStart -* @ref ADLX_RESULT ADLXHelper_InitializeWithIncompatibleDriver () -* @codeEnd -* @params -* N/A -* -* @retvalues -* @ENG_START_DOX -* If __ADLXHelper_InitializeWithIncompatibleDriver__ is successfully executed, __ADLX_OK__ is returned.
-* If __ADLXHelper_InitializeWithIncompatibleDriver__ is not successfully executed, an error code is returned.
-* If ADLX was previously successfully initialized with any of the initialization functions, __ADLX_ALREADY_INITIALIZED__ is returned.
-* Refer to @ref ADLX_RESULT for success codes and error codes.
-* @ENG_END_DOX -* -* @detaileddesc -* @ENG_START_DOX -* @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.
-* For more information for initializing ADLX with a legacy driver, refer to @ref @adlx_gpu_support "ADLX GPU Support".
-* @ENG_END_DOX -* -* @requirements -* @DetailsTable{#include "ADLXHelper/Windows/C/ADLXHelper.h", @ADLX_First_Ver} -*/ -ADLX_RESULT ADLXHelper_InitializeWithIncompatibleDriver(); - -/** -* @page page_cHelpADLXHelper_InitializeWithCallerAdl ADLXHelper_InitializeWithCallerAdl -* @ENG_START_DOX -* @brief Initializes ADLX with an ADL context. -* @ENG_END_DOX -* -* @syntax -* @codeStart -* @ref ADLX_RESULT ADLXHelper_InitializeWithCallerAdl (adlx_handle adlContext, @ref ADLX_ADL_Main_Memory_Free adlMainMemoryFree) -* @codeEnd -* @params -* @paramrow{1.,[in],adlContext,adlx_handle,@ENG_START_DOX The ADL context. @ENG_END_DOX} -* @paramrow{2.,[in],adlMainMemoryFree,@ref ADLX_ADL_Main_Memory_Free,@ENG_START_DOX The callback handler of the memory deallocation function. @ENG_END_DOX} -* -* @retvalues -* @ENG_START_DOX -* If __ADLXHelper_InitializeWithCallerAdl__ is successfully executed, __ADLX_OK__ is returned.
-* If __ADLXHelper_InitializeWithCallerAdl__ is not successfully executed, an error code is returned.
-* If ADLX was previously successfully initialized with any of the Initialize versions, __ADLX_ALREADY_INITIALIZED__ is returned.
-* Refer to @ref ADLX_RESULT for success codes and error codes.
-* @ENG_END_DOX -* -* @detaileddesc -* @ENG_START_DOX -* @details -* 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.
-* 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.
-* For more information for initializing ADLX with an ADL context, refer to @ref page_guide_use_ADLX "Using ADLX in an ADL application".
-* @ENG_END_DOX -* -* @requirements -* @DetailsTable{#include "ADLXHelper/Windows/C/ADLXHelper.h", @ADLX_First_Ver} -*/ -ADLX_RESULT ADLXHelper_InitializeWithCallerAdl (adlx_handle adlContext, ADLX_ADL_Main_Memory_Free adlMainMemoryFree); - -/** -* @page page_cHelpADLXHelper_Terminate ADLXHelper_Terminate -* @ENG_START_DOX -* @brief Terminates ADLX and releases ADLX library. -* @ENG_END_DOX -* -* @syntax -* @codeStart -* @ref ADLX_RESULT ADLXHelper_Terminate () -* @codeEnd -* @params -* N/A -* -* @retvalues -* @ENG_START_DOX -* If __ADLXHelper_Terminate__ is successfully executed, __ADLX_OK__ is returned.
-* If __ADLXHelper_Terminate__ is not successfully executed, an error code is returned.
-* Refer to @ref ADLX_RESULT for success codes and error codes. -* @ENG_END_DOX -* -* @detaileddesc -* @ENG_START_DOX -* @details -* Any interface obtained from ADLX that is not released becomes invalid.
-* Any attempt of calling ADLX interface after termination could result in errors such as exceptions or crashes.
-* @ENG_END_DOX -* -* @requirements -* @DetailsTable{#include "ADLXHelper/Windows/C/ADLXHelper.h", @ADLX_First_Ver} -*/ -ADLX_RESULT ADLXHelper_Terminate(); - -/** -* @page page_cHelpADLXHelper_GetSystemServices ADLXHelper_GetSystemServices -* @ENG_START_DOX -* @brief Gets the ADLX system interface. -* @ENG_END_DOX -* -* @syntax -* @codeStart -* @ref DOX_IADLXSystem* ADLXHelper_GetSystemServices () -* @codeEnd -* @params -* N/A -* -* @retvalues -* @ENG_START_DOX -* If ADLX was successfully initialized before this function call, the @ref DOX_IADLXSystem interface is returned.
-* If ADLX was not successfully initialized, __nullptr__ is returned. -* @ENG_END_DOX -* -* @requirements -* @DetailsTable{#include "ADLXHelper/Windows/C/ADLXHelper.h", @ADLX_First_Ver} -*/ -IADLXSystem* ADLXHelper_GetSystemServices (); - -/** -* @page page_cHelpADLXHelper_GetAdlMapping ADLXHelper_GetAdlMapping -* @ENG_START_DOX -* @brief Gets the ADL Mapping interface. -* @ENG_END_DOX -* -* @syntax -* @codeStart -* @ref DOX_IADLMapping* ADLXHelper_GetAdlMapping () -* @codeEnd -* @params -* N/A -* -* @retvalues -* @ENG_START_DOX -* If ADLX was successfully initialized with ADL, a valid pointer of the @ref DOX_IADLMapping interface is returned.
-* If ADLX was initialized under any of the following circumstances, __nullptr__ is returned.
-* - ADLX initialization was with other initialization methods.
-* - ADLX initialization was failed.
-* - ADLX initialization was not called.
-* @ENG_END_DOX -* -* @detaileddesc -* @ENG_START_DOX -* @details __ADLXHelper_GetAdlMapping__ is used to convert data between ADL and ADLX in applications where ADLX was initialized with @ref page_cHelpADLXHelper_InitializeWithCallerAdl. -* @ENG_END_DOX -* -* @requirements -* @DetailsTable{#include "ADLXHelper/Windows/C/ADLXHelper.h", @ADLX_First_Ver} -*/ -IADLMapping* ADLXHelper_GetAdlMapping(); - -/** -* @page page_cHelpADLXHelper_QueryFullVersion ADLXHelper_QueryFullVersion -* @ENG_START_DOX -* @brief Gets the full version of ADLX. -* @ENG_END_DOX -* -* @syntax -* @codeStart -* adlx_uint64 ADLXHelper_QueryFullVersion () -* @codeEnd -* @params -* N/A -* -* @retvalues -* @ENG_START_DOX -* The full version of ADLX. -* @ENG_END_DOX -* -* @requirements -* @DetailsTable{#include "ADLXHelper/Windows/C/ADLXHelper.h", @ADLX_First_Ver} -*/ -adlx_uint64 ADLXHelper_QueryFullVersion(); - -/** -* @page page_cHelpADLXHelper_QueryVersion ADLXHelper_QueryVersion -* @ENG_START_DOX -* @brief Gets the version of ADLX. -* @ENG_END_DOX -* -* @syntax -* @codeStart -* const char* ADLXHelper_QueryVersion (); -* @codeEnd -* @params -* N/A -* -* @retvalues -* @ENG_START_DOX -* The version of ADLX. -* @ENG_END_DOX -* -* @requirements -* @DetailsTable{#include "ADLXHelper/Windows/C/ADLXHelper.h", @ADLX_First_Ver} -*/ -const char* ADLXHelper_QueryVersion(); -#endif // __ADLXFactoryC_h__ - diff --git a/src/adlx/sdk/ADLXHelper/Windows/Cpp/ADLXHelper.cpp b/src/adlx/sdk/ADLXHelper/Windows/Cpp/ADLXHelper.cpp deleted file mode 100644 index 0947411..0000000 --- a/src/adlx/sdk/ADLXHelper/Windows/Cpp/ADLXHelper.cpp +++ /dev/null @@ -1,152 +0,0 @@ -// -// Copyright (c) 2021 - 2023 Advanced Micro Devices, Inc. All rights reserved. -// -//------------------------------------------------------------------------------------------------- - -#include "ADLXHelper.h" - -ADLXHelper g_ADLX; - -//------------------------------------------------------------------------------------------------- -//Constructor -ADLXHelper::ADLXHelper () -{} - -//------------------------------------------------------------------------------------------------- -//Destructor -ADLXHelper::~ADLXHelper () -{ - Terminate (); -} - -//------------------------------------------------------------------------------------------------- -//Initialization -ADLX_RESULT ADLXHelper::Initialize () -{ - return InitializePrivate (nullptr, nullptr); -} - -ADLX_RESULT ADLXHelper::InitializeWithIncompatibleDriver () -{ - return InitializePrivate (nullptr, nullptr, true); -} - -ADLX_RESULT ADLXHelper::InitializeWithCallerAdl (adlx_handle adlContext, ADLX_ADL_Main_Memory_Free adlMainMemoryFree) -{ - if (adlContext == nullptr || adlMainMemoryFree == nullptr) - { - return ADLX_INVALID_ARGS; - } - return InitializePrivate (adlContext, adlMainMemoryFree); -} - -//------------------------------------------------------------------------------------------------- -//Termination -ADLX_RESULT ADLXHelper::Terminate () -{ - ADLX_RESULT res = ADLX_OK; - if (m_hDLLHandle != nullptr) - { - m_ADLXFullVersion = 0; - m_ADLXVersion = nullptr; - m_pSystemServices = nullptr; - m_pAdlMapping = nullptr; - if (nullptr != m_terminateFn) - { - res = m_terminateFn (); - } - m_fullVersionFn = nullptr; - m_versionFn = nullptr; - m_initWithADLFn = nullptr; - m_initFnEx = nullptr; - m_initFn = nullptr; - m_terminateFn = nullptr; - adlx_free_library (m_hDLLHandle); - m_hDLLHandle = nullptr; - } - return res; -} - -//------------------------------------------------------------------------------------------------- -//Gets the full version of ADLX -adlx_uint64 ADLXHelper::QueryFullVersion () -{ - return m_ADLXFullVersion; -} - -//------------------------------------------------------------------------------------------------- -//Gets the version of ADLX -const char* ADLXHelper::QueryVersion () -{ - return m_ADLXVersion; -} - -//------------------------------------------------------------------------------------------------- -//Gets the ADLX system interface -adlx::IADLXSystem* ADLXHelper::GetSystemServices () -{ - return m_pSystemServices; -} - -//------------------------------------------------------------------------------------------------- -//Gets the ADL Mapping interface -adlx::IADLMapping* ADLXHelper::GetAdlMapping () -{ - return m_pAdlMapping; -} - -//------------------------------------------------------------------------------------------------- -//Loads ADLX and finds the function pointers to the ADLX functions -ADLX_RESULT ADLXHelper::LoadADLXDll() -{ - if (m_hDLLHandle == nullptr) - { - m_hDLLHandle = adlx_load_library (ADLX_DLL_NAME); - if (m_hDLLHandle) - { - m_fullVersionFn = (ADLXQueryFullVersion_Fn)adlx_get_proc_address (m_hDLLHandle, ADLX_QUERY_FULL_VERSION_FUNCTION_NAME); - m_versionFn = (ADLXQueryVersion_Fn)adlx_get_proc_address (m_hDLLHandle, ADLX_QUERY_VERSION_FUNCTION_NAME); - m_initWithADLFn = (ADLXInitializeWithCallerAdl_Fn)adlx_get_proc_address (m_hDLLHandle, ADLX_INIT_WITH_CALLER_ADL_FUNCTION_NAME); - m_initFnEx = (ADLXInitialize_Fn)adlx_get_proc_address (m_hDLLHandle, ADLX_INIT_WITH_INCOMPATIBLE_DRIVER_FUNCTION_NAME); - m_initFn = (ADLXInitialize_Fn)adlx_get_proc_address (m_hDLLHandle, ADLX_INIT_FUNCTION_NAME); - m_terminateFn = (ADLXTerminate_Fn)adlx_get_proc_address (m_hDLLHandle, ADLX_TERMINATE_FUNCTION_NAME); - } - } - - if (m_fullVersionFn && m_versionFn && m_initWithADLFn && m_initFnEx && m_initFn && m_terminateFn) - { - return ADLX_OK; - } - - return ADLX_FAIL; -} - -//------------------------------------------------------------------------------------------------- -//Initializes ADLX based on the parameters -ADLX_RESULT ADLXHelper::InitializePrivate(adlx_handle adlContext, ADLX_ADL_Main_Memory_Free adlMainMemoryFree, adlx_bool useIncompatibleDriver) -{ - ADLX_RESULT res = LoadADLXDll (); - if (ADLX_OK == res) - { - m_fullVersionFn (&m_ADLXFullVersion); - m_versionFn (&m_ADLXVersion); - if (adlContext != nullptr && adlMainMemoryFree != nullptr) - { - res = m_initWithADLFn (ADLX_FULL_VERSION, &m_pSystemServices, &m_pAdlMapping, adlContext, adlMainMemoryFree); - } - else - { - if (useIncompatibleDriver) - { - res = m_initFnEx (ADLX_FULL_VERSION, &m_pSystemServices); - } - else - { - res = m_initFn (ADLX_FULL_VERSION, &m_pSystemServices); - } - } - return res; - } - - return ADLX_FAIL; -} \ No newline at end of file diff --git a/src/adlx/sdk/ADLXHelper/Windows/Cpp/ADLXHelper.h b/src/adlx/sdk/ADLXHelper/Windows/Cpp/ADLXHelper.h deleted file mode 100644 index faa29d4..0000000 --- a/src/adlx/sdk/ADLXHelper/Windows/Cpp/ADLXHelper.h +++ /dev/null @@ -1,355 +0,0 @@ -// -// Copyright (c) 2021 - 2023 Advanced Micro Devices, Inc. All rights reserved. -// -//------------------------------------------------------------------------------------------------- - -#ifndef ADLX_ADLXHelper_h -#define ADLX_ADLXHelper_h - -#pragma once - -#include "../../../Include/ADLX.h" - -class ADLXHelper -{ -public: - /** - * @page page_cppHelpNew ADLXHelper - * @ENG_START_DOX - * @brief The constructor of the ADLXHelper class. - * @ENG_END_DOX - * - * @syntax - * @codeStart - * ADLXHelper () - * @codeEnd - * @params - * N/A - * - * @retvalues - * @ENG_START_DOX - * An ADLXHelper object. - * @ENG_END_DOX - * - * @requirements - * @DetailsTable{#include "ADLXHelper/Windows/Cpp/ADLXHelper.h", @ADLX_First_Ver} - */ - ADLXHelper (); - - /** - * @page page_cppHelpDelete ~ADLXHelper - * @ENG_START_DOX - * @brief The destructor of the ADLXHelper class. - * @ENG_END_DOX - * - * @syntax - * @codeStart - * ~ADLXHelper () - * @codeEnd - * @params - * N/A - * - * @retvalues - * N/A - * - * @detaileddesc - * @ENG_START_DOX - * @details This method calls @ref page_cppHelpTerminate. - * @ENG_END_DOX - * - * @requirements - * @DetailsTable{#include "ADLXHelper/Windows/Cpp/ADLXHelper.h", @ADLX_First_Ver} - */ - virtual ~ADLXHelper (); - - //Initialization. Either of these versions Must be called before any calls in this class - - /** - * @page page_cppHelpInitializeWithCallerAdl InitializeWithCallerAdl - * @ENG_START_DOX - * @brief Initializes ADLX with an ADL context. - * @ENG_END_DOX - * - * @syntax - * @codeStart - * @ref ADLX_RESULT InitializeWithCallerAdl (adlx_handle adlContext, @ref ADLX_ADL_Main_Memory_Free adlMainMemoryFree) - * @codeEnd - * @params - * @paramrow{1.,[in],adlContext,adlx_handle,@ENG_START_DOX The ADL context. @ENG_END_DOX} - * @paramrow{2.,[in],adlMainMemoryFree,@ref ADLX_ADL_Main_Memory_Free,@ENG_START_DOX The callback handler of the memory deallocation. @ENG_END_DOX} - * - * @retvalues - * @ENG_START_DOX - * If __InitializeWithCallerAdl__ is successfully executed, __ADLX_OK__ is returned.
- * If __InitializeWithCallerAdl__ is not successfully executed, an error code is returned.
- * If ADLX was previously successfully initialized with any of the Initialize versions, __ADLX_ALREADY_INITIALIZED__ is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
- * @ENG_END_DOX - * - * @detaileddesc - * @ENG_START_DOX - * @details - * This method 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.
- * In such case, the application shall pass the parameters in this method 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.
- * For more information for initializing ADLX with an ADL context, refer to @ref page_guide_use_ADLX "Using ADLX in an ADL application".
- * @ENG_END_DOX - * - * @requirements - * - * @DetailsTable{#include "ADLXHelper/Windows/Cpp/ADLXHelper.h", @ADLX_First_Ver} - */ - ADLX_RESULT InitializeWithCallerAdl (adlx_handle adlContext, ADLX_ADL_Main_Memory_Free adlMainMemoryFree); - - /** - * @page page_cppHelpInitialize Initialize - * @ENG_START_DOX - * @brief Initializes ADLX with default parameters. - * @ENG_END_DOX - * - * @syntax - * @codeStart - * @ref ADLX_RESULT Initialize () - * @codeEnd - * @params - * N/A - * - * @retvalues - * @ENG_START_DOX - * If __Initialize__ is successfully executed, __ADLX_OK__ is returned.
- * If __Initialize__ is not successfully executed, an error code is returned.
- * If ADLX was previously successfully initialized with any of the initialization functions, __ADLX_ALREADY_INITIALIZED__ is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
- * @ENG_END_DOX - * - * @detaileddesc - * @ENG_START_DOX - * @details - * This method is used when an application does not use the ADL library and initializes ADLX with default parameters.
- * For more information for initializing ADLX with default parameters, refer to @ref @adlx_gpu_support "ADLX GPU Support".
- * @ENG_END_DOX - * - * @requirements - * @DetailsTable{#include "ADLXHelper/Windows/Cpp/ADLXHelper.h", @ADLX_First_Ver} - */ - ADLX_RESULT Initialize (); - - /** - * @page page_cppHelpInitializeWithIncompatibleDriver InitializeWithIncompatibleDriver - * @ENG_START_DOX - * @brief Initializes ADLX with a legacy driver. - * @ENG_END_DOX - * - * @syntax - * @codeStart - * @ref ADLX_RESULT InitializeWithIncompatibleDriver () - * @codeEnd - * @params - * N/A - * - * @retvalues - * @ENG_START_DOX - * If __InitializeWithIncompatibleDriver__ is successfully executed, __ADLX_OK__ is returned.
- * If __InitializeWithIncompatibleDriver__ is not successfully executed, an error code is returned.
- * If ADLX was previously successfully initialized with any of the Initialize versions, __ADLX_ALREADY_INITIALIZED__ is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
- * @ENG_END_DOX - * - * @detaileddesc - * @ENG_START_DOX - * @details - * This method is used when an application does not use the ADL library and initializes ADLX to consider AMD GPUs using legacy AMD graphics driver.
- * For more information for initializing ADLX with a legacy driver, refer to @ref @adlx_gpu_support "ADLX GPU Support".
- * @ENG_END_DOX - * - * @requirements - * @DetailsTable{#include "ADLXHelper/Windows/Cpp/ADLXHelper.h", @ADLX_First_Ver} - */ - ADLX_RESULT InitializeWithIncompatibleDriver (); - - //Destruction. - //WARNING: No outstanding interfaces from ADLX must exist when calling this method. - //After this call they will be invalid and calls into them will result in access violation. - - /** - * @page page_cppHelpTerminate Terminate - * @ENG_START_DOX - * @brief Terminates ADLX and releases ADLX library. - * @ENG_END_DOX - * - * @syntax - * @codeStart - * @ref ADLX_RESULT Terminate () - * @codeEnd - * @params - * N/A - * - * @retvalues - * @ENG_START_DOX - * If __Terminate__ is successfully executed, __ADLX_OK__ is returned.
- * If __Terminate__ is not successfully executed, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. - * @ENG_END_DOX - * - * @detaileddesc - * @ENG_START_DOX - * @details - * Any interface obtained from ADLX that is not released becomes invalid.
- * Any attempt of calling ADLX interface after termination could result in errors such as exceptions or crashes.
- * @ENG_END_DOX - * - * @requirements - * - * @DetailsTable{#include "ADLXHelper/Windows/Cpp/ADLXHelper.h", @ADLX_First_Ver} - */ - ADLX_RESULT Terminate (); - - //Returns the ADLX version - - /** - * @page page_cppHelpQueryFullVersion QueryFullVersion - * @ENG_START_DOX - * @brief Gets the full version of ADLX. - * @ENG_END_DOX - * - * @syntax - * @codeStart - * adlx_uint64 QueryFullVersion () - * @codeEnd - * @params - * N/A - * - * @retvalues - * @ENG_START_DOX - * The full version of ADLX. - * @ENG_END_DOX - * - * @requirements - * @DetailsTable{#include "ADLXHelper/Windows/Cpp/ADLXHelper.h", @ADLX_First_Ver} - */ - adlx_uint64 QueryFullVersion (); - - /** - * @page page_cppHelpQueryVersion QueryVersion - * @ENG_START_DOX - * @brief Gets the version of ADLX. - * @ENG_END_DOX - * - * @syntax - * @codeStart - * const char* QueryVersion () - * @codeEnd - * @params - * N/A - * - * @retvalues - * @ENG_START_DOX - * The version of ADLX. - * @ENG_END_DOX - * - * @requirements - * @DetailsTable{#include "ADLXHelper/Windows/Cpp/ADLXHelper.h", @ADLX_First_Ver} - */ - const char* QueryVersion (); - - /** - * @page page_cppHelpGetSystemServices GetSystemServices - * @ENG_START_DOX - * @brief Gets the ADLX system interface. - * @ENG_END_DOX - * - * @syntax - * @codeStart - * @ref DOX_IADLXSystem* GetSystemServices () - * @codeEnd - * @params - * N/A - * - * @retvalues - * @ENG_START_DOX - * If ADLX was successfully initialized before this method call, the @ref DOX_IADLXSystem interface is returned.
- * If ADLX was not successfully initialized, __nullptr__ is returned. - * @ENG_END_DOX - * - * @requirements - * @DetailsTable{#include "ADLXHelper/Windows/Cpp/ADLXHelper.h", @ADLX_First_Ver} - */ - adlx::IADLXSystem* GetSystemServices (); - - /** - * @page page_cppHelpGetAdlMapping GetAdlMapping - * @ENG_START_DOX - * @brief Gets the ADL Mapping interface. - * @ENG_END_DOX - * - * @syntax - * @codeStart - * @ref DOX_IADLMapping* GetAdlMapping () - * @codeEnd - * @params - * N/A - * - * @retvalues - * @ENG_START_DOX - * If ADLX was successfully initialized with ADL, a valid pointer of the @ref DOX_IADLMapping interface is returned.
- * If ADLX was initialized under any of the following circumstances, __nullptr__ is returned.
- * - ADLX initialization was with other initialization methods.
- * - ADLX initialization was failed.
- * - ADLX initialization was not called.
- * @ENG_END_DOX - * - * @detaileddesc - * @ENG_START_DOX - * @details - * __GetAdlMapping__ is used to convert data between ADL and ADLX in applications where ADLX was initialized with @ref page_cppHelpInitializeWithCallerAdl. - * @ENG_END_DOX - * - * @requirements - * @DetailsTable{#include "ADLXHelper/Windows/Cpp/ADLXHelper.h", @ADLX_First_Ver} - */ - adlx::IADLMapping* GetAdlMapping (); - -protected: - - //Handle to the ADLX dll - adlx_handle m_hDLLHandle = nullptr; - - //Full Version of this ADLX instance - adlx_uint64 m_ADLXFullVersion = 0; - - //Version of this ADLX instance - const char* m_ADLXVersion = nullptr; - - //The ADLX system services interface - adlx::IADLXSystem* m_pSystemServices = nullptr; - - //the ADL mapping interface - adlx::IADLMapping* m_pAdlMapping = nullptr; - - //ADLX function - query full version - ADLXQueryFullVersion_Fn m_fullVersionFn = nullptr; - - //ADLX function - query version - ADLXQueryVersion_Fn m_versionFn = nullptr; - - //ADLX function - initialize with ADL - ADLXInitializeWithCallerAdl_Fn m_initWithADLFn = nullptr; - - //ADLX function - initialize with incompatible driver - ADLXInitialize_Fn m_initFnEx = nullptr; - - //ADLX function - initialize - ADLXInitialize_Fn m_initFn = nullptr; - - //ADLX function - terminate - ADLXTerminate_Fn m_terminateFn = nullptr; - - //Loads ADLX and finds the function pointers to the ADLX functions - ADLX_RESULT LoadADLXDll (); - - //Initializes ADLX based on the parameters - ADLX_RESULT InitializePrivate (adlx_handle adlContext, ADLX_ADL_Main_Memory_Free adlMainMemoryFree, adlx_bool useIncompatibleDriver = false); -}; //class ADLXHelper - -extern ::ADLXHelper g_ADLX; - -#endif //ADLX_ADLXHelper_h \ No newline at end of file diff --git a/src/adlx/sdk/Include/ADLX.h b/src/adlx/sdk/Include/ADLX.h deleted file mode 100644 index 712be71..0000000 --- a/src/adlx/sdk/Include/ADLX.h +++ /dev/null @@ -1,367 +0,0 @@ -// -// Copyright (c) 2021 - 2023 Advanced Micro Devices, Inc. All rights reserved. -// -//------------------------------------------------------------------------------------------------- - -#ifndef ADLX_H -#define ADLX_H -#pragma once - -#include "ADLXDefines.h" -#include "ISystem.h" - -#pragma region dll name -#if defined(_WIN32) -#if defined(_M_AMD64) -/** -* @def ADLX_DLL_NAMEW -* @ingroup ADLXMacro -* @ENG_START_DOX Unicode name for 64-bit ADLX dll @ENG_END_DOX -* @definition -* @codeStart -* \#define ADLX_DLL_NAMEW L"amdadlx64.dll" -* @codeEnd -*/ -#define ADLX_DLL_NAMEW L"amdadlx64.dll" -/** -* @def ADLX_DLL_NAMEA -* @ingroup ADLXMacro -* @ENG_START_DOX ANSI name for 64-bit ADLX dll @ENG_END_DOX -* @definition -* @codeStart -* \#define ADLX_DLL_NAMEA "amdadlx64.dll" -* @codeEnd -*/ -#define ADLX_DLL_NAMEA "amdadlx64.dll" -#else //_M_AMD64 -/** -* @def ADLX_DLL_NAMEW -* @ingroup ADLXMacro -* @ENG_START_DOX Unicode name for 32-bit ADLX dll @ENG_END_DOX -* @definition -* @codeStart -* \#define ADLX_DLL_NAMEW L"amdadlx32.dll" -* @codeEnd -*/ -#define ADLX_DLL_NAMEW L"amdadlx32.dll" -/** -* @def ADLX_DLL_NAMEA -* @ingroup ADLXMacro -* @ENG_START_DOX ANSI name for 32-bit ADLX dll @ENG_END_DOX -* @definition -* @codeStart -* \#define ADLX_DLL_NAMEA "amdadlx32.dll" -* @codeEnd -*/ -#define ADLX_DLL_NAMEA "amdadlx32.dll" -#endif //_M_AMD64 - -#if defined(UNICODE) -/** -* @def ADLX_DLL_NAME -* @ingroup ADLXMacro -* @ENG_START_DOX ADLX dll name in Unicode applications @ENG_END_DOX -* @definition -* @codeStart -* \#define ADLX_DLL_NAME @ref ADLX_DLL_NAMEW -* @codeEnd -*/ -#define ADLX_DLL_NAME ADLX_DLL_NAMEW -#else //UNICODE -/** -* @def ADLX_DLL_NAME -* @ingroup ADLXMacro -* @ENG_START_DOX ADLX dll name in ANSI applications @ENG_END_DOX -* @definition -* @codeStart -* \#define ADLX_DLL_NAME @ref ADLX_DLL_NAMEA -* @codeEnd -*/ -#define ADLX_DLL_NAME ADLX_DLL_NAMEA -#endif //UNICODE -#endif //_WIN32 -#pragma endregion dll name - -#pragma region ADLX callbacks -typedef ADLX_RESULT(ADLX_CDECL_CALL* ADLXQueryFullVersion_Fn)(adlx_uint64* fullVersion); -typedef ADLX_RESULT(ADLX_CDECL_CALL* ADLXQueryVersion_Fn)(const char** version); - -/** -* @typedef ADLX_ADL_Main_Memory_Free -* @ingroup ADLXDefs -* @ENG_START_DOX The typedef of ADLX_ADL_Main_Memory_Free function. @ENG_END_DOX -* @definition -* @codeStart -* typedef void (ADLX_STD_CALL* ADLX_ADL_Main_Memory_Free)(void** buffer) -* @codeEnd -*/ -typedef void (ADLX_STD_CALL* ADLX_ADL_Main_Memory_Free)(void** buffer); -#pragma endregion ADLX callbacks - -#pragma region C-style functions -/** - * @def ADLX_QUERY_FULL_VERSION_FUNCTION_NAME - * @ingroup ADLXMacro - * @ENG_START_DOX The function name of QueryFullVersion @ENG_END_DOX - * @definition - * @codeStart - * \#define ADLX_QUERY_FULL_VERSION_FUNCTION_NAME "ADLXQueryFullVersion" - * @codeEnd - */ -#define ADLX_QUERY_FULL_VERSION_FUNCTION_NAME "ADLXQueryFullVersion" - -/** - * @def ADLX_QUERY_VERSION_FUNCTION_NAME - * @ingroup ADLXMacro - * @ENG_START_DOX The function name of QueryVersion @ENG_END_DOX - * @definition - * @codeStart - * \#define ADLX_QUERY_VERSION_FUNCTION_NAME "ADLXQueryVersion" - * @codeEnd - */ -#define ADLX_QUERY_VERSION_FUNCTION_NAME "ADLXQueryVersion" - - /** - * @def ADLX_INIT_FUNCTION_NAME - * @ingroup ADLXMacro - * @ENG_START_DOX The function name of ADLXInitialize @ENG_END_DOX - * @definition - * @codeStart - * \#define ADLX_INIT_FUNCTION_NAME "ADLXInitialize" - * @codeEnd - */ -#define ADLX_INIT_FUNCTION_NAME "ADLXInitialize" - - /** - * @def ADLX_INIT_WITH_INCOMPATIBLE_DRIVER_FUNCTION_NAME - * @ingroup ADLXMacro - * @ENG_START_DOX The function name of ADLXInitializeWithIncompatibleDriver @ENG_END_DOX - * @definition - * @codeStart - * \#define ADLX_INIT_WITH_INCOMPATIBLE_DRIVER_FUNCTION_NAME "ADLXInitializeWithIncompatibleDriver" - * @codeEnd - */ -#define ADLX_INIT_WITH_INCOMPATIBLE_DRIVER_FUNCTION_NAME "ADLXInitializeWithIncompatibleDriver" - -/** -* @def ADLX_INIT_WITH_CALLER_ADL_FUNCTION_NAME -* @ingroup ADLXMacro -* @ENG_START_DOX The function name of ADLXInitializeWithCallerAdl @ENG_END_DOX -* @definition -* @codeStart -* \#define ADLX_INIT_WITH_CALLER_ADL_FUNCTION_NAME "ADLXInitializeWithCallerAdl" -* @codeEnd -*/ -#define ADLX_INIT_WITH_CALLER_ADL_FUNCTION_NAME "ADLXInitializeWithCallerAdl" - -/** -* @def ADLX_TERMINATE_FUNCTION_NAME -* @ingroup ADLXMacro -* @ENG_START_DOX The function name of ADLXTerminate @ENG_END_DOX -* @definition -* @codeStart -* \#define ADLX_TERMINATE_FUNCTION_NAME "ADLXTerminate" -* @codeEnd -*/ -#define ADLX_TERMINATE_FUNCTION_NAME "ADLXTerminate" - -#if defined(__cplusplus) - -extern "C" -{ - /** - * @page page_ADLXQueryFullVersion_Fn ADLXQueryFullVersion_Fn - * @ENG_START_DOX - * @brief A pointer to the function to query the full version of ADLX. - * @ENG_END_DOX - * - * @syntax - * @codeStart - * typedef @ref ADLX_RESULT (ADLX_CDECL_CALL *ADLXQueryFullVersion_Fn)(adlx_uint64* fullVersion) - * @codeEnd - * @params - * @paramrow{1.,[out],fullVersion,adlx_uint64*,@ENG_START_DOX The pointer to a variable where the full version of ADLX is returned. @ENG_END_DOX} - * - * @retvalues - * @ENG_START_DOX - * If the full version is successfully returned, __ADLX_OK__ is returned.
- * If the full version is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
- * @detaileddesc - * The pointer of the function is returned by the @ref adlx_get_proc_address using the @ref ADLX_QUERY_FULL_VERSION_FUNCTION_NAME as the function name. - * @ENG_END_DOX - * @requirements - * @DetailsTable{#include "ADLX.h", @ADLX_First_Ver} - */ - - /** - * @typedef ADLXQueryFullVersion_Fn - * @ingroup ADLXDefs - * @ENG_START_DOX The typedef of QueryFullVersion function. @ENG_END_DOX - * @definition - * @codeStart - * typedef @ref ADLX_RESULT (ADLX_CDECL_CALL *QueryFullVersion_Fn)(adlx_uint64* fullVersion) - * @codeEnd - */ - typedef ADLX_RESULT (ADLX_CDECL_CALL *ADLXQueryFullVersion_Fn)(adlx_uint64* fullVersion); - - /** - * @page page_ADLXQueryVersion_Fn ADLXQueryVersion_Fn - * @ENG_START_DOX - * @brief A pointer to the function to query the version of ADLX. - * @ENG_END_DOX - * - * @syntax - * @codeStart - * typedef @ref ADLX_RESULT (ADLX_CDECL_CALL *ADLXQueryVersion_Fn)(const char** version) - * @codeEnd - * @params - * @paramrow{1.,[out],version,const char**,@ENG_START_DOX The pointer to a zero-terminated string where the version of ADLX is returned. @ENG_END_DOX} - * - * @retvalues - * @ENG_START_DOX - * If the version is successfully returned, __ADLX_OK__ is returned.
- * If the version is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
- * @detaileddesc - * The pointer of the function is returned by the @ref adlx_get_proc_address using the @ref ADLX_QUERY_VERSION_FUNCTION_NAME as the function name. - * @ENG_END_DOX - * @requirements - * @DetailsTable{#include "ADLX.h", @ADLX_First_Ver} - */ - - /** - * @typedef ADLXQueryVersion_Fn - * @ingroup ADLXDefs - * @ENG_START_DOX The typedef of QueryVersion function. @ENG_END_DOX - * @definition - * @codeStart - * typedef @ref ADLX_RESULT (ADLX_CDECL_CALL *QueryVersion_Fn)(const char** version) - * @codeEnd - */ - typedef ADLX_RESULT (ADLX_CDECL_CALL *ADLXQueryVersion_Fn)(const char** version); - - /** - * @page page_ADLXInitialize_Fn ADLXInitialize_Fn - * @ENG_START_DOX - * @brief A pointer to the function to initialize ADLX with default parameters or a pointer to the function to initialize ADLX with a legacy driver. - * @ENG_END_DOX - * - * @syntax - * @codeStart - * typedef @ref ADLX_RESULT (ADLX_CDECL_CALL *ADLXInitialize_Fn)(adlx_uint64 version, @ref DOX_IADLXSystem** ppSystem) - * @codeEnd - * @params - * @paramrow{1.,[in],version,adlx_uint64,@ENG_START_DOX The version of ADLX. @ENG_END_DOX} - * @paramrow{1.,[out],ppSystem,@ref DOX_IADLXSystem**,@ENG_START_DOX The address of a pointer to the ADLX system interface. If ADLX initialization failed\, the method sets the dereferenced address __*ppSystem__ to __nullptr__. @ENG_END_DOX} - * - * @retvalues - * @ENG_START_DOX - * If ADLX was successfully initialized, __ADLX_OK__ is returned.
- * If ADLX was not successfully initialized, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
- * @detaileddesc - * The pointer of the function is returned by the @ref adlx_get_proc_address using the @ref ADLX_INIT_FUNCTION_NAME or @ref ADLX_INIT_WITH_INCOMPATIBLE_DRIVER_FUNCTION_NAME as the function name. - * @ENG_END_DOX - * @requirements - * @DetailsTable{#include "ADLX.h", @ADLX_First_Ver} - */ - - /** - * @typedef ADLXInitialize_Fn - * @ingroup ADLXDefs - * @ENG_START_DOX The typedef of ADLXInitialize function. @ENG_END_DOX - * @definition - * @codeStart - * typedef @ref ADLX_RESULT (ADLX_CDECL_CALL *ADLXInitialize_Fn)(adlx_uint64 version, @ref DOX_IADLXSystem** ppSystem) - * @codeEnd - */ - typedef ADLX_RESULT (ADLX_CDECL_CALL *ADLXInitialize_Fn)(adlx_uint64 version, adlx::IADLXSystem** ppSystem); - - /** - * @page page_ADLXInitializeWithCallerAdl_Fn ADLXInitializeWithCallerAdl_Fn - * @ENG_START_DOX - * @brief A pointer to the function to initialize ADLX with an ADL context. - * @ENG_END_DOX - * - * @syntax - * @codeStart - * typedef @ref ADLX_RESULT (ADLX_CDECL_CALL *ADLXInitializeWithCallerAdl_Fn)(adlx_uint64 version, @ref DOX_IADLXSystem** ppSystem, @ref DOX_IADLMapping** ppAdlMapping, adlx_handle adlContext, @ref ADLX_ADL_Main_Memory_Free adlMainMemoryFree) - * @codeEnd - * @params - * @paramrow{1.,[in],version,adlx_uint64,@ENG_START_DOX The version of ADLX. @ENG_END_DOX} - * @paramrow{2.,[out],ppSystem,@ref DOX_IADLXSystem**,@ENG_START_DOX The address of a pointer to the ADLX system interface. If ADLX initialization failed\, the method sets the dereferenced address __*ppSystem__ to __nullptr__. @ENG_END_DOX} - * @paramrow{3.,[out],ppAdlMapping,@ref DOX_IADLMapping**,@ENG_START_DOX The address of a pointer to the ADLX mapping interface. If ADLX initialization failed\, the method sets the dereferenced address __*ppAdlMapping__ to __nullptr__. @ENG_END_DOX} - * @paramrow{4.,[in],adlContext,adlx_handle,@ENG_START_DOX The ADL context. @ENG_END_DOX} - * @paramrow{5.,[in],adlMainMemoryFree,@ref ADLX_ADL_Main_Memory_Free,@ENG_START_DOX The callback handle of the memory deallocation function. @ENG_END_DOX} - * - * @retvalues - * @ENG_START_DOX - * If ADLX was successfully initialized, __ADLX_OK__ is returned.
- * If ADLX was not successfully initialized, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
- * @detaileddesc - * The pointer of the function is returned by the @ref adlx_get_proc_address using the @ref ADLX_INIT_WITH_CALLER_ADL_FUNCTION_NAME as the function name. - * @ENG_END_DOX - * @requirements - * @DetailsTable{#include "ADLX.h", @ADLX_First_Ver} - */ - - /** - * @typedef ADLXInitializeWithCallerAdl_Fn - * @ingroup ADLXDefs - * @ENG_START_DOX The typedef of ADLXInitializeWithCallerAdl function. @ENG_END_DOX - * @definition - * @codeStart - * typedef @ref ADLX_RESULT (ADLX_CDECL_CALL *ADLXInitializeWithCallerAdl_Fn)(adlx_uint64 version, @ref DOX_IADLXSystem** ppSystem, @ref DOX_IADLMapping** ppAdlMapping, adlx_handle adlContext, @ref ADLX_ADL_Main_Memory_Free adlMainMemoryFree) - * @codeEnd - */ - typedef ADLX_RESULT (ADLX_CDECL_CALL *ADLXInitializeWithCallerAdl_Fn)(adlx_uint64 version, adlx::IADLXSystem** ppSystem, adlx::IADLMapping** ppAdlMapping, adlx_handle adlContext, ADLX_ADL_Main_Memory_Free adlMainMemoryFree); - - /** - * @page page_ADLXTerminate_Fn ADLXTerminate_Fn - * @ENG_START_DOX - * @brief A pointer to the function to terminate ADLX. - * @ENG_END_DOX - * - * @syntax - * @codeStart - * typedef @ref ADLX_RESULT (ADLX_CDECL_CALL *ADLXTerminate_Fn)() - * @codeEnd - * @params - * N/A - * - * @retvalues - * @ENG_START_DOX - * If the function is successfully executed, __ADLX_OK__ is returned.
- * If the function is not successfully executed, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
- * @detaileddesc - * The pointer of the function is returned by the @ref adlx_get_proc_address using the @ref ADLX_TERMINATE_FUNCTION_NAME as the function name. - * @ENG_END_DOX - * @requirements - * @DetailsTable{#include "ADLX.h", @ADLX_First_Ver} - */ - - /** - * @typedef ADLXTerminate_Fn - * @ingroup ADLXDefs - * @ENG_START_DOX The typedef of ADLXTerminate function. @ENG_END_DOX - * @definition - * @codeStart - * typedef ADLX_RESULT (ADLX_CDECL_CALL *ADLXTerminate_Fn)() - * @codeEnd - */ - typedef ADLX_RESULT (ADLX_CDECL_CALL *ADLXTerminate_Fn)(); -} -#else -typedef ADLX_RESULT (ADLX_CDECL_CALL *ADLXQueryFullVersion_Fn)(adlx_uint64* fullVersion); -typedef ADLX_RESULT (ADLX_CDECL_CALL *ADLXQueryVersion_Fn)(const char** version); -typedef ADLX_RESULT (ADLX_CDECL_CALL *ADLXInitialize_Fn)(adlx_uint64 version, IADLXSystem** ppSystem); -typedef ADLX_RESULT (ADLX_CDECL_CALL *ADLXInitializeWithCallerAdl_Fn)(adlx_uint64 version, IADLXSystem** ppSystem, IADLMapping** ppAdlMapping, adlx_handle adlContext, ADLX_ADL_Main_Memory_Free adlMainMemoryFree); -typedef ADLX_RESULT (ADLX_CDECL_CALL *ADLXTerminate_Fn)(); -#endif - -#pragma endregion C-style functions - -#endif //ADLX_H \ No newline at end of file diff --git a/src/adlx/sdk/Include/ADLXDefines.h b/src/adlx/sdk/Include/ADLXDefines.h deleted file mode 100644 index 7f82052..0000000 --- a/src/adlx/sdk/Include/ADLXDefines.h +++ /dev/null @@ -1,1308 +0,0 @@ -// -// Copyright (c) 2021 - 2023 Advanced Micro Devices, Inc. All rights reserved. -// -//------------------------------------------------------------------------------------------------- - -#ifndef ADLX_DEFINES_H -#define ADLX_DEFINES_H -#pragma once - -#if defined(_WIN32) -#include -#endif - -#include -#include -#include "ADLXVersion.h" - -//------------------------------------------------------------------------------------------------- -//Version stuff -#pragma region version - -#define ADLX_MAKE_FULL_VER(VERSION_MAJOR, VERSION_MINOR, VERSION_RELEASE, VERSION_BUILD_NUM) ( ((adlx_uint64)(VERSION_MAJOR) << 48ull) | ((adlx_uint64)(VERSION_MINOR) << 32ull) | ((adlx_uint64)(VERSION_RELEASE) << 16ull) | (adlx_uint64)(VERSION_BUILD_NUM)) -#define ADLX_FULL_VERSION ADLX_MAKE_FULL_VER(ADLX_VER_MAJOR, ADLX_VER_MINOR, ADLX_VER_RELEASE, ADLX_VER_BUILD_NUM) - -#define ADLX_VERSION_STR ADLX_VER_MAJOR##.##ADLX_VER_MINOR -#pragma endregion version - -//------------------------------------------------------------------------------------------------- -//ADLX Platform - platform-specific defines, such as types and C/C++ declarations -#pragma region platform -/** - * @defgroup typedefs ADLX Primitive Data Types - * @ENG_START_DOX - * @brief This section provides definitions for ADLX primitive data types. - * @ENG_END_DOX - * - * @requirements - * @DetailsTable{#include "ADLXDefines.h", @ADLX_First_Ver} - * - * ADLX Type | Description - * ----: | :---- - * adlx_int64 | @ENG_START_DOX adlx_int64 is typedef of int64_t @ENG_END_DOX - * adlx_int32 | @ENG_START_DOX adlx_int32 is typedef of int32_t @ENG_END_DOX - * adlx_int16 | @ENG_START_DOX adlx_int16 is typedef of int16_t @ENG_END_DOX - * adlx_int8 | @ENG_START_DOX adlx_int8 is typedef of int8_t @ENG_END_DOX - * adlx_uint64 | @ENG_START_DOX adlx_uint64 is typedef of uint64_t @ENG_END_DOX - * adlx_uint32 | @ENG_START_DOX adlx_uint32 is typedef of uint32_t @ENG_END_DOX - * adlx_uint16 | @ENG_START_DOX adlx_uint16 is typedef of uint16_t @ENG_END_DOX - * adlx_uint8 | @ENG_START_DOX adlx_uint8 is typedef of uint8_t @ENG_END_DOX - * adlx_size | @ENG_START_DOX adlx_size is typedef of size_t @ENG_END_DOX - * adlx_handle | @ENG_START_DOX adlx_handle is typedef of void* @ENG_END_DOX - * adlx_double | @ENG_START_DOX adlx_double is typedef of double @ENG_END_DOX - * adlx_float | @ENG_START_DOX adlx_float is typedef of float @ENG_END_DOX - * adlx_void | @ENG_START_DOX adlx_void is typedef of void @ENG_END_DOX - * adlx_int | @ENG_START_DOX adlx_int is typedef of adlx_int32 @ENG_END_DOX - * adlx_uint | @ENG_START_DOX adlx_uint is typedef of adlx_uint32 @ENG_END_DOX - * adlx_ulong | @ENG_START_DOX adlx_ulong is typedef of unsigned long @ENG_END_DOX - * adlx_bool | @ENG_START_DOX adlx_bool is typedef of bool @ENG_END_DOX - */ -#pragma region ADLX simple data types -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 uint8_t adlx_byte; - -#if defined(__cplusplus) -typedef bool adlx_bool; -#else -typedef adlx_uint8 adlx_bool; -#define true 1 -#define false 0 -#endif -#pragma endregion ADLX simple data types - -//Calling standards -#pragma region Export declarations - -#if defined(_WIN32) - // 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) -#else -#define EXPORT -#define IMPORT -#pragma warning Unknown dynamic link import/export semantics. -#endif - -#pragma endregion Export declarations - -//Various platform APIs -#pragma region Platform APIs - -/** - * @page adlx_atomic_inc adlx_atomic_inc - * @ENG_START_DOX - * @brief An atomic increment of a variable in multithreading environments. - * @ENG_END_DOX - * - * @syntax - * @codeStart - * adlx_long adlx_atomic_inc (adlx_long* x) - * @codeEnd - * @params - * @paramrow{1.,[in],x,adlx_long*,@ENG_START_DOX The pointer to the variable to be incremented. @ENG_END_DOX} - * - * @retvalues - * @ENG_START_DOX - * The incremented value. - * @ENG_END_DOX - * @requirements - * @DetailsTable{#include "ADLXDefines.h", @ADLX_First_Ver} - */ -adlx_long ADLX_CDECL_CALL adlx_atomic_inc (adlx_long* x); - -/** - * @page adlx_atomic_dec adlx_atomic_dec - * @ENG_START_DOX - * @brief An atomic decrement of a variable in multithreading environments. - * @ENG_END_DOX - * - * @syntax - * @codeStart - * adlx_long adlx_atomic_dec (adlx_long* x) - * @codeEnd - * @params - * @paramrow{1.,[in],x,adlx_long*,@ENG_START_DOX The pointer to the variable to be decremented. @ENG_END_DOX} - * - * @retvalues - * @ENG_START_DOX - * The decremented value. - * @ENG_END_DOX - * @requirements - * @DetailsTable{#include "ADLXDefines.h", @ADLX_First_Ver} - */ -adlx_long ADLX_CDECL_CALL adlx_atomic_dec (adlx_long* x); - - -/** - * @page adlx_load_library adlx_load_library - * @ENG_START_DOX - * @brief Loads a module into the address space of the calling process. - * @ENG_END_DOX - * - * @syntax - * @codeStart - * adlx_handle adlx_load_library (const TCHAR* filename) - * @codeEnd - * @params - * @paramrow{1.,[in],filename,const TCHAR*,@ENG_START_DOX The zero-terminated string that specifies the file name of the module to be loaded. @ENG_END_DOX} - * - * @retvalues - * @ENG_START_DOX - * If the module is successfully loaded, a handle to the loaded module is returned.
- * If the module is not successfully loaded, __nullptr__ is returned.
- * @ENG_END_DOX - * - * @detaileddesc - * @ENG_START_DOX - * @details - * Use this function to load ADLX in your application. Specify the __filename__ parameter as @ref ADLX_DLL_NAME. - * @ENG_END_DOX - * - * @requirements - * @DetailsTable{#include "ADLXDefines.h", @ADLX_First_Ver} - */ -adlx_handle ADLX_CDECL_CALL adlx_load_library (const TCHAR* filename); - -/** -* @page adlx_free_library adlx_free_library -* @ENG_START_DOX -* @brief Frees a loaded module. -* @ENG_END_DOX -* -* @syntax -* @codeStart -* int adlx_free_library (adlx_handle module) -* @codeEnd -* @params -* @paramrow{1.,[in],module,adlx_handle,@ENG_START_DOX The handle to the loaded module. @ENG_END_DOX} -* -* @retvalues -* @ENG_START_DOX -* If the module is successfully unloaded, a non-zero value is returned.
-* If the module is not successfully unloaded, zero is returned.
-* @ENG_END_DOX -* -* @detaileddesc -* @ENG_START_DOX -* @details -* When ADLX is successfully freed with this function, ADLX is unloaded from the address space of the calling process and the handle to the module is no longer valid. -* @ENG_END_DOX -* -* @requirements -* @DetailsTable{#include "ADLXDefines.h", @ADLX_First_Ver} -*/ -int ADLX_CDECL_CALL adlx_free_library (adlx_handle module); - -/** - * @page adlx_get_proc_address adlx_get_proc_address - * @ENG_START_DOX - * @brief Retrieves the address of a function from a module. - * @ENG_END_DOX - * - * @syntax - * @codeStart - * void* adlx_get_proc_address (adlx_handle module, const char* procName) - * @codeEnd - * @params - * @paramrow{1.,[in],module,adlx_handle,@ENG_START_DOX The handle to the module. @ENG_END_DOX} - * @paramrow{2.,[in],procName,const char*,@ENG_START_DOX The zero-terminated string that specifies the name of the function. @ENG_END_DOX} - * - * @retvalues - * @ENG_START_DOX - * If the function was found, the address of the function is returned.
- * If the function was not found, __nullptr__ is returned.
- * @ENG_END_DOX - * - * @detaileddesc - * @ENG_START_DOX - * @details - * Use this function to load ADLX functions from the ADLX module. The name of the ADLX function can be one of values: @ref ADLX_QUERY_FULL_VERSION_FUNCTION_NAME, @ref ADLX_QUERY_VERSION_FUNCTION_NAME, @ref ADLX_INIT_FUNCTION_NAME, @ref ADLX_INIT_WITH_CALLER_ADL_FUNCTION_NAME, @ref ADLX_TERMINATE_FUNCTION_NAME.
- * Parameter: procName | Description | Return Value - * -|-|- - * @ref ADLX_QUERY_FULL_VERSION_FUNCTION_NAME | The function to query the full version of ADLX. | @ref page_ADLXQueryFullVersion_Fn| - * @ref ADLX_QUERY_VERSION_FUNCTION_NAME | The function to query the version of ADLX. | @ref page_ADLXQueryVersion_Fn| - * @ref ADLX_INIT_FUNCTION_NAME | The function to initialize ADLX with default parameters. | @ref page_ADLXInitialize_Fn | - * @ref ADLX_INIT_WITH_INCOMPATIBLE_DRIVER_FUNCTION_NAME | The function to initialize ADLX with a legacy driver. | @ref page_ADLXInitialize_Fn | - * @ref ADLX_INIT_WITH_CALLER_ADL_FUNCTION_NAME | The function to initialize ADLX with an ADL context. | @ref page_ADLXInitializeWithCallerAdl_Fn| - * @ref ADLX_TERMINATE_FUNCTION_NAME | The function to terminate ADLX. | @ref page_ADLXTerminate_Fn | - * @ENG_END_DOX - * - * @requirements - * @DetailsTable{#include "ADLXDefines.h", @ADLX_First_Ver} - */ -void* ADLX_CDECL_CALL adlx_get_proc_address (adlx_handle module, const char* procName); - -#pragma endregion Platform APIs - -#pragma endregion platform -/** @file */ -//------------------------------------------------------------------------------------------------- -//ADLX data types -#pragma region ADLX data types - -#pragma region ADLX_RESULT -/** - * @enum ADLX_RESULT - * @ingroup enumerations - * @ENG_START_DOX - * @brief Indicates the result returned from an ADLX function or from an ADLX method. - * @ENG_END_DOX - */ -typedef enum -{ - ADLX_OK = 0, /**< @ENG_START_DOX This result indicates success. @ENG_END_DOX */ - ADLX_ALREADY_ENABLED, /**< @ENG_START_DOX This result indicates that the asked action is already enabled. @ENG_END_DOX */ - ADLX_ALREADY_INITIALIZED, /**< @ENG_START_DOX This result indicates that ADLX has a unspecified type of initialization. @ENG_END_DOX */ - ADLX_FAIL, /**< @ENG_START_DOX This result indicates an unspecified failure. @ENG_END_DOX */ - ADLX_INVALID_ARGS, /**< @ENG_START_DOX This result indicates that the arguments are invalid. @ENG_END_DOX */ - ADLX_BAD_VER, /**< @ENG_START_DOX This result indicates that the asked version is incompatible with the current version. @ENG_END_DOX */ - ADLX_UNKNOWN_INTERFACE, /**< @ENG_START_DOX This result indicates that an unknown interface was asked. @ENG_END_DOX */ - ADLX_TERMINATED, /**< @ENG_START_DOX This result indicates that the calls were made in an interface after ADLX was terminated. @ENG_END_DOX */ - ADLX_ADL_INIT_ERROR, /**< @ENG_START_DOX This result indicates that the ADL initialization failed. @ENG_END_DOX */ - ADLX_NOT_FOUND, /**< @ENG_START_DOX This result indicates that the item is not found. @ENG_END_DOX */ - ADLX_INVALID_OBJECT, /**< @ENG_START_DOX This result indicates that the method was called into an invalid object. @ENG_END_DOX */ - ADLX_ORPHAN_OBJECTS, /**< @ENG_START_DOX This result indicates that ADLX was terminated with outstanding ADLX objects. Any interface obtained from ADLX points to invalid memory and calls in their methods will result in unexpected behavior. @ENG_END_DOX */ - ADLX_NOT_SUPPORTED, /**< @ENG_START_DOX This result indicates that the asked feature is not supported. @ENG_END_DOX */ - ADLX_PENDING_OPERATION, /**< @ENG_START_DOX This result indicates a failure due to an operation currently in progress. @ENG_END_DOX */ - ADLX_GPU_INACTIVE /**< @ENG_START_DOX This result indicates that the GPU is inactive. @ENG_END_DOX */ -} ADLX_RESULT; - -/** - * @def ADLX_SUCCEEDED - * @ingroup ADLXMacro - * @ENG_START_DOX Checks if the result code passed as parameter indicates a successful operation. @ENG_END_DOX - * @definition - * @codeStart - * \#define ADLX_SUCCEEDED(x) (ADLX_OK == (x) || ADLX_ALREADY_ENABLED == (x) || ADLX_ALREADY_INITIALIZED == (x)) - * @codeEnd -*/ -#define ADLX_SUCCEEDED(x) (ADLX_OK == (x) || ADLX_ALREADY_ENABLED == (x) || ADLX_ALREADY_INITIALIZED == (x)) - - /** - * @def ADLX_FAILED - * @ingroup ADLXMacro - * @ENG_START_DOX Checks if the result code passed as parameter indicates an unsuccessful operation. @ENG_END_DOX - * @definition - * @codeStart - * \#define ADLX_FAILED(x) (ADLX_OK != (x) && ADLX_ALREADY_ENABLED != (x) && ADLX_ALREADY_INITIALIZED != (x)) - * @codeEnd - */ -#define ADLX_FAILED(x) (ADLX_OK != (x) && ADLX_ALREADY_ENABLED != (x) && ADLX_ALREADY_INITIALIZED != (x)) - -#pragma endregion ADLX_RESULT - -#pragma region ADLX_HG_TYPE -/** - * @enum ADLX_HG_TYPE - * @ingroup enumerations - * @ENG_START_DOX - * @brief Indicates the type of Hybrid Graphic. - * @ENG_END_DOX - */ -typedef enum -{ - NONE = 0, /**< @ENG_START_DOX This is not a Hybrid Graphics system. @ENG_END_DOX */ - AMD, /**< @ENG_START_DOX This is an AMD integrated GPU. @ENG_END_DOX */ - OTHER, /**< @ENG_START_DOX This is a non-AMD integrated GPU. @ENG_END_DOX */ -} ADLX_HG_TYPE; -#pragma endregion ADLX_HG_TYPE - -#pragma region ADLX_ASIC_FAMILY_TYPE -/** - * @enum ADLX_ASIC_FAMILY_TYPE - * @ingroup enumerations - * @ENG_START_DOX - * @brief Indicates the ASIC family type. - * @ENG_END_DOX - */ -typedef enum -{ - ASIC_UNDEFINED = 0, /**< @ENG_START_DOX The ASIC family type is not defined. @ENG_END_DOX */ - ASIC_RADEON, /**< @ENG_START_DOX The ASIC family type is discrete. @ENG_END_DOX */ - ASIC_FIREPRO, /**< @ENG_START_DOX The ASIC family type is Firepro. @ENG_END_DOX */ - ASIC_FIREMV, /**< @ENG_START_DOX The ASIC family type is FireMV. @ENG_END_DOX */ - ASIC_FIRESTREAM, /**< @ENG_START_DOX The ASIC family type is FireStream. @ENG_END_DOX */ - ASIC_FUSION, /**< @ENG_START_DOX The ASIC family type is Fusion. @ENG_END_DOX */ - ASIC_EMBEDDED, /**< @ENG_START_DOX The ASIC family type is Embedded. @ENG_END_DOX */ -} ADLX_ASIC_FAMILY_TYPE; -#pragma endregion ADLX_ASIC_FAMILY_TYPE - -#pragma region ADLX_PCI_BUS_TYPE -/** - * @enum ADLX_PCI_BUS_TYPE - * @ingroup enumerations - * @ENG_START_DOX - * @brief Indicates the PCI bus type. - * @ENG_END_DOX - */ -typedef enum -{ - UNDEFINED = 0, /**< @ENG_START_DOX The PCI bus type is not defined. @ENG_END_DOX */ - PCI, /**< @ENG_START_DOX The PCI bus type is PCI bus. @ENG_END_DOX */ - AGP, /**< @ENG_START_DOX The PCI bus type is AGP bus. @ENG_END_DOX */ - PCIE, /**< @ENG_START_DOX The PCI bus type is PCI Express bus. @ENG_END_DOX */ - PCIE_2_0, /**< @ENG_START_DOX The PCI bus type is PCI Express 2nd generation bus. @ENG_END_DOX */ - PCIE_3_0, /**< @ENG_START_DOX The PCI bus type is PCI Express 3rd generation bus. @ENG_END_DOX */ - PCIE_4_0 /**< @ENG_START_DOX The PCI bus type is PCI Express 4th generation bus. @ENG_END_DOX */ -} ADLX_PCI_BUS_TYPE; -#pragma endregion ADLX_PCI_BUS_TYPE - -#pragma region ADLX_DP_LINK_RATE -/** - * @enum ADLX_DP_LINK_RATE - * @ingroup enumerations - * @ENG_START_DOX - * @brief Indicates the DP link rate. - * @ENG_END_DOX - */ -typedef enum -{ - DP_LINK_RATE_UNKNOWN = 0, /**< @ENG_START_DOX The DP link rate is unknown. @ENG_END_DOX */ - DP_LINK_RATE_RBR, /**< @ENG_START_DOX The DP link rate is 1.62 Gbps/Lane. @ENG_END_DOX */ - DP_LINK_RATE_2_16GBPS, /**< @ENG_START_DOX The DP link rate is 2.16 Gbps/Lane. @ENG_END_DOX */ - DP_LINK_RATE_2_43GBPS, /**< @ENG_START_DOX The DP link rate is 2.43 Gbps/Lane. @ENG_END_DOX */ - DP_LINK_RATE_HBR, /**< @ENG_START_DOX The DP link rate is 2.70 Gbps/Lane. @ENG_END_DOX */ - DP_LINK_RATE_4_32GBPS, /**< @ENG_START_DOX The DP link rate is 4.32 Gbps/Lane. @ENG_END_DOX */ - DP_LINK_RATE_HBR2, /**< @ENG_START_DOX The DP link rate is 5.40 Gbps/Lane. @ENG_END_DOX */ - DP_LINK_RATE_HBR3, /**< @ENG_START_DOX The DP link rate is 8.10 Gbps/Lane. @ENG_END_DOX */ - DP_LINK_RATE_UHBR10, /**< @ENG_START_DOX The DP link rate is 10 Gbps/Lane. @ENG_END_DOX */ - DP_LINK_RATE_UHBR13D5, /**< @ENG_START_DOX The DP link rate is 13.5 Gbps/Lane. @ENG_END_DOX */ - DP_LINK_RATE_UHBR20 /**< @ENG_START_DOX The DP link rate is 20 Gbps/Lane. @ENG_END_DOX */ -} ADLX_DP_LINK_RATE; - -#pragma endregion ADLX_DP_LINK_RATE - -#pragma region ADLX_GPU_TYPE -/** - * @enum ADLX_GPU_TYPE - * @ingroup enumerations - * @ENG_START_DOX - * @brief Indicates the GPU type. - * @ENG_END_DOX - */ -typedef enum -{ - GPUTYPE_UNDEFINED = 0, /**< @ENG_START_DOX The GPU type is unknown. @ENG_END_DOX */ - GPUTYPE_INTEGRATED, /**< @ENG_START_DOX The GPU type is an integrated GPU. @ENG_END_DOX */ - GPUTYPE_DISCRETE, /**< @ENG_START_DOX The GPU type is a discrete GPU. @ENG_END_DOX */ -} ADLX_GPU_TYPE; -#pragma endregion ADLX_GPU_TYPE - -#pragma region ADLX_DISPLAY_CONNECTOR_TYPE -/** - * @enum ADLX_DISPLAY_CONNECTOR_TYPE - * @ingroup enumerations - * @ENG_START_DOX - * @brief Indicates the display connector type. - * @ENG_END_DOX - */ -typedef enum -{ - DISPLAY_CONTYPE_UNKNOWN = 0, /**< @ENG_START_DOX The display connector type is unknown. @ENG_END_DOX */ - DISPLAY_CONTYPE_VGA, /**< @ENG_START_DOX The display connector type is VGA. @ENG_END_DOX */ - DISPLAY_CONTYPE_DVI_D, /**< @ENG_START_DOX The display connector type is DVI-D. @ENG_END_DOX */ - DISPLAY_CONTYPE_DVI_I, /**< @ENG_START_DOX The display connector type is DVI-I. @ENG_END_DOX */ - DISPLAY_CONTYPE_CVDONGLE_NTSC, /**< @ENG_START_DOX The display connector type is NTSC. @ENG_END_DOX */ - DISPLAY_CONTYPE_CVDONGLE_JPN, /**< @ENG_START_DOX The display connector type is JPN. @ENG_END_DOX */ - DISPLAY_CONTYPE_CVDONGLE_NONI2C_JPN, /**< @ENG_START_DOX The display connector type is NONI2C-JPN. @ENG_END_DOX */ - DISPLAY_CONTYPE_CVDONGLE_NONI2C_NTSC, /**< @ENG_START_DOX The display connector type is NONI2C-NTSC. @ENG_END_DOX */ - DISPLAY_CONTYPE_PROPRIETARY, /**< @ENG_START_DOX The display connector type is PROPRIETARY. @ENG_END_DOX */ - DISPLAY_CONTYPE_HDMI_TYPE_A, /**< @ENG_START_DOX The display connector type is HDMI A. @ENG_END_DOX */ - DISPLAY_CONTYPE_HDMI_TYPE_B, /**< @ENG_START_DOX The display connector type is HDMI B. @ENG_END_DOX */ - DISPLAY_CONTYPE_SVIDEO, /**< @ENG_START_DOX The display connector type is SVIDEO. @ENG_END_DOX */ - DISPLAY_CONTYPE_COMPOSITE, /**< @ENG_START_DOX The display connector type is COMPOSITE. @ENG_END_DOX */ - DISPLAY_CONTYPE_RCA_3COMPONENT, /**< @ENG_START_DOX The display connector type is RCA. @ENG_END_DOX */ - DISPLAY_CONTYPE_DISPLAYPORT, /**< @ENG_START_DOX The display connector type is DISPLAYPORT. @ENG_END_DOX */ - DISPLAY_CONTYPE_EDP, /**< @ENG_START_DOX The display connector type is EDP. @ENG_END_DOX */ - DISPLAY_CONTYPE_WIRELESSDISPLAY, /**< @ENG_START_DOX The display connector type is WIRELESSDISPLAY. @ENG_END_DOX */ - DISPLAY_CONTYPE_USB_TYPE_C /**< @ENG_START_DOX The display connector type is USB Type-C. @ENG_END_DOX */ -}ADLX_DISPLAY_CONNECTOR_TYPE; -#pragma endregion ADLX_DISPLAY_CONNECTOR_TYPE - -#pragma region ADLX_DISPLAY_TYPE -/** - * @enum ADLX_DISPLAY_TYPE - * @ingroup enumerations - * @ENG_START_DOX - * @brief Indicates the display type. - * @ENG_END_DOX - */ -typedef enum -{ - DISPLAY_TYPE_UNKOWN = 0, /**< @ENG_START_DOX The display type is an unknown display. @ENG_END_DOX */ - DISPLAY_TYPE_MONITOR, /**< @ENG_START_DOX The display type is a monitor display. @ENG_END_DOX */ - DISPLAY_TYPE_TELEVISION, /**< @ENG_START_DOX The display type is a TV display. @ENG_END_DOX */ - DISPLAY_TYPE_LCD_PANEL, /**< @ENG_START_DOX The display type is an LCD display. @ENG_END_DOX */ - DISPLAY_TYPE_DIGITAL_FLAT_PANEL, /**< @ENG_START_DOX The display type is a DFP display. @ENG_END_DOX */ - DISPLAY_TYPE_COMPONENT_VIDEO, /**< @ENG_START_DOX The display type is a component video display. @ENG_END_DOX */ - DISPLAY_TYPE_PROJECTOR /**< @ENG_START_DOX The display type is a projector display. @ENG_END_DOX */ -}ADLX_DISPLAY_TYPE; -#pragma endregion ADLX_DISPLAY_TYPE - -#pragma region ADLX_DISPLAY_SCAN_TYPE -/** - * @enum ADLX_DISPLAY_SCAN_TYPE - * @ingroup enumerations - * @ENG_START_DOX - * @brief Indicates the display scan type. - * @ENG_END_DOX - */ -typedef enum -{ - PROGRESSIVE = 0, /**< @ENG_START_DOX The display scan type is progressive mode. @ENG_END_DOX */ - INTERLACED /**< @ENG_START_DOX The display scan type is interlaced mode. @ENG_END_DOX */ -} ADLX_DISPLAY_SCAN_TYPE; -#pragma endregion ADLX_DISPLAY_SCAN_TYPE - -#pragma region ADLX_DISPLAY_TIMING_POLARITY -/** - * @enum ADLX_DISPLAY_TIMING_POLARITY - * @ingroup enumerations - * @ENG_START_DOX - * @brief Display timing polarity - * @ENG_END_DOX - */ -typedef enum -{ - POSITIVE = 0, /**< @ENG_START_DOX Positive Polarity @ENG_END_DOX */ - NEGATIVE /**< @ENG_START_DOX Negative Polarity @ENG_END_DOX */ -} ADLX_DISPLAY_TIMING_POLARITY; - -#pragma endregion ADLX_DISPLAY_TIMING_POLARITY - -#pragma region ADLX_DISPLAY_TIMING_LIMITATION -/** - * @enum ADLX_DISPLAY_TIMING_LIMITATION - * @ingroup enumerations - * @ENG_START_DOX - * @brief Display timing limitation - * @ENG_END_DOX - */ -typedef enum -{ - PIXEL_CLOCK_MAX = 650000, /**< @ENG_START_DOX Maximum pixel clock @ENG_END_DOX */ - PIXEL_CLOCK_MIN = 0, /**< @ENG_START_DOX Minimum pixel clock @ENG_END_DOX */ - REFRESH_RATE_MAX = 200, /**< @ENG_START_DOX Maximum refresh rate @ENG_END_DOX */ - REFRESH_RATE_MIN = 1, /**< @ENG_START_DOX Minimum refresh rate @ENG_END_DOX */ - RESOLUTION_MAX = 9999, /**< @ENG_START_DOX Maximum resolution @ENG_END_DOX */ - RESOLUTION_MIN = 1 /**< @ENG_START_DOX Minimum resolution @ENG_END_DOX */ -} ADLX_DISPLAY_TIMING_LIMITATION; - -#pragma endregion ADLX_DISPLAY_TIMING_LIMITATION - -#pragma region ADLX_USER_3DLUT_SIZE -/** -* @def MAX_USER_3DLUT_NUM_POINTS -* @ingroup ADLXMacro -* @ENG_START_DOX Constant value used to set size of user 3D LUT data @ENG_END_DOX -* @definition -* @codeStart -* \#define MAX_USER_3DLUT_NUM_POINTS 17 -* @codeEnd -*/ - -#define MAX_USER_3DLUT_NUM_POINTS 17 - -#pragma endregion ADLX_USER_3DLUT_SIZE - -#pragma region ADLX_GAMUT_SPACE -/** - * @enum ADLX_GAMUT_SPACE - * @ingroup enumerations - * @ENG_START_DOX - * @brief Indicates the predefined gamut space. - * @ENG_END_DOX - */ -typedef enum -{ - GAMUT_SPACE_CCIR_709 = 0, /**< @ENG_START_DOX The predefined gamut space is GAMUT_SPACE_CCIR_709. @ENG_END_DOX */ - GAMUT_SPACE_CCIR_601, /**< @ENG_START_DOX The predefined gamut space is GAMUT_SPACE_CCIR_601. @ENG_END_DOX */ - GAMUT_SPACE_ADOBE_RGB, /**< @ENG_START_DOX The predefined gamut space is GAMUT_SPACE_ADOBE_RGB. @ENG_END_DOX */ - GAMUT_SPACE_CIE_RGB, /**< @ENG_START_DOX The predefined gamut space is GAMUT_SPACE_CIE_RGB. @ENG_END_DOX */ - GAMUT_SPACE_CCIR_2020, /**< @ENG_START_DOX The predefined gamut space is GAMUT_SPACE_CCIR_2020. @ENG_END_DOX */ - GAMUT_SPACE_CUSTOM /**< @ENG_START_DOX The predefined gamut space is GAMUT_SPACE_CUSTOM. @ENG_END_DOX */ -} ADLX_GAMUT_SPACE; -#pragma endregion ADLX_GAMUT_SPACE - -#pragma region ADLX_WHITE_POINT -/** - * @enum ADLX_WHITE_POINT - * @ingroup enumerations - * @ENG_START_DOX - * @brief Indicates the standardized white point setting. - * @ENG_END_DOX - */ -typedef enum -{ - WHITE_POINT_5000K = 0, /**< @ENG_START_DOX The white point setting is 5000k. @ENG_END_DOX */ - WHITE_POINT_6500K, /**< @ENG_START_DOX The white point setting is 6500k. @ENG_END_DOX */ - WHITE_POINT_7500K, /**< @ENG_START_DOX The white point setting is 7500k. @ENG_END_DOX */ - WHITE_POINT_9300K, /**< @ENG_START_DOX The white point setting is 9300k. @ENG_END_DOX */ - WHITE_POINT_CUSTOM /**< @ENG_START_DOX The white point setting is customized. @ENG_END_DOX */ -} ADLX_WHITE_POINT; -#pragma endregion ADLX_WHITE_POINT - -#pragma region ADLX_GAMMA_TYPE -/** - * @enum ADLX_GAMMA_TYPE - * @ingroup enumerations - * @ENG_START_DOX - * @brief Indicates the gamma type. - * @ENG_END_DOX - */ -typedef enum -{ - UNKNOW = 0, /**< @ENG_START_DOX The gamma type is unknown. @ENG_END_DOX */ - DEGAMMA_RAMP, /**< @ENG_START_DOX The gamma type is Degamma Ramp way. @ENG_END_DOX */ - REGAMMA_RAMP, /**< @ENG_START_DOX The gamma type is Regamma Ramp way. @ENG_END_DOX */ - DEGAMMA_COEFFICIENTS, /**< @ENG_START_DOX The gamma type is Degamma coefficients way. @ENG_END_DOX */ - REGAMMA_COEFFICIENTS /**< @ENG_START_DOX The gamma type is Regamma coefficients way. @ENG_END_DOX */ -} ADLX_GAMMA_TYPE; -#pragma endregion ADLX_GAMMA_TYPE - -#pragma region ADLX_ORIENTATION -/** - * @enum ADLX_ORIENTATION - * @ingroup enumerations - * @ENG_START_DOX - * @brief Indicates the orientation. - * @ENG_END_DOX - */ -typedef enum -{ - ORIENTATION_LANDSCAPE = 0, /**< @ENG_START_DOX The orientation is landscape. @ENG_END_DOX */ - ORIENTATION_PORTRAIT = 90, /**< @ENG_START_DOX The orientation is Portrait. @ENG_END_DOX */ - ORIENTATION_LANDSCAPE_FLIPPED = 180, /**< @ENG_START_DOX The orientation is landscape (flipped). @ENG_END_DOX */ - ORIENTATION_PORTRAIT_FLIPPED = 270, /**< @ENG_START_DOX the orientation is Portrait (flipped). @ENG_END_DOX */ -} ADLX_ORIENTATION; -#pragma endregion ADLX_ORIENTATION - -#pragma region ADLX_DESKTOP_TYPE -/** - * @enum ADLX_DESKTOP_TYPE - * @ingroup enumerations - * @ENG_START_DOX - * @brief Types of desktops in respect to display composition - * @ENG_END_DOX - */ -typedef enum { - DESKTOP_SINGLE = 0, /**< @ENG_START_DOX Single display desktop: one display showing the entire desktop @ENG_END_DOX */ - DESKTOP_DUPLCATE = 1, /**< @ENG_START_DOX Duplicate desktop: two or more displays each show the entire desktop @ENG_END_DOX */ - DESKTOP_EYEFINITY = 2, /**< @ENG_START_DOX AMD Eyefinity desktop: two or more displays each show a portion of the desktop @ENG_END_DOX */ -} ADLX_DESKTOP_TYPE; -#pragma endregion ADLX_DESKTOP_TYPE - -#pragma region ADLX_LOG_SEVERITY -/** @enum ADLX_LOG_SEVERITY - * @ingroup enumerations - * @ENG_START_DOX - * @brief Indicates the severity level for ADLX logs. - * @ENG_END_DOX - * - */ -typedef enum -{ - LDEBUG = 0, /**< @ENG_START_DOX The log captures errors, warnings and debug information. @ENG_END_DOX */ - LWARNING, /**< @ENG_START_DOX The log captures errors and warnings. @ENG_END_DOX */ - LERROR, /**< @ENG_START_DOX The log captures errors. @ENG_END_DOX */ -} ADLX_LOG_SEVERITY; -#pragma endregion ADLX_LOG_SEVERITY - -#pragma region ADLX_LOG_DESTINATION -/** @enum ADLX_LOG_DESTINATION - * @ingroup enumerations - * @ENG_START_DOX - * @brief Indicates the location of the log traces that are generated from the internal code execution of ADLX. - * @ENG_END_DOX - * - */ -typedef enum -{ - LOCALFILE = 0, /**< @ENG_START_DOX The log destination is a file. @ENG_END_DOX */ - DBGVIEW, /**< @ENG_START_DOX The log destination is the application debugger. @ENG_END_DOX */ - APPLICATION, /**< @ENG_START_DOX The log destination is the application. @ENG_END_DOX */ -} ADLX_LOG_DESTINATION; -#pragma endregion ADLX_LOG_DESTINATION - -#pragma region ADLX_SCALE_MODE -/** @enum ADLX_SCALE_MODE - * @ingroup enumerations - * @ENG_START_DOX - * @brief Indicates the methods to stretch and position the image to fit on the display. - * @ENG_END_DOX - * - */ -typedef enum -{ - PRESERVE_ASPECT_RATIO = 0, /**< @ENG_START_DOX The scale mode preserves aspect ratio. @ENG_END_DOX */ - FULL_PANEL, /**< @ENG_START_DOX The scale mode extends to full panel. @ENG_END_DOX */ - CENTERED /**< @ENG_START_DOX The scale mode is centered on screen. @ENG_END_DOX */ -} ADLX_SCALE_MODE; - -#pragma endregion ADLX_SCALE_MODE - -#pragma region ADLX_COLOR_DEPTH -/** @enum ADLX_COLOR_DEPTH - * @ingroup enumerations - * @ENG_START_DOX - * @brief Indicates the color/bit depth, which is the number of bits used to indicate the color of a single pixel. - * @ENG_END_DOX - * - */ -typedef enum -{ - BPC_UNKNOWN = 0, - BPC_6, /**< @ENG_START_DOX A color component/pixel with 6 bits @ENG_END_DOX */ - BPC_8, /**< @ENG_START_DOX A color component/pixel with 8 bits @ENG_END_DOX */ - BPC_10, /**< @ENG_START_DOX A color component/pixel with 10 bits @ENG_END_DOX */ - BPC_12, /**< @ENG_START_DOX A color component/pixel with 12 bits @ENG_END_DOX */ - BPC_14, /**< @ENG_START_DOX A color component/pixel with 14 bits @ENG_END_DOX */ - BPC_16 /**< @ENG_START_DOX A color component/pixel with 16 bits @ENG_END_DOX */ -} ADLX_COLOR_DEPTH; - -#pragma endregion ADLX_COLOR_DEPTH - -#pragma region ADLX_PIXEL_FORMAT -/** @enum ADLX_PIXEL_FORMAT - * @ingroup enumerations - * @ENG_START_DOX - * @brief Indicates the pixel format to encode images for the display. - * @ENG_END_DOX - * - */ -typedef enum -{ - FORMAT_UNKNOWN = 0,/**< @ENG_START_DOX The pixel format is unknown. @ENG_END_DOX */ - RGB_444_FULL, /**< @ENG_START_DOX The pixel format is RGB 4:4:4 PC Standard (Full RGB). @ENG_END_DOX */ - YCBCR_444, /**< @ENG_START_DOX The pixel format is YCbCr 4:4:4. @ENG_END_DOX */ - YCBCR_422, /**< @ENG_START_DOX The pixel format is YCbCr 4:2:2. @ENG_END_DOX */ - RGB_444_LIMITED, /**< @ENG_START_DOX The pixel format is RGB 4:4:4 Studio (Limited RGB). @ENG_END_DOX */ - YCBCR_420 /**< @ENG_START_DOX The pixel format is YCbCr 4:2:0 Pixel Format. @ENG_END_DOX */ -} ADLX_PIXEL_FORMAT; - -#pragma endregion ADLX_PIXEL_FORMAT - -#pragma region ADLX_TIMING_STANDARD - -/** @enum ADLX_TIMING_STANDARD - * @ingroup enumerations - * @ENG_START_DOX - * @brief Timing standard for custom resolution - * @ENG_END_DOX - * - */ -typedef enum -{ - CVT = 0, /**< @ENG_START_DOX Coordinated Video Timings(CVT) VESA standard for generating and defining the display timings. @ENG_END_DOX */ - CVT_RB, /**< @ENG_START_DOX Coordinated Video Timings-Reduced Blanking(CVT-RB).Reduces horizontal and vertical blanking - periods and allows a lower pixel clock rate and higher frame rates. @ENG_END_DOX */ - GTF, /**< @ENG_START_DOX Generalized Timing Formula(GTF). A method of generating industry standard display timings. @ENG_END_DOX */ - DMT, /**< @ENG_START_DOX Display Monitor Timmings(DMT). VESA standard that lists pre-defined display timings for various resolutions and display sizes. @ENG_END_DOX */ - MANUAL /**< @ENG_START_DOX Manual control @ENG_END_DOX */ -} ADLX_TIMING_STANDARD; - -#pragma endregion ADLX_TIMING_STANDARD - -#pragma region ADLX_WAIT_FOR_VERTICAL_REFRESH_MODE -/** @enum ADLX_WAIT_FOR_VERTICAL_REFRESH_MODE - * @ingroup enumerations - * @ENG_START_DOX - * @brief Indicates the modes of VSync settings. - * @ENG_END_DOX - */ -typedef enum -{ - WFVR_ALWAYS_OFF = 0, /**< @ENG_START_DOX VSync is always off. @ENG_END_DOX */ - WFVR_OFF_UNLESS_APP_SPECIFIES, /**< @ENG_START_DOX VSync is off, unless specified by the application. @ENG_END_DOX */ - WFVR_ON_UNLESS_APP_SPECIFIES, /**< @ENG_START_DOX VSync is on, unless specified by application. @ENG_END_DOX */ - WFVR_ALWAYS_ON, /**< @ENG_START_DOX VSync is always on. @ENG_END_DOX */ -} ADLX_WAIT_FOR_VERTICAL_REFRESH_MODE; -#pragma endregion ADLX_WAIT_FOR_VERTICAL_REFRESH_MODE - -#pragma region ADLX_ANTI_ALIASING_MODE -/** @enum ADLX_ANTI_ALIASING_MODE - * @ingroup enumerations - * @ENG_START_DOX - * @brief Indicates the anti-aliasing mode. - * @ENG_END_DOX - */ -typedef enum -{ - AA_MODE_USE_APP_SETTINGS = 0, /**< @ENG_START_DOX The anti-aliasing mode uses application settings. @ENG_END_DOX */ - AA_MODE_ENHANCE_APP_SETTINGS, /**< @ENG_START_DOX The anti-aliasing mode enhances the application settings. @ENG_END_DOX */ - AA_MODE_OVERRIDE_APP_SETTINGS, /**< @ENG_START_DOX The anti-aliasing mode overrides the application settings. @ENG_END_DOX */ -} ADLX_ANTI_ALIASING_MODE; -#pragma endregion ADLX_ANTI_ALIASING_MODE - -#pragma region ADLX_ANTI_ALIASING_LEVEL -/** @enum ADLX_ANTI_ALIASING_LEVEL - * @ingroup enumerations - * @ENG_START_DOX - * @brief Indicates the anti-aliasing level. - * @ENG_END_DOX - */ -typedef enum -{ - AA_LEVEL_INVALID = 0, /**< @ENG_START_DOX The anti-aliasing level is invalid. @ENG_END_DOX */ - AA_LEVEL_2X = 2, /**< @ENG_START_DOX The anti-aliasing level is 2X. @ENG_END_DOX */ - AA_LEVEL_2XEQ = 3, /**< @ENG_START_DOX The anti-aliasing level is 2XEQ. @ENG_END_DOX */ - AA_LEVEL_4X = 4, /**< @ENG_START_DOX The anti-aliasing level is 4X. @ENG_END_DOX */ - AA_LEVEL_4XEQ = 5, /**< @ENG_START_DOX The anti-aliasing level is 4XEQ. @ENG_END_DOX */ - AA_LEVEL_8X = 8, /**< @ENG_START_DOX The anti-aliasing level is 8X. @ENG_END_DOX */ - AA_LEVEL_8XEQ = 9, /**< @ENG_START_DOX The anti-aliasing level is 8XEQ. @ENG_END_DOX */ -} ADLX_ANTI_ALIASING_LEVEL; -#pragma endregion ADLX_ANTI_ALIASING_LEVEL - -#pragma region ADLX_ANTI_ALIASING_METHOD -/** @enum ADLX_ANTI_ALIASING_METHOD - * @ingroup enumerations - * @ENG_START_DOX - * @brief Indicates the anti-aliasing method. - * @ENG_END_DOX - */ -typedef enum -{ - AA_METHOD_MULTISAMPLING = 0, /**< @ENG_START_DOX The multi-sampling method. @ENG_END_DOX */ - AA_METHOD_ADAPTIVE_MULTISAMPLING, /**< @ENG_START_DOX The adaptive multi-sampling method. @ENG_END_DOX */ - AA_METHOD_SUPERSAMPLING, /**< @ENG_START_DOX The super-sampling method. @ENG_END_DOX */ -} ADLX_ANTI_ALIASING_METHOD; -#pragma endregion ADLX_ANTI_ALIASING_METHOD - -#pragma region ADLX_ANISOTROPIC_FILTERING_LEVEL -/** @enum ADLX_ANISOTROPIC_FILTERING_LEVEL - * @ingroup enumerations - * @ENG_START_DOX - * @brief Indicates the Anisotropic Filtering level. - * @ENG_END_DOX - */ -typedef enum -{ - AF_LEVEL_INVALID = 0, /**< @ENG_START_DOX The Anisotropic Filtering level is invalid. @ENG_END_DOX */ - AF_LEVEL_X2 = 2, /**< @ENG_START_DOX The Anisotropic Filtering level is 2X. @ENG_END_DOX */ - AF_LEVEL_X4 = 4, /**< @ENG_START_DOX The Anisotropic Filtering level is 4X. @ENG_END_DOX */ - AF_LEVEL_X8 = 8, /**< @ENG_START_DOX The Anisotropic Filtering level is 8X. @ENG_END_DOX */ - AF_LEVEL_X16 = 16, /**< @ENG_START_DOX The Anisotropic Filtering level is 16X. @ENG_END_DOX */ -} ADLX_ANISOTROPIC_FILTERING_LEVEL; -#pragma endregion ADLX_ANISOTROPIC_FILTERING_LEVEL - -#pragma region ADLX_TESSELLATION_MODE -/** @enum ADLX_TESSELLATION_MODE - * @ingroup enumerations - * @ENG_START_DOX - * @brief Indicates the tessellation setting on a GPU. - * @ENG_END_DOX - */ -typedef enum -{ - T_MODE_AMD_OPTIMIZED = 0, /**< @ENG_START_DOX This mode uses AMD optimization. @ENG_END_DOX */ - T_MODE_USE_APP_SETTINGS, /**< @ENG_START_DOX This mode uses application settings. @ENG_END_DOX */ - T_MODE_OVERRIDE_APP_SETTINGS, /**< @ENG_START_DOX This mode uses override application settings. @ENG_END_DOX */ -} ADLX_TESSELLATION_MODE; -#pragma endregion ADLX_TESSELLATION_MODE - -#pragma region ADLX_TESSELLATION_LEVEL -/** @enum ADLX_TESSELLATION_LEVEL - * @ingroup enumerations - * @ENG_START_DOX - * @brief Indicates the tessellation level on a GPU. - * @ENG_END_DOX - */ -typedef enum -{ - T_LEVEL_OFF = 1, /**< @ENG_START_DOX The tessellation level is Off. @ENG_END_DOX */ - T_LEVEL_2X = 2, /**< @ENG_START_DOX The tessellation level is 2X. @ENG_END_DOX */ - T_LEVEL_4X = 4, /**< @ENG_START_DOX The tessellation level is 4X. @ENG_END_DOX */ - T_LEVEL_6X = 6, /**< @ENG_START_DOX The tessellation level is 6X. @ENG_END_DOX */ - T_LEVEL_8X = 8, /**< @ENG_START_DOX The tessellation level is 8X. @ENG_END_DOX */ - T_LEVEL_16X = 16, /**< @ENG_START_DOX The tessellation level is 16X. @ENG_END_DOX */ - T_LEVEL_32X = 32, /**< @ENG_START_DOX The tessellation level is 32X. @ENG_END_DOX */ - T_LEVEL_64X = 64, /**< @ENG_START_DOX The tessellation level is 64X. @ENG_END_DOX */ -} ADLX_TESSELLATION_LEVEL; -#pragma endregion ADLX_TESSELLATION_LEVEL - -#pragma region ADLX_MEMORYTIMING_DESCRIPTION -/** - * @enum ADLX_MEMORYTIMING_DESCRIPTION - * @ingroup enumerations - * @ENG_START_DOX - * @brief Indicates the priority of the log entry. - * @ENG_END_DOX - */ -typedef enum -{ - MEMORYTIMING_DEFAULT = 0, /**< @ENG_START_DOX The memory timing is default. @ENG_END_DOX */ - MEMORYTIMING_FAST_TIMING, /**< @ENG_START_DOX The memory timing is fast timing. @ENG_END_DOX */ - MEMORYTIMING_FAST_TIMING_LEVEL_2, /**< @ENG_START_DOX The memory timing is fast timing level 2. @ENG_END_DOX */ - MEMORYTIMING_AUTOMATIC, /**< @ENG_START_DOX The memory timing is automatic. @ENG_END_DOX */ - MEMORYTIMING_MEMORYTIMING_LEVEL_1, /**< @ENG_START_DOX The memory timing is level 1. @ENG_END_DOX */ - MEMORYTIMING_MEMORYTIMING_LEVEL_2, /**< @ENG_START_DOX The memory timing is level 2. @ENG_END_DOX */ -} ADLX_MEMORYTIMING_DESCRIPTION; -#pragma endregion ADLX_MEMORYTIMING_DESCRIPTION - - -#pragma region ADLX_I2C_LINE -/** @enum ADLX_I2C_LINE - * @ingroup enumerations - * @ENG_START_DOX - * @brief Indicates the I2C line options. - * @ENG_END_DOX - */ -typedef enum -{ - I2C_LINE_OEM = 1, /**< @ENG_START_DOX The I2C line is OEM. @ENG_END_DOX */ - I2C_LINE_OD_CONTROL, /**< @ENG_START_DOX The I2C line is Over Driver Control. @ENG_END_DOX */ - I2C_LINE_OEM2, /**< @ENG_START_DOX The I2C line is OEM2. @ENG_END_DOX */ - I2C_LINE_OEM3, /**< @ENG_START_DOX The I2C line is OEM3. @ENG_END_DOX */ - I2C_LINE_OEM4, /**< @ENG_START_DOX The I2C line is OEM4. @ENG_END_DOX */ - I2C_LINE_OEM5, /**< @ENG_START_DOX The I2C line is OEM5. @ENG_END_DOX */ - I2C_LINE_OEM6 /**< @ENG_START_DOX The I2C line is OEM6. @ENG_END_DOX */ -} ADLX_I2C_LINE; -#pragma endregion ADLX_I2C_LINE - -#pragma region ADLX_SYNC_ORIGIN -/** @enum ADLX_SYNC_ORIGIN - * @ingroup enumerations - * @ENG_START_DOX - * @brief Indicates the origin of an event. - * @ENG_END_DOX -*/ -typedef enum -{ - SYNC_ORIGIN_UNKNOWN = 1, /**< @ENG_START_DOX The event has an unknown trigger. @ENG_END_DOX */ - SYNC_ORIGIN_INTERNAL, /**< @ENG_START_DOX The event is triggered by a change in settings using ADLX in this application. @ENG_END_DOX */ - SYNC_ORIGIN_EXTERNAL /**< @ENG_START_DOX The event is triggered by a change in settings using ADLX in another application. @ENG_END_DOX */ -} ADLX_SYNC_ORIGIN; -#pragma endregion ADLX_SYNC_ORIGIN - -#pragma region ADLX_3DLUT_TRANSFER_FUNCTION -/** @enum ADLX_3DLUT_TRANSFER_FUNCTION - * @ingroup enumerations - * @ENG_START_DOX - * @brief Indicates the User 3D LUT transfer function. - * @ENG_END_DOX - */ - typedef enum -{ - TF_SRGB = 1, /**< @ENG_START_DOX The transfer function is sRGB. @ENG_END_DOX */ - TF_PQ, /**< @ENG_START_DOX The transfer function is PQ. @ENG_END_DOX */ - TF_G22 /**< @ENG_START_DOX The transfer function is G22. @ENG_END_DOX */ -} ADLX_3DLUT_TRANSFER_FUNCTION; -#pragma endregion ADLX_3DLUT_TRANSFER_FUNCTION - -#pragma region ADLX_3DLUT_COLORSPACE -/** @enum ADLX_3DLUT_COLORSPACE - * @ingroup enumerations - * @ENG_START_DOX - * @brief Indicates the custom 3D LUT color space. - * @ENG_END_DOX - */ -typedef enum -{ - CS_SRGB = 1, /**< @ENG_START_DOX The color space is sRGB. @ENG_END_DOX */ - CS_BT2020, /**< @ENG_START_DOX The color space is BT2020. @ENG_END_DOX */ - CS_DCIP3, /**< @ENG_START_DOX The color space is DCIP3. @ENG_END_DOX */ - CS_NATIVE /**< @ENG_START_DOX The color space is native. @ENG_END_DOX */ -} ADLX_3DLUT_COLORSPACE; -#pragma endregion ADLX_3DLUT_COLORSPACE - -#pragma region ADLX_SSM_BIAS_MODE -/** @enum ADLX_SSM_BIAS_MODE - * @ingroup enumerations - * @ENG_START_DOX - * @brief AMD SmartShift Max bias mode. - * @ENG_END_DOX - */ -typedef enum -{ - SSM_BIAS_AUTO = 0, /**< @ENG_START_DOX The bias control type is auto. @ENG_END_DOX */ - SSM_BIAS_MANUAL /**< @ENG_START_DOX The bias control type is manual. @ENG_END_DOX */ -}ADLX_SSM_BIAS_MODE; -#pragma endregion ADLX_SSM_BIAS_MODE - -#pragma region ADLX_ANTILAG_STATE -/** - * @enum ADLX_ANTILAG_STATE - * @ingroup enumerations - * @ENG_START_DOX - * @brief Indicates the state of Anti Lag. - * @ENG_END_DOX - */ -typedef enum -{ - ANTILAG = 0, /**< @ENG_START_DOX The Antilag level is AntiLag. @ENG_END_DOX */ - ANTILAGNEXT, /**< @ENG_START_DOX The Antilag level is AntiLag Next. @ENG_END_DOX */ -} ADLX_ANTILAG_STATE; -#pragma endregion ADLX_ANTILAG_STATE - -#pragma region ADLX_MGPU_MODE -/** - * @enum ADLX_MGPU_MODE - * @ingroup enumerations - * @ENG_START_DOX - * @brief Indicates the AMD MGPU mode. - * @ENG_END_DOX - */ -typedef enum -{ - MGPU_NONE = 0, /**< @ENG_START_DOX The GPU is not part of an AMD MGPU configuration. @ENG_END_DOX */ - MGPU_PRIMARY, /**< @ENG_START_DOX The GPU is the primary GPU in an AMD MGPU configuration. @ENG_END_DOX */ - MGPU_SECONDARY, /**< @ENG_START_DOX The GPU is the secondary GPU in an AMD MGPU configuration. @ENG_END_DOX */ -} ADLX_MGPU_MODE; -#pragma endregion ADLX_MGPU_MODE - -#pragma endregion ADLX data types - -//------------------------------------------------------------------------------------------------- -//definitions for IADLXInterface -#pragma region ADLX_DECLARE_IID -//------------------------------------------------------------------------ -//IID's -#if defined(__cplusplus) -#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; } -#else //__cplusplus -#define ADLX_IS_IID(X, Y) (!wcscmp (X, Y)) -#define ADLX_DECLARE_IID(name,X) static const wchar_t* IID_##name(void) { return X; } - -#define ADLX_DECLARE_ITEM_IID(name,X) static const wchar_t* ITEM_IID_##name(void) { return X; } -#endif //__cplusplus -#pragma endregion ADLX_DECLARE_IID - -//------------------------------------------------------------------------ -//All ref-counted interfaces derive from this interface -#pragma region IADLXInterface -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLXInterface - { - public: - ADLX_DECLARE_IID (L"IADLXInterface") - /** - * @page DOX_IADLXInterface_Acquire Acquire - * @ENG_START_DOX - * @brief Increments the reference count for an ADLX interface. - * @ENG_END_DOX - * @syntax - * @codeStart - * adlx_long Acquire () - * @codeEnd - * - * @params - * N/A - * - * @retvalues - * @ENG_START_DOX - * Returns the new reference count. - * @ENG_END_DOX - * - * @detaileddesc - * @ENG_START_DOX - * @details __Acquire__ must be used when a copy of the interface pointer is needed.
- * @ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * In C++, when using ADLX interfaces as smart pointers, there is no need to call the __Acquire__ because smart pointers call it in their internal implementation. - * @ENG_END_DOX - * - * @requirements - * @DetailsTable{#include "ADLXDefines.h", @ADLX_First_Ver} - * - */ - virtual adlx_long ADLX_STD_CALL Acquire () = 0; - /** - * @page DOX_IADLXInterface_Release Release - * @ENG_START_DOX - * @brief Decrements the reference count for an ADLX interface. - * @ENG_END_DOX - * - * @syntax - * @codeStart - * adlx_long Release () - * @codeEnd - * - * @params - * N/A - * - * @retvalues - * @ENG_START_DOX - * Returns the new reference count. - * @ENG_END_DOX - * - * @detaileddesc - * @ENG_START_DOX - * @details __Release__ must be called when an interface is no longer needed. It decrements the reference counting and returns the new reference count. When the reference count reaches zero, the object behind this interface will self-destruct and free its memory and resources. - * @ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * In C++, when using ADLX interfaces as smart pointers, there is no need to call the __Release__ because smart pointers call it in their internal implementation. - * @ENG_END_DOX - * - * @requirements - * @DetailsTable{#include "ADLXDefines.h", @ADLX_First_Ver} - * - */ - virtual adlx_long ADLX_STD_CALL Release () = 0; - - /** - * @page DOX_IADLXInterface_QueryInterface QueryInterface - * @ENG_START_DOX - * @brief Retrieves reference counted interfaces to an object. - * @ENG_END_DOX - * - * @syntax - * @codeStart - * @ref ADLX_RESULT QueryInterface (const wchar_t* interfaceId, void** ppInterface) - * @codeEnd - * - * @params - * @paramrow{1.,[in] ,interfaceId,const wchar_t*,@ENG_START_DOX The identifier of the interface being requested. @ENG_END_DOX} - * @paramrow{2.,[out],ppInterface,void**,@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 __*ppInterface__ to __nullptr__. @ENG_END_DOX} - * - * - * @retvalues - * @ENG_START_DOX - * If __QueryInterface__ is successfully called, __ADLX_OK__ is returned.
- * If the requested interface is not supported, __ADLX_UNKNOWN_INTERFACE__ is returned.
- * If the __*ppInterface__ parameter is __nullptr__, __ADLX_INVALID_ARGS__ is returned.
- * If __QueryInterface__ is not successfully called, an error code is returned.
- * Refer @ref ADLX_RESULT for success codes and error codes. - * @ENG_END_DOX - * - * @detaileddesc - * @ENG_START_DOX - * @details To ensure ADLX SDK backwards and forward compatibility the ADLX interfaces are locked, they do not change in subsequent versions of the driver. When an ADLX interface needs another functionality, an extension interface is provided. The extension interface is obtained from the initial interface using __QueryInterface__. The documentation for the extension interface shows how to obtain it.
- * The returned interface must be discarded with @ref DOX_IADLXInterface_Release when no longer needed. - * @ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * In C++ when using a smart pointer for the returned interface there is no need to call __QueryInterface__ and @ref DOX_IADLXInterface_Release because the smart pointer calls them internally. - * @ENG_END_DOX - * - * @requirements - * @DetailsTable{#include "ADLXDefines.h", @ADLX_First_Ver} - * - */ - virtual ADLX_RESULT ADLX_STD_CALL QueryInterface (const wchar_t* interfaceId, void** ppInterface) = 0; - }; //IADLXInterface -} // namespace adlx -//---------------------------------------------------------------------------------------------- -#else //__cplusplus -ADLX_DECLARE_IID (IADLXInterface, L"IADLXInterface") -typedef struct IADLXInterface IADLXInterface; - -typedef struct IADLXInterfaceVtbl -{ - // IADLXInterface interface - adlx_long (ADLX_STD_CALL *Acquire)(IADLXInterface* pThis); - adlx_long (ADLX_STD_CALL *Release)(IADLXInterface* pThis); - ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLXInterface* pThis, const wchar_t* interfaceId, void** ppInterface); -} IADLXInterfaceVtbl; - -struct IADLXInterface -{ - const IADLXInterfaceVtbl *pVtbl; -}; - -#endif //__cplusplus -#pragma endregion IADLXInterface - -//------------------------------------------------------------------------ -//Template for ADLX smart pointer for interfaces derived from IADLXInterface -#pragma region IADLXInterfacePtr -#if defined(__cplusplus) -namespace adlx -{ - template - class IADLXInterfacePtr_T - { - private: - _Interf* m_pInterf; - - void InternalAcquire () - { - if (m_pInterf != nullptr) - { - m_pInterf->Acquire (); - } - } - void InternalRelease () - { - if (m_pInterf != nullptr) - { - m_pInterf->Release (); - } - } - public: - IADLXInterfacePtr_T () : m_pInterf (nullptr) - {} - - IADLXInterfacePtr_T (const IADLXInterfacePtr_T<_Interf>& p) : m_pInterf (p.m_pInterf) - { - InternalAcquire (); - } - - IADLXInterfacePtr_T (_Interf* pInterface) : m_pInterf (pInterface) - { - InternalAcquire (); - } - - template - explicit IADLXInterfacePtr_T (const IADLXInterfacePtr_T<_OtherInterf>& cp) : m_pInterf (nullptr) - { - void* pInterf = nullptr; - if ((cp == NULL) || (cp->QueryInterface (_Interf::IID (), &pInterf) != ADLX_OK)) - { - pInterf = nullptr; - } - m_pInterf = static_cast<_Interf*>(pInterf); - } - - template - explicit IADLXInterfacePtr_T (_OtherInterf* cp) : m_pInterf (nullptr) - { - void* pInterf = nullptr; - if ((cp == nullptr) || (cp->QueryInterface (_Interf::IID (), &pInterf) != ADLX_OK)) - { - pInterf = nullptr; - } - m_pInterf = static_cast<_Interf*>(pInterf); - } - - ~IADLXInterfacePtr_T () - { - InternalRelease (); - } - - IADLXInterfacePtr_T& operator=(_Interf* pInterface) - { - if (m_pInterf != pInterface) - { - _Interf* pOldInterface = m_pInterf; - m_pInterf = pInterface; - InternalAcquire (); - if (pOldInterface != nullptr) - { - pOldInterface->Release (); - } - } - return *this; - } - - IADLXInterfacePtr_T& operator=(const IADLXInterfacePtr_T<_Interf>& cp) - { - return operator=(cp.m_pInterf); - } - - void Attach (_Interf* pInterface) - { - InternalRelease (); - m_pInterf = pInterface; - } - - _Interf* Detach () - { - _Interf* const pOld = m_pInterf; - m_pInterf = NULL; - return pOld; - } - void Release () - { - InternalRelease (); - m_pInterf = NULL; - } - - operator _Interf*() const - { - return m_pInterf; - } - - _Interf& operator*() const - { - return *m_pInterf; - } - - // Returns the address of the interface pointer contained in this - // class. This is required for initializing from C-style factory function to - // avoid getting an incorrect ref count at the beginning. - - _Interf** operator&() - { - InternalRelease (); - m_pInterf = 0; - return &m_pInterf; - } - - _Interf* operator->() const - { - return m_pInterf; - } - - bool operator==(const IADLXInterfacePtr_T<_Interf>& p) - { - return (m_pInterf == p.m_pInterf); - } - - bool operator==(_Interf* p) - { - return (m_pInterf == p); - } - - bool operator!=(const IADLXInterfacePtr_T<_Interf>& p) - { - return !(operator==(p)); - } - bool operator!=(_Interf* p) - { - return !(operator==(p)); - } - - _Interf* GetPtr () - { - return m_pInterf; - } - - const _Interf* GetPtr () const - { - return m_pInterf; - } - }; //IADLXInterfacePtr_T - - typedef IADLXInterfacePtr_T IADLXInterfacePtr; - -} // namespace adlx -#endif //__cplusplus -#pragma endregion IADLXInterfacePtr - -#endif //ADLX_DEFINES_H \ No newline at end of file diff --git a/src/adlx/sdk/Include/ADLXStructures.h b/src/adlx/sdk/Include/ADLXStructures.h deleted file mode 100644 index a3cba10..0000000 --- a/src/adlx/sdk/Include/ADLXStructures.h +++ /dev/null @@ -1,191 +0,0 @@ -// -// Copyright (c) 2021 - 2023 Advanced Micro Devices, Inc. All rights reserved. -// -//------------------------------------------------------------------------------------------------- - -#ifndef ADLX_STRUCTURES_H -#define ADLX_STRUCTURES_H -#pragma once -#include "ADLXDefines.h" - -/** @file */ -//------------------------------------------------------------------------------------------------- -#pragma region ADLX_RGB -/** - * @struct ADLX_RGB - * @ingroup structuresVal - * @ENG_START_DOX - * @brief This structure contains RGB information. - * @ENG_END_DOX - */ -typedef struct -{ - adlx_double gamutR; /**< @ENG_START_DOX Red @ENG_END_DOX */ - adlx_double gamutG; /**< @ENG_START_DOX Green @ENG_END_DOX */ - adlx_double gamutB; /**< @ENG_START_DOX Blue @ENG_END_DOX */ -} ADLX_RGB; -#pragma endregion ADLX_RGB - -#pragma region ADLX_Point -/** - * @struct ADLX_Point - * @ingroup structuresVal - * @ENG_START_DOX - * @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. - * @ENG_END_DOX - */ -typedef struct -{ - adlx_int x; /**< @ENG_START_DOX The x coordinate. @ENG_END_DOX */ - adlx_int y; /**< @ENG_START_DOX The y coordinate. @ENG_END_DOX */ -} ADLX_Point; -#pragma endregion ADLX_Point - -#pragma region ADLX_GamutColorSpace -/** - * @struct ADLX_GamutColorSpace - * @ingroup structuresVal - * @ENG_START_DOX - * @brief This structure contains information on driver-supported gamut coordinates - * @ENG_END_DOX - */ -typedef struct -{ - ADLX_Point red; /**< @ENG_START_DOX The red channel chromaticity coordinate. @ENG_END_DOX */ - ADLX_Point green; /**< @ENG_START_DOX The green channel chromaticity coordinate. @ENG_END_DOX */ - ADLX_Point blue; /**< @ENG_START_DOX The blue channel chromaticity coordinate. @ENG_END_DOX */ -} ADLX_GamutColorSpace; -#pragma endregion ADLX_GamutColorSpace - -#pragma region ADLX_GammaRamp -/** - * @struct ADLX_GammaRamp - * @ingroup structuresVal - * @ENG_START_DOX - * @brief This structure contains the display gamma ramp used to program the re-gamma LUT. - * @ENG_END_DOX - */ -typedef struct -{ - adlx_uint16 gamma[256 * 3]; /**< @ENG_START_DOX The gamma ramp is a buffer containing 256 triplets of adlx_uint16 values. - Each triplet consists of red, green and blue values. @ENG_END_DOX */ -} ADLX_GammaRamp; -#pragma endregion ADLX_GammaRamp - -#pragma region ADLX_RegammaCoeff -/** - * @struct ADLX_RegammaCoeff - * @ingroup structuresVal - * @ENG_START_DOX - * @brief This structure contains information on driver-supported re-gamma coefficients used to build the re-gamma curve. - * @ENG_END_DOX - */ -typedef struct -{ - adlx_int coefficientA0; /**< @ENG_START_DOX The a0 gamma coefficient. @ENG_END_DOX */ - adlx_int coefficientA1; /**< @ENG_START_DOX The a1 gamma coefficient. @ENG_END_DOX */ - adlx_int coefficientA2; /**< @ENG_START_DOX The a2 gamma coefficient. @ENG_END_DOX */ - adlx_int coefficientA3; /**< @ENG_START_DOX The a3 gamma coefficient. @ENG_END_DOX */ - adlx_int gamma; /**< @ENG_START_DOX The regamma divider. @ENG_END_DOX */ -} ADLX_RegammaCoeff; -#pragma endregion ADLX_RegammaCoeff - -#pragma region ADLX_TimingInfo -/** - * @struct ADLX_TimingInfo - * @ingroup structuresVal - * @ENG_START_DOX - * @brief This structure contains display timing information. - * @ENG_END_DOX - */ -typedef struct -{ - adlx_int timingFlags; /**< @ENG_START_DOX The detailed timing flag. @ENG_END_DOX */ - adlx_int hTotal; /**< @ENG_START_DOX The total number of pixels that compose all scan lines during a horizontal sync. @ENG_END_DOX */ - adlx_int vTotal; /**< @ENG_START_DOX The total number of vertical pixels permitted/processed per sync. @ENG_END_DOX */ - - adlx_int hDisplay; /**< @ENG_START_DOX The number of horizontal pixels within the active area. @ENG_END_DOX */ - adlx_int vDisplay; /**< @ENG_START_DOX The number of vertical pixels within the active display area. @ENG_END_DOX */ - - 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 */ - 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 */ - - adlx_int hSyncWidth; /**< @ENG_START_DOX The number of pixels that compose a scan line during a horizontal sync. @ENG_END_DOX */ - adlx_int vSyncWidth; /**< @ENG_START_DOX The number of vertical pixels permitted/processed during a sync. @ENG_END_DOX */ - - 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 */ - 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 */ -} ADLX_TimingInfo; - -#pragma endregion ADLX_TimingInfo - -#pragma region ADLX_CustomResolution -/** @struct ADLX_CustomResolution - * @ingroup structuresVal - * @ENG_START_DOX - * @brief This structure contains information for custom resolution parameters on a given display. - * @ENG_END_DOX - * - */ -typedef struct -{ - adlx_int resWidth; /**< @ENG_START_DOX The resolution width. @ENG_END_DOX */ - adlx_int resHeight; /**< @ENG_START_DOX The resolution height. @ENG_END_DOX */ - adlx_int refreshRate; /**< @ENG_START_DOX The refresh rate. @ENG_END_DOX */ - ADLX_DISPLAY_SCAN_TYPE presentation; /**< @ENG_START_DOX The presentation method, 0 PROGRESSIVE; 1 INTERLACED. @ENG_END_DOX */ - ADLX_TIMING_STANDARD timingStandard; /**< @ENG_START_DOX The display timing standard. @ENG_END_DOX */ - adlx_long GPixelClock; /**< @ENG_START_DOX The speed at which pixels are transmitted within on a refresh cycle. @ENG_END_DOX */ - ADLX_TimingInfo detailedTiming; /**< @ENG_START_DOX The detailed timing information. @ENG_END_DOX */ -} ADLX_CustomResolution; - -#pragma endregion ADLX_CustomResolution - -#pragma region ADLX_IntRange -/** @struct ADLX_IntRange - * @ingroup structuresVal - * @ENG_START_DOX - * @brief This structure contains information on the integer range. - * @ENG_END_DOX - * - */ -typedef struct -{ - adlx_int minValue; /**< @ENG_START_DOX The minimum integer value. @ENG_END_DOX */ - adlx_int maxValue; /**< @ENG_START_DOX The maximum integer value. @ENG_END_DOX */ - adlx_int step; /**< @ENG_START_DOX The accepted integer range step. @ENG_END_DOX */ -} ADLX_IntRange; -#pragma endregion ADLX_IntRange - -#pragma region ADLX_UINT16_RGB -/** @struct ADLX_UINT16_RGB - * @ingroup structuresVal - * @ENG_START_DOX - * @brief This structure contains UINT16 RGB information. - * @ENG_END_DOX - * - */ -typedef struct ADLX_UINT16_RGB -{ - adlx_uint16 red; /**< @ENG_START_DOX Red @ENG_END_DOX */ - adlx_uint16 green; /**< @ENG_START_DOX Green @ENG_END_DOX */ - adlx_uint16 blue; /**< @ENG_START_DOX Blue @ENG_END_DOX */ -} ADLX_UINT16_RGB; -#pragma endregion ADLX_UINT16_RGB - -#pragma region ADLX_3DLUT_Data -/** @struct ADLX_3DLUT_Data - * @ingroup structuresVal - * @ENG_START_DOX - * @brief This structure contains custom 3D LUT information. - * @ENG_END_DOX - * - */ - -typedef struct ADLX_3DLUT_Data -{ - 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. - For 3D LUT data we use ushort 0 - 0xFFFF, data must be zero-padded to 16-bit. @ENG_END_DOX */ -} ADLX_3DLUT_Data; -#pragma endregion ADLX_3DLUT_Data - -#endif //ADLX_STRUCTURES_H diff --git a/src/adlx/sdk/Include/ADLXVersion.h b/src/adlx/sdk/Include/ADLXVersion.h deleted file mode 100644 index f3c2a1a..0000000 --- a/src/adlx/sdk/Include/ADLXVersion.h +++ /dev/null @@ -1,18 +0,0 @@ -// -// Copyright (c) 2021 - 2023 Advanced Micro Devices, Inc. All rights reserved. -// -//------------------------------------------------------------------------------------------------- - -#ifndef ADLX_VERSION_H -#define ADLX_VERSION_H -#pragma once - -#define ADLX_VER_MAJOR 1 -#define ADLX_VER_MINOR 2 -#define ADLX_VER_RELEASE 0 -#define ADLX_VER_BUILD_NUM 72 - -#define STRING(a) #a -#define STRING_EXPAND(a) STRING(a) - -#endif //ADLX_VERSION_H diff --git a/src/adlx/sdk/Include/I3DSettings.h b/src/adlx/sdk/Include/I3DSettings.h deleted file mode 100644 index a3d4efa..0000000 --- a/src/adlx/sdk/Include/I3DSettings.h +++ /dev/null @@ -1,3418 +0,0 @@ -// -// Copyright (c) 2021 - 2023 Advanced Micro Devices, Inc. All rights reserved. -// -//------------------------------------------------------------------------------------------------- - -#ifndef ADLX_I3DSETTINGS_H -#define ADLX_I3DSETTINGS_H -#pragma once - -#include "ADLXStructures.h" -#include "IChangedEvent.h" - -//------------------------------------------------------------------------------------------------- -//I3DSetting.h - Interfaces for ADLX GPU 3DSetting functionality - -//3DAntiLag setting interface -#pragma region IADLX3DAntiLag -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLX3DAntiLag : public IADLXInterface - { - public: - ADLX_DECLARE_IID (L"IADLX3DAntiLag") - - /** - *@page DOX_IADLX3DAntiLag_IsSupported IsSupported - *@ENG_START_DOX @brief Checks if AMD Radeonâ„¢ Anti-Lag is supported on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupported (adlx_bool* supported) - *@codeEnd - * - *@params - * @paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of Radeon Anti-Lag is returned. The variable is __true__ if Radeon Anti-Lag is supported. The variable is __false__ if Radeon Anti-Lag is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of Radeon Anti-Lag is successfully returned, __ADLX_OK__ is returned.
- * If the state of Radeon Anti-Lag is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * Radeon Anti-Lag helps reduce input lag in GPU-limited cases by controlling the pace of the CPU work to ensure it doesn't get too far ahead of the GPU. - * @ENG_END_DOX - * - *@copydoc IADLX3DAntiLag_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupported (adlx_bool* supported) = 0; - - /** - *@page DOX_IADLX3DAntiLag_IsEnabled IsEnabled - *@ENG_START_DOX @brief Checks if AMD Radeonâ„¢ Anti-Lag is enabled on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsEnabled (adlx_bool* enabled) - *@codeEnd - * - *@params - * @paramrow{1.,[out],enabled,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of Radeon Anti-Lag is returned. The variable is __true__ if Radeon Anti-Lag is enabled. The variable is __false__ if Radeon Anti-Lag is not enabled. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of Radeon Anti-Lag is successfully returned, __ADLX_OK__ is returned.
- * If the state of Radeon Anti-Lag is returned is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * Radeon Anti-Lag helps reduce input lag in GPU-limited cases by controlling the pace of the CPU work to ensure it doesn't get too far ahead of the GPU.
- * __Note:__ @ref DOX_IADLX3DChill "AMD Radeon Chill", and AMD Radeon Anti-Lag features cannot be enabled simultaneously. If AMD Radeon Chill is enabled, AMD Radeon Anti-Lag is automatically disabled. - * @ENG_END_DOX - * - *@copydoc IADLX3DAntiLag_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsEnabled (adlx_bool* enabled) = 0; - - /** - *@page DOX_IADLX3DAntiLag_SetEnabled SetEnabled - *@ENG_START_DOX @brief Sets AMD Radeonâ„¢ Anti-Lag to enabled or disabled state on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetEnabled (adlx_bool enable) - *@codeEnd - * - *@params - * @paramrow{1.,[in],enable,adlx_bool,@ENG_START_DOX The new Radeon Anti-Lag state. Set __true__ to enable Radeon Anti-Lag. Set __false__ to disable Radeon Anti-Lag. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of Radeon Anti-Lag is successfully set, __ADLX_OK__ is returned.
- * If the state of Radeon Anti-Lag is not successfully set, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * Radeon Anti-Lag helps reduce input lag in GPU-limited cases by controlling the pace of the CPU work to ensure it doesn't get too far ahead of the GPU.
- * __Note:__ @ref DOX_IADLX3DChill "AMD Radeon Chill", and AMD Radeon Anti-Lag features cannot be enabled simultaneously. If AMD Radeon Anti-Lag is enabled, AMD Radeon Chill is automatically disabled. However, the configuration of the disabled feature is preserved. - * @ENG_END_DOX - * - *@copydoc IADLX3DAntiLag_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetEnabled (adlx_bool enable) = 0; - - }; //IADLX3DAntiLag - //---------------------------------------------------------------------------------------------- - typedef IADLXInterfacePtr_T IADLX3DAntiLagPtr; -} //namespace adlx -#else //__cplusplus -ADLX_DECLARE_IID (IADLX3DAntiLag, L"IADLX3DAntiLag") - -typedef struct IADLX3DAntiLag IADLX3DAntiLag; - -typedef struct IADLX3DAntiLagVtbl -{ - //IADLXInterface - adlx_long (ADLX_STD_CALL *Acquire)(IADLX3DAntiLag* pThis); - adlx_long (ADLX_STD_CALL *Release)(IADLX3DAntiLag* pThis); - ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLX3DAntiLag* pThis, const wchar_t* interfaceId, void** ppInterface); - - //IADLX3DAntiLag - ADLX_RESULT (ADLX_STD_CALL *IsSupported)(IADLX3DAntiLag* pThis, adlx_bool* supported); - ADLX_RESULT (ADLX_STD_CALL *IsEnabled)(IADLX3DAntiLag* pThis, adlx_bool* enabled); - ADLX_RESULT (ADLX_STD_CALL *SetEnabled)(IADLX3DAntiLag* pThis, adlx_bool enable); -}IADLX3DAntiLagVtbl; - -struct IADLX3DAntiLag { const IADLX3DAntiLagVtbl *pVtbl; }; -#endif //__cplusplus -#pragma endregion IADLX3DAntiLag - -//3DAntiLag1 setting interface -#pragma region IADLX3DAntiLag1 -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLX3DAntiLag1 : public IADLX3DAntiLag - { - public: - ADLX_DECLARE_IID(L"IADLX3DAntiLag1") - - /** - *@page DOX_IADLX3DAntiLag1_GetLevel GetLevel - *@ENG_START_DOX @brief Gets the AMD Radeonâ„¢ Anti-Lag level on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetLevel(@ref ADLX_ANTILAG_STATE* level) - *@codeEnd - * - *@params - * @paramrow{1.,[out],level,@ref ADLX_ANTILAG_STATE,@ENG_START_DOX The pointer to a variable where the Radeon Anti-Lag level is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the Radeon Anti-Lag level is successfully returned, __ADLX_OK__ is returned.
- * If the Radeon Anti-Lag level is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * Radeon Anti-Lag helps reduce input lag in GPU-limited cases by controlling the pace of the CPU work to ensure it doesn't get too far ahead of the GPU. - * @ENG_END_DOX - * - *@copydoc IADLX3DAntiLag1_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetLevel(ADLX_ANTILAG_STATE* level) = 0; - - /** - *@page DOX_IADLX3DAntiLag1_SetLevel SetLevel - *@ENG_START_DOX @brief Sets the AMD Radeonâ„¢ Anti-Lag level on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetLevel (@ref ADLX_ANTILAG_STATE level) - *@codeEnd - * - *@params - * @paramrow{1.,[in],level,@ref ADLX_ANTILAG_STATE,@ENG_START_DOX The new Radeon Anti-Lag level. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the Radeon Anti-Lag level is successfully set, __ADLX_OK__ is returned.
- * If the Radeon Anti-Lag level is not successfully set, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * Radeon Anti-Lag helps reduce input lag in GPU-limited cases by controlling the pace of the CPU work to ensure it doesn't get too far ahead of the GPU.
- * Radeon Anti-Lag Next enables an advanced algorithm in supported DX11 and DX12 games for a more responsive experience. - * @ENG_END_DOX - * - *@copydoc IADLX3DAntiLag1_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetLevel(ADLX_ANTILAG_STATE level) = 0; - }; //IADLX3DAntiLag1 - //---------------------------------------------------------------------------------------------- - typedef IADLXInterfacePtr_T IADLX3DAntiLag1Ptr; -} //namespace adlx -#else //__cplusplus -ADLX_DECLARE_IID(IADLX3DAntiLag1, L"IADLX3DAntiLag1") - -typedef struct IADLX3DAntiLag1 IADLX3DAntiLag1; - -typedef struct IADLX3DAntiLag1Vtbl -{ - //IADLXInterface - adlx_long(ADLX_STD_CALL* Acquire)(IADLX3DAntiLag1* pThis); - adlx_long(ADLX_STD_CALL* Release)(IADLX3DAntiLag1* pThis); - ADLX_RESULT(ADLX_STD_CALL* QueryInterface)(IADLX3DAntiLag1* pThis, const wchar_t* interfaceId, void** ppInterface); - - //IADLX3DAntiLag - ADLX_RESULT(ADLX_STD_CALL* IsSupported)(IADLX3DAntiLag1* pThis, adlx_bool* supported); - ADLX_RESULT(ADLX_STD_CALL* IsEnabled)(IADLX3DAntiLag1* pThis, adlx_bool* enabled); - ADLX_RESULT(ADLX_STD_CALL* SetEnabled)(IADLX3DAntiLag1* pThis, adlx_bool enable); - ADLX_RESULT(ADLX_STD_CALL* GetLevel)(IADLX3DAntiLag1* pThis, ADLX_ANTILAG_STATE* level); - ADLX_RESULT(ADLX_STD_CALL* SetLevel)(IADLX3DAntiLag1* pThis, ADLX_ANTILAG_STATE level); -}IADLX3DAntiLag1Vtbl; - -struct IADLX3DAntiLag1 { const IADLX3DAntiLag1Vtbl* pVtbl; }; -#endif //__cplusplus -#pragma endregion IADLX3DAntiLag1 - - -//3DChill setting interface -#pragma region IADLX3DChill -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLX3DChill : public IADLXInterface - { - public: - ADLX_DECLARE_IID (L"IADLX3DChill") - - /** - *@page DOX_IADLX3DChill_IsSupported IsSupported - *@ENG_START_DOX @brief Checks if AMD Radeonâ„¢ Chill is supported on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupported (adlx_bool* supported) - *@codeEnd - * - *@params - * @paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of AMD Radeon Chill is returned. The variable is __true__ if AMD Radeon Chill is supported. The variable is __false__ if AMD Radeon Chill is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of AMD Radeon Chill is successfully returned, __ADLX_OK__ is returned.
- * If the state of AMD Radeon Chill is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * AMD Radeon Chill conserves GPU power and reduces heat by adjusting the FPS based on the intensity of in-game movement. - * @ENG_END_DOX - * - *@copydoc IADLX3DChill_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupported (adlx_bool* supported) = 0; - - /** - *@page DOX_IADLX3DChill_IsEnabled IsEnabled - *@ENG_START_DOX @brief Checks if AMD Radeonâ„¢ Chill is enabled on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsEnabled (adlx_bool* enabled) - *@codeEnd - * - *@params - * @paramrow{1.,[out],enabled,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of AMD Radeon Chill is returned. The variable is __true__ if AMD Radeon Chill is enabled. The variable is __false__ if AMD Radeon Chill is not enabled. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of AMD Radeon Chill is successfully returned, __ADLX_OK__ is returned.
- * If the state of AMD Radeon Chill is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * AMD Radeon Chill conserves GPU power and reduces heat by adjusting the FPS based on the intensity of in-game movement.
- * AMD Radeon Chill cannot be enabled simultaneously with @ref DOX_IADLX3DBoost "AMD Radeon Boost", @ref DOX_IADLX3DAntiLag "AMD Radeon Anti-Lag", and @ref DOX_IADLX3DAntiLag1 "AMD Radeon Anti-Lag Next".
- * On some AMD GPUs, AMD Radeon Chill cannot be enabled simultaneously with @ref DOX_IADLX3DRadeonSuperResolution "Radeon Super Resolution".
- * When a mutually exclusive feature is enabled, AMD Radeon Chill is automatically disabled.
- * __Note:__ If AMD Radeon Chill is later re-enabled, its previous configuration settings will be restored. - * @ENG_END_DOX - * - *@copydoc IADLX3DChill_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsEnabled (adlx_bool* isEnabled) = 0; - - /** - *@page DOX_IADLX3DChill_GetFPSRange GetFPSRange - *@ENG_START_DOX @brief Gets the AMD Radeonâ„¢ Chill maximum FPS, minimum FPS, and step FPS on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetFPSRange (@ref ADLX_IntRange* range) - *@codeEnd - * - *@params - * @paramrow{1.,[out],range,@ref ADLX_IntRange*,@ENG_START_DOX The pointer to a variable where the FPS range of AMD Radeon Chill is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the FPS range is successfully returned, __ADLX_OK__ is returned.
- * If the FPS range is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The maximum FPS, minimum FPS, and step FPS values are read only. @ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * AMD Radeon Chill conserves GPU power and reduces heat by adjusting the FPS based on the intensity of in-game movement. - * - * The maximum FPS determines the target frame rate during periods of intense action. - * - * The minimum FPS determines the target frame rate when in-game interaction is minimal. - * @ENG_END_DOX - * - *@copydoc IADLX3DChill_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetFPSRange (ADLX_IntRange* range) = 0; - - /** - *@page DOX_IADLX3DChill_GetMinFPS GetMinFPS - *@ENG_START_DOX @brief Gets the AMD Radeonâ„¢ Chill current minimum FPS on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetMinFPS (adlx_int* currentMinFPS) - *@codeEnd - * - *@params - * @paramrow{1.,[out],currentMinFPS,adlx_int*,@ENG_START_DOX The pointer to a variable where the current minimum FPS value of AMD Radeon Chill is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the current minimum FPS is successfully returned, __ADLX_OK__ is returned.
- * If the current minimum FPS is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * AMD Radeon Chill conserves GPU power and reduces heat by adjusting the FPS based on the intensity of in-game movement. - * - * The minimum FPS determines the target frame rate when in-game interaction is minimal. - * @ENG_END_DOX - * - *@copydoc IADLX3DChill_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetMinFPS (adlx_int* currentMinFPS) = 0; - - /** - *@page DOX_IADLX3DChill_GetMaxFPS GetMaxFPS - *@ENG_START_DOX @brief Gets the AMD Radeonâ„¢ Chill current maximum FPS on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetMaxFPS (adlx_int* currentMaxFPS) - *@codeEnd - * - *@params - * @paramrow{1.,[out],currentMaxFPS,adlx_int*,@ENG_START_DOX The pointer to a variable where the current maximum FPS value of AMD Radeon Chill is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the current maximum FPS is successfully returned, __ADLX_OK__ is returned.
- * If the current maximum FPS is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * AMD Radeon Chill conserves GPU power and reduces heat by adjusting the FPS based on the intensity of in-game movement. - * - *The maximum FPS determines the target frame rate during periods of intense action. - * @ENG_END_DOX - * - *@copydoc IADLX3DChill_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetMaxFPS (adlx_int* currentMaxFPS) = 0; - - /** - *@page DOX_IADLX3DChill_SetEnabled SetEnabled - *@ENG_START_DOX @brief Sets the activation status of AMD Radeonâ„¢ Chill on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetEnabled (adlx_bool enable) - *@codeEnd - * - *@params - * @paramrow{1.,[in],enable,adlx_bool,@ENG_START_DOX The new AMD Radeon Chill state. Set __true__ to enable AMD Radeon Chill. Set __false__ to disable AMD Radeon Chill. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of AMD Radeon Chill is successfully set, __ADLX_OK__ is returned.
- * If the state of AMD Radeon Chill is not successfully set, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * AMD Radeon Chill conserves GPU power and reduces heat by adjusting the FPS based on the intensity of in-game movement.
- * AMD Radeon Chill cannot be enabled simultaneously with @ref DOX_IADLX3DBoost "AMD Radeon Boost", @ref DOX_IADLX3DAntiLag "AMD Radeon Anti-Lag", and @ref DOX_IADLX3DAntiLag1 "AMD Radeon Anti-Lag Next".
- * On some AMD GPUs, AMD Radeon Chill cannot be enabled simultaneously with @ref DOX_IADLX3DRadeonSuperResolution "Radeon Super Resolution".
- * When AMD Radeon Chill is enabled, the mutually exclusive features are automatically disabled.
- * __Note:__ If the disabled feature is later re-enabled, its previous configuration settings will be restored. - * @ENG_END_DOX - * - *@copydoc IADLX3DChill_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetEnabled (adlx_bool enable) = 0; - - /** - *@page DOX_IADLX3DChill_SetMinFPS SetMinFPS - *@ENG_START_DOX @brief Sets the AMD Radeonâ„¢ Chill minimum FPS on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetMinFPS (adlx_int minFPS) - *@codeEnd - * - *@params - * @paramrow{1.,[in],minFPS,adlx_int,@ENG_START_DOX The new minimum FPS value of AMD Radeon Chill. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the minimum FPS is successfully set, __ADLX_OK__ is returned.
- * If the minimum FPS is not successfully set, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * AMD Radeon Chill conserves GPU power and reduces heat by adjusting the FPS based on the intensity of in-game movement. - * - * The minimum FPS determines the target frame rate when in-game interaction is minimal. - * @ENG_END_DOX - * - *@copydoc IADLX3DChill_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetMinFPS (adlx_int minFPS) = 0; - - /** - *@page DOX_IADLX3DChill_SetMaxFPS SetMaxFPS - *@ENG_START_DOX @brief Sets the AMD Radeonâ„¢ Chill maximum FPS on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetMaxFPS (adlx_int maxFPS) - *@codeEnd - * - *@params - * @paramrow{1.,[in],maxFPS,adlx_int,@ENG_START_DOX The new maximum FPS value of AMD Radeon Chill. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the maximum FPS is successfully set, __ADLX_OK__ is returned.
- * If the maximum FPS is not successfully set, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * Chill conserves GPU power and reduces heat by adjusting the FPS based on the intensity of in-game movement. - * - * The maximum FPS determines the target frame rate during periods of intense action. - * @ENG_END_DOX - * - *@copydoc IADLX3DChill_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetMaxFPS (adlx_int maxFPS) = 0; - - }; //IADLX3DChill - //---------------------------------------------------------------------------------------------- - typedef IADLXInterfacePtr_T IADLX3DChillPtr; -} //namespace adlx -#else //__cplusplus -ADLX_DECLARE_IID (IADLX3DChill, L"IADLX3DChill") - -typedef struct IADLX3DChill IADLX3DChill; - -typedef struct IADLX3DChillVtbl -{ - //IADLXInterface - adlx_long (ADLX_STD_CALL *Acquire)(IADLX3DChill* pThis); - adlx_long (ADLX_STD_CALL *Release)(IADLX3DChill* pThis); - ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLX3DChill* pThis, const wchar_t* interfaceId, void** ppInterface); - - //IADLX3DChill - ADLX_RESULT (ADLX_STD_CALL *IsSupported)(IADLX3DChill* pThis, adlx_bool* supported); - ADLX_RESULT (ADLX_STD_CALL *IsEnabled)(IADLX3DChill* pThis, adlx_bool* isEnabled); - ADLX_RESULT (ADLX_STD_CALL *GetFPSRange)(IADLX3DChill* pThis, ADLX_IntRange* range); - ADLX_RESULT (ADLX_STD_CALL *GetMinFPS)(IADLX3DChill* pThis, adlx_int* currentMinFPS); - ADLX_RESULT (ADLX_STD_CALL *GetMaxFPS)(IADLX3DChill* pThis, adlx_int* currentMaxFPS); - ADLX_RESULT (ADLX_STD_CALL *SetEnabled)(IADLX3DChill* pThis, adlx_bool enable); - ADLX_RESULT (ADLX_STD_CALL *SetMinFPS)(IADLX3DChill* pThis, adlx_int minFPS); - ADLX_RESULT (ADLX_STD_CALL *SetMaxFPS)(IADLX3DChill* pThis, adlx_int maxFPS); -}IADLX3DChillVtbl; - -struct IADLX3DChill { const IADLX3DChillVtbl *pVtbl; }; -#endif //__cplusplus -#pragma endregion IADLX3DChill - -//3DBoost setting interface -#pragma region IADLX3DBoost -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLX3DBoost : public IADLXInterface - { - public: - ADLX_DECLARE_IID (L"IADLX3DBoost") - - /** - *@page DOX_IADLX3DBoost_IsSupported IsSupported - *@ENG_START_DOX @brief Checks if AMD Radeonâ„¢ Boost is supported on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupported (adlx_bool* supported) - *@codeEnd - * - *@params - * @paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of AMD Radeon Boost is returned. The variable is __true__ if AMD Radeon Boost is supported. The variable is __false__ if AMD Radeon Boost is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of AMD Radeon Boost is successfully returned, __ADLX_OK__ is returned.
- * If the state of AMD Radeon Boost is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - *@ENG_START_DOX AMD Radeon Boost dynamically reduces resolution during motion to improve performance with little perceptible impact on image quality.
- * Only works in supported games. - * @ENG_END_DOX - * - *@copydoc IADLX3DBoost_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupported (adlx_bool* supported) = 0; - - /** - *@page DOX_IADLX3DBoost_IsEnabled IsEnabled - *@ENG_START_DOX @brief Checks if AMD Radeonâ„¢ Boost is enabled on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsEnabled (adlx_bool* enabled) - *@codeEnd - * - *@params - * @paramrow{1.,[out],enabled,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of AMD Radeon Boost is returned. The variable is __true__ if AMD Radeon Boost is enabled. The variable is __false__ if AMD Radeon Boost is not enabled. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of AMD Radeon Boost is successfully returned, __ADLX_OK__ is returned.
- * If the state of AMD Radeon Boost is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - *@ENG_START_DOX AMD Radeon Boost dynamically reduces resolution during motion to improve performance with little perceptible impact on image quality. Only works in supported games.
- * __Note:__ @ref DOX_IADLX3DChill "AMD Radeon Chill", AMD Radeon Boost features cannot be enabled simultaneously. If AMD Radeon Chill is enabled, AMD Radeon Boost is automatically disabled.
- * On some AMD GPUs, AMD Radeon Boost and @ref DOX_IADLX3DRadeonSuperResolution "Radeon Super Resolution" cannot be enabled simultaneously. If Radeon Super Resolution is enabled, AMD Radeon Boost is automatically disabled. - * @ENG_END_DOX - * - *@copydoc IADLX3DBoost_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsEnabled (adlx_bool* isEnabled) = 0; - - /** - *@page DOX_IADLX3DBoost_GetResolutionRange GetResolutionRange - *@ENG_START_DOX @brief Gets the maximum resolution, minimum resolution, and step resolution of AMD Radeonâ„¢ Boost on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetResolutionRange (@ref ADLX_IntRange* range) - *@codeEnd - * - *@params - * @paramrow{1.,[out],range,@ref ADLX_IntRange*,@ENG_START_DOX The pointer to a variable where the resolution range of AMD Radeon Boost is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the resolution range is successfully returned, __ADLX_OK__ is returned.
- * If the resolution range is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The maximum resolution, minimum resolution, and step resolution of AMD Radeon Boost are read only. @ENG_END_DOX - * - * @addinfo - *@ENG_START_DOX AMD Radeon Boost dynamically reduces resolution during motion to improve performance with little perceptible impact on image quality.
- * Only works in supported games. - * @ENG_END_DOX - * - *@copydoc IADLX3DBoost_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetResolutionRange (ADLX_IntRange* range) = 0; - - /** - *@page DOX_IADLX3DBoost_GetResolution GetResolution - *@ENG_START_DOX @brief Gets the current minimum resolution of AMD Radeonâ„¢ Boost on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetResolution (adlx_int* currentMinRes) - *@codeEnd - * - *@params - * @paramrow{1.,[out],currentMinRes,adlx_int*,@ENG_START_DOX The pointer to a variable where the current minimum resolution (in %) of AMD Radeon Boost is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the current minimum resolution is successfully returned, __ADLX_OK__ is returned.
- * If the current minimum resolution is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - *@ENG_START_DOX AMD Radeon Boost dynamically reduces resolution during motion to improve performance with little perceptible impact on image quality.
- * Only works in supported games. - * @ENG_END_DOX - * - *@copydoc IADLX3DBoost_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetResolution (adlx_int* currentMinRes) = 0; - - /** - *@page DOX_IADLX3DBoost_SetEnabled SetEnabled - *@ENG_START_DOX @brief Sets AMD Radeonâ„¢ Boost to enabled or disabled on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetEnabled (adlx_bool enable) - *@codeEnd - * - *@params - * @paramrow{1.,[in],enable,adlx_bool,@ENG_START_DOX The new AMD Radeon Boost state. Set __true__ to enable AMD Radeon Boost. Set __false__ to disable AMD Radeon Boost. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of AMD Radeon Boost is successfully set, __ADLX_OK__ is returned.
- * If the state of AMD Radeon Boost is not successfully set, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - *@ENG_START_DOX AMD Radeon Boost dynamically reduces resolution during motion to improve performance with little perceptible impact on image quality. Only works in supported games.
- * __Note:__ @ref DOX_IADLX3DChill "AMD Radeon Chill", AMD Radeon Boost features cannot be enabled simultaneously. If AMD Radeon Boost is enabled, AMD Radeon Chill are automatically disabled. However, the configuration of the disabled feature is preserved.
- * On some AMD GPUs, AMD Radeon Boost and @ref DOX_IADLX3DRadeonSuperResolution "Radeon Super Resolution" cannot be enabled simultaneously. If AMD Radeon Boost is enabled, Radeon Super Resolution is automatically disabled. - * @ENG_END_DOX - * - *@copydoc IADLX3DBoost_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetEnabled (adlx_bool enable) = 0; - - /** - *@page DOX_IADLX3DBoost_SetResolution SetResolution - *@ENG_START_DOX @brief Sets the minimum resolution of AMD Radeonâ„¢ Boost on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetResolution (adlx_int minRes) - *@codeEnd - * - *@params - * @paramrow{1.,[in],minRes,adlx_int,@ENG_START_DOX The new minimum resolution (in %) of AMD Radeon Boost. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the minimum resolution is successfully set, __ADLX_OK__ is returned.
- * If the minimum resolution is not successfully set, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - *@ENG_START_DOX AMD Radeon Boost dynamically reduces resolution during motion to improve performance with little perceptible impact on image quality. Only works in supported games.
- * @ENG_END_DOX - * - *@copydoc IADLX3DBoost_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetResolution (adlx_int minRes) = 0; - - }; //IADLX3DBoost - //---------------------------------------------------------------------------------------------- - typedef IADLXInterfacePtr_T IADLX3DBoostPtr; -} //namespace adlx -#else //__cplusplus -ADLX_DECLARE_IID (IADLX3DBoost, L"IADLX3DBoost") - -typedef struct IADLX3DBoost IADLX3DBoost; - -typedef struct IADLX3DBoostVtbl -{ - //IADLXInterface - adlx_long (ADLX_STD_CALL *Acquire)(IADLX3DBoost* pThis); - adlx_long (ADLX_STD_CALL *Release)(IADLX3DBoost* pThis); - ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLX3DBoost* pThis, const wchar_t* interfaceId, void** ppInterface); - - //IADLX3DBoost - ADLX_RESULT (ADLX_STD_CALL *IsSupported)(IADLX3DBoost* pThis, adlx_bool* supported); - - ADLX_RESULT (ADLX_STD_CALL *IsEnabled)(IADLX3DBoost* pThis, adlx_bool* isEnabled); - ADLX_RESULT (ADLX_STD_CALL *GetResolutionRange)(IADLX3DBoost* pThis, ADLX_IntRange* range); - ADLX_RESULT (ADLX_STD_CALL *GetResolution)(IADLX3DBoost* pThis, adlx_int* currentMinRes); - ADLX_RESULT (ADLX_STD_CALL *SetEnabled)(IADLX3DBoost* pThis, adlx_bool enable); - ADLX_RESULT (ADLX_STD_CALL *SetResolution)(IADLX3DBoost* pThis, adlx_int minRes); -}IADLX3DBoostVtbl; - -struct IADLX3DBoost { const IADLX3DBoostVtbl *pVtbl; }; -#endif //__cplusplus -#pragma endregion IADLX3DBoost - -//3DImageSharpening setting interface -#pragma region IADLX3DImageSharpening -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLX3DImageSharpening : public IADLXInterface - { - public: - ADLX_DECLARE_IID (L"IADLX3DImageSharpening") - - /** - *@page DOX_IADLX3DImageSharpening_IsSupported IsSupported - *@ENG_START_DOX @brief Checks if AMD Radeonâ„¢ Image Sharpening is supported on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupported (adlx_bool* supported) - *@codeEnd - * - *@params - * @paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of AMD Radeon Image Sharpening is returned. The variable is __true__ if AMD Radeon Image Sharpening is supported. The variable is __false__ if AMD Radeon Image Sharpening is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of AMD Radeon Image Sharpening is successfully returned, __ADLX_OK__ is returned.
- * If the state of AMD Radeon Image Sharpening is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - *@ENG_START_DOX AMD Radeon Image Sharpening restores clarity softened by other effects to in-game visuals, and select productivity and media applications. - * @ENG_END_DOX - * - *@copydoc IADLX3DImageSharpening_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupported (adlx_bool* supported) = 0; - - /** - *@page DOX_IADLX3DImageSharpening_IsEnabled IsEnabled - *@ENG_START_DOX @brief Checks if AMD Radeonâ„¢ Image Sharpening is enabled on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsEnabled (adlx_bool* enabled) - *@codeEnd - * - *@params - * @paramrow{1.,[out],enabled,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of AMD Radeon Image Sharpening is returned. The variable is __true__ if AMD Radeon Image Sharpening is enabled. The variable is __false__ if AMD Radeon Image Sharpening is not enabled. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of AMD Radeon Image Sharpening is successfully returned, __ADLX_OK__ is returned.
- * If the state of AMD Radeon Image Sharpening is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - *@ENG_START_DOX AMD Radeon Image Sharpening restores clarity softened by other effects to in-game visuals, and select productivity and media applications.
- * __Note:__ On some AMD GPUs, AMD Radeon Image Sharpening and @ref DOX_IADLX3DRadeonSuperResolution "Radeon Super Resolution" cannot be enabled simultaneously. If Radeon Super Resolution is enabled, AMD Radeon Image Sharpening is automatically disabled. - * @ENG_END_DOX - * - *@copydoc IADLX3DImageSharpening_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsEnabled (adlx_bool* isEnabled) = 0; - - /** - *@page DOX_IADLX3DImageSharpening_GetSharpnessRange GetSharpnessRange - *@ENG_START_DOX @brief Gets the AMD Radeonâ„¢ Image Sharpening maximum sharpness, minimum sharpness, and step sharpness on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetSharpnessRange (@ref ADLX_IntRange* range) - *@codeEnd - * - *@params - * @paramrow{1.,[out],range,@ref ADLX_IntRange*,@ENG_START_DOX The pointer to a variable where the sharpness range is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the sharpness range is successfully returned, __ADLX_OK__ is returned.
- * If the sharpness range is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The maximum sharpness, minimum sharpness, and step sharpness of AMD Radeon Image Sharpening are read only. @ENG_END_DOX - * - * @addinfo - *@ENG_START_DOX AMD Radeon Image Sharpening restores clarity softened by other effects to in-game visuals, and select productivity and media applications. - * @ENG_END_DOX - * - *@copydoc IADLX3DImageSharpening_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetSharpnessRange (ADLX_IntRange* range) = 0; - - /** - *@page DOX_IADLX3DImageSharpening_GetSharpness GetSharpness - *@ENG_START_DOX @brief Gets the current sharpness of AMD Radeonâ„¢ Image Sharpening on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetSharpness (adlx_int* currentSharpness) - *@codeEnd - * - *@params - * @paramrow{1.,[out],currentSharpness,adlx_int*,@ENG_START_DOX The pointer to a variable where the current sharpness (in %) is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the current sharpness is successfully returned, __ADLX_OK__ is returned.
- * If the current sharpness is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - *@ENG_START_DOX AMD Radeon Image Sharpening restores clarity softened by other effects to in-game visuals, and select productivity and media applications. - * @ENG_END_DOX - * - *@copydoc IADLX3DImageSharpening_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetSharpness (adlx_int* currentSharpness) = 0; - - /** - *@page DOX_IADLX3DImageSharpening_SetEnabled SetEnabled - *@ENG_START_DOX @brief Sets AMD Radeonâ„¢ Image Sharpening to enabled or disabled on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetEnabled (adlx_bool enable) - *@codeEnd - * - *@params - * @paramrow{1.,[in],enable,adlx_bool,@ENG_START_DOX The new AMD Radeon Image Sharpening state. Set __true__ to enable AMD Radeon Image Sharpening. Set __false__ to disable AMD Radeon Image Sharpening. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of AMD Radeon Image Sharpening is successfully set, __ADLX_OK__ is returned.
- * If the state of AMD Radeon Image Sharpening is not successfully set, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - *@ENG_START_DOX AMD Radeon Image Sharpening restores clarity softened by other effects to in-game visuals, and select productivity and media applications.
- * __Note:__ On some AMD GPUs, AMD Radeon Image Sharpening and @ref DOX_IADLX3DRadeonSuperResolution "Radeon Super Resolution" cannot be enabled simultaneously. If Radeon Image Sharpening is enabled, AMD Radeon Super Resolution is automatically disabled. - * @ENG_END_DOX - * - *@copydoc IADLX3DImageSharpening_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetEnabled (adlx_bool enable) = 0; - - /** - *@page DOX_IADLX3DImageSharpening_SetSharpness SetSharpness - *@ENG_START_DOX @brief Sets the sharpness of AMD Radeonâ„¢ Image Sharpening on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetSharpness (adlx_int sharpness) - *@codeEnd - * - *@params - * @paramrow{1.,[in],sharpness,adlx_int,@ENG_START_DOX The new sharpness (in %). @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the sharpness is successfully set, __ADLX_OK__ is returned.
- * If the sharpness is not successfully set, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - *@ENG_START_DOX AMD Radeon Image Sharpening restores clarity softened by other effects to in-game visuals, and select productivity and media applications. - * @ENG_END_DOX - * - *@copydoc IADLX3DImageSharpening_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetSharpness (adlx_int sharpness) = 0; - - }; //IADLX3DImageSharpening - //---------------------------------------------------------------------------------------------- - typedef IADLXInterfacePtr_T IADLX3DImageSharpeningPtr; -} //namespace adlx -#else //__cplusplus -ADLX_DECLARE_IID (IADLX3DImageSharpening, L"IADLX3DImageSharpening") - -typedef struct IADLX3DImageSharpening IADLX3DImageSharpening; - -typedef struct IADLX3DImageSharpeningVtbl -{ - //IADLXInterface - adlx_long (ADLX_STD_CALL *Acquire)(IADLX3DImageSharpening* pThis); - adlx_long (ADLX_STD_CALL *Release)(IADLX3DImageSharpening* pThis); - ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLX3DImageSharpening* pThis, const wchar_t* interfaceId, void** ppInterface); - - //IADLX3DImageSharpening - ADLX_RESULT (ADLX_STD_CALL *IsSupported)(IADLX3DImageSharpening* pThis, adlx_bool* supported); - ADLX_RESULT (ADLX_STD_CALL *IsEnabled)(IADLX3DImageSharpening* pThis, adlx_bool* isEnabled); - ADLX_RESULT (ADLX_STD_CALL *GetSharpnessRange)(IADLX3DImageSharpening* pThis, ADLX_IntRange* range); - ADLX_RESULT (ADLX_STD_CALL *GetSharpness)(IADLX3DImageSharpening* pThis, adlx_int* currentSharpness); - ADLX_RESULT (ADLX_STD_CALL *SetEnabled)(IADLX3DImageSharpening* pThis, adlx_bool enable); - ADLX_RESULT (ADLX_STD_CALL *SetSharpness)(IADLX3DImageSharpening* pThis, adlx_int sharpness); -}IADLX3DImageSharpeningVtbl; - -struct IADLX3DImageSharpening { const IADLX3DImageSharpeningVtbl *pVtbl; }; -#endif //__cplusplus -#pragma endregion IADLX3DImageSharpening - -//3DEnhancedSync setting interface -#pragma region IADLX3DEnhancedSync -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLX3DEnhancedSync : public IADLXInterface - { - public: - ADLX_DECLARE_IID (L"IADLX3DEnhancedSync") - - /** - *@page DOX_IADLX3DEnhancedSync_IsSupported IsSupported - *@ENG_START_DOX @brief Checks if AMD Radeonâ„¢ Enhanced Sync is supported on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupported (adlx_bool* supported) - *@codeEnd - * - *@params - * @paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of AMD Radeon Enhanced Sync is returned. The variable is __true__ if AMD Radeon Enhanced Sync is supported. The variable is __false__ if AMD Radeon Enhanced Sync is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of AMD Radeon Enhanced Sync is successfully returned, __ADLX_OK__ is returned.
- * If the state of AMD Radeon Enhanced Sync is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * AMD Radeon Enhanced Sync synchronizes the transition to a new frame of animation with the display refresh rate at a low latency, so no tearing is visible between frames.
- * Does not limit the frame rate at the display’s refresh rate.
- * @ENG_END_DOX - * - *@copydoc IADLX3DEnhancedSync_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupported (adlx_bool* supported) = 0; - - /** - *@page DOX_IADLX3DEnhancedSync_IsEnabled IsEnabled - *@ENG_START_DOX @brief Checks if AMD Radeonâ„¢ Enhanced Sync is enabled on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsEnabled (adlx_bool* enabled) - *@codeEnd - * - *@params - * @paramrow{1.,[out],enabled,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of AMD Radeon Enhanced Sync is returned. The variable is __true__ if AMD Radeon Enhanced Sync is enabled. The variable is __false__ if AMD Radeon Enhanced Sync is not enabled. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of AMD Radeon Enhanced Sync is successfully returned, __ADLX_OK__ is returned.
- * If the state of AMD Radeon Enhanced Sync is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * AMD Radeon Enhanced Sync synchronizes the transition to a new frame of animation with the display refresh rate at a low latency, so no tearing is visible between frames.
- * Does not limit the frame rate at the display’s refresh rate.
- * __Note__: AMD Radeon Enhanced Sync configuration is dependent on the state of VSync.
- * If VSync is enabled, AMD Radeon Enhanced Sync is automatically disabled.
- * If VSync is disabled, AMD Radeon Enhanced Sync is automatically enabled. - * @ENG_END_DOX - * - *@copydoc IADLX3DEnhancedSync_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsEnabled (adlx_bool* isEnabled) = 0; - - /** - *@page DOX_IADLX3DEnhancedSync_SetEnabled SetEnabled - *@ENG_START_DOX @brief Sets AMD Radeonâ„¢ Enhanced Sync to enabled or disabled state on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetEnabled (adlx_bool enable) - *@codeEnd - * - *@params - * @paramrow{1.,[in],enable,adlx_bool,@ENG_START_DOX The new AMD Radeon Enhanced Sync state. Set __true__ to enable AMD Radeon Enhanced Sync. Set __false__ to disable AMD Radeon Enhanced Sync. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of AMD Radeon Enhanced Sync is successfully set, __ADLX_OK__ is returned.
- * If the state of AMD Radeon Enhanced Sync is not successfully set, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * AMD Radeon Enhanced Sync synchronizes the transition to a new frame of animation with the display refresh rate at a low latency, so no tearing is visible between frames.
- * Does not limit the frame rate at the display’s refresh rate.
- * __Note__: AMD Radeon Enhanced Sync configuration affects the state of VSync.
- * If AMD Radeon Enhanced Sync is enabled, VSync is automatically disabled.
- * If AMD Radeon Enhanced Sync is disabled, VSync is automatically enabled. - * @ENG_END_DOX - * - *@copydoc IADLX3DEnhancedSync_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetEnabled (adlx_bool enable) = 0; - - }; //IADLX3DEnhancedSync - //---------------------------------------------------------------------------------------------- - typedef IADLXInterfacePtr_T IADLX3DEnhancedSyncPtr; -} //namespace adlx -#else //__cplusplus -ADLX_DECLARE_IID (IADLX3DEnhancedSync, L"IADLX3DEnhancedSync") - -typedef struct IADLX3DEnhancedSync IADLX3DEnhancedSync; - -typedef struct IADLX3DEnhancedSyncVtbl -{ - //IADLXInterface - adlx_long (ADLX_STD_CALL *Acquire)(IADLX3DEnhancedSync* pThis); - adlx_long (ADLX_STD_CALL *Release)(IADLX3DEnhancedSync* pThis); - ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLX3DEnhancedSync* pThis, const wchar_t* interfaceId, void** ppInterface); - - //IADLX3DEnhancedSync - ADLX_RESULT (ADLX_STD_CALL *IsSupported)(IADLX3DEnhancedSync* pThis, adlx_bool* supported); - ADLX_RESULT (ADLX_STD_CALL *IsEnabled)(IADLX3DEnhancedSync* pThis, adlx_bool* isEnabled); - ADLX_RESULT (ADLX_STD_CALL *SetEnabled)(IADLX3DEnhancedSync* pThis, adlx_bool enable); -}IADLX3DEnhancedSyncVtbl; - -struct IADLX3DEnhancedSync { const IADLX3DEnhancedSyncVtbl *pVtbl; }; -#endif //__cplusplus -#pragma endregion IADLX3DEnhancedSync - -//3DWaitForVerticalRefresh setting interface -#pragma region IADLX3DWaitForVerticalRefresh -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLX3DWaitForVerticalRefresh : public IADLXInterface - { - public: - ADLX_DECLARE_IID (L"IADLX3DWaitForVerticalRefresh") - - /** - *@page DOX_IADLX3DWaitForVerticalRefresh_IsSupported IsSupported - *@ENG_START_DOX @brief Checks if VSync is supported on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupported (adlx_bool* supported) - *@codeEnd - * - *@params - * @paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of VSync is returned. The variable is __true__ if VSync is supported. The variable is __false__ if VSync is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of VSync is successfully returned, __ADLX_OK__ is returned.
- * If the state of VSync is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * VSync synchronizes the transition to a new frame of animation with the display update so no tearing is visible between frames.
- * Limits the frame rate at the display’s refresh rate.
- * @ENG_END_DOX - * - *@copydoc IADLX3DWaitForVerticalRefresh_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupported (adlx_bool* supported) = 0; - - /** - *@page DOX_IADLX3DWaitForVerticalRefresh_IsEnabled IsEnabled - *@ENG_START_DOX @brief Checks if VSync is enabled on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsEnabled (adlx_bool* enabled) - *@codeEnd - * - *@params - * @paramrow{1.,[out],enabled,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of VSync is returned. The variable is __true__ if VSync is enabled. The variable is __false__ if VSync is not enabled. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of VSync is successfully returned, __ADLX_OK__ is returned.
- * If the state of VSync is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * VSync synchronizes the transition to a new frame of animation with the display update so no tearing is visible between frames.
- * Limits the frame rate at the display’s refresh rate.
- * __Note__: VSync configuration is dependent on the state of AMD Radeonâ„¢ Enhanced Sync.
- * If AMD Radeon Enhanced Sync is enabled, VSync is automatically disabled.
- * If AMD Radeon Enhanced Sync is disabled, VSync is automatically enabled. - * @ENG_END_DOX - * - *@copydoc IADLX3DWaitForVerticalRefresh_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsEnabled (adlx_bool* isEnabled) = 0; - - /** - *@page DOX_IADLX3DWaitForVerticalRefresh_GetMode GetMode - *@ENG_START_DOX @brief Gets the current VSync mode on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetMode (@ref ADLX_WAIT_FOR_VERTICAL_REFRESH_MODE* currentMode) - *@codeEnd - * - *@params - * @paramrow{1.,[out],currentMode,@ref ADLX_WAIT_FOR_VERTICAL_REFRESH_MODE*,@ENG_START_DOX The pointer to a variable where the current VSync mode is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the current VSync mode is successfully returned, __ADLX_OK__ is returned.
- * If the current VSync mode is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * VSync synchronizes the transition to a new frame of animation with the display update so no tearing is visible between frames.
- * Limits the frame rate at the display’s refresh rate.
- * __Note__: VSync configuration is dependent on the state of AMD Radeonâ„¢ Enhanced Sync.
- * If AMD Radeon Enhanced Sync is enabled, VSync is automatically disabled.
- * If AMD Radeon Enhanced Sync is disabled, VSync is automatically enabled. - * @ENG_END_DOX - * - *@copydoc IADLX3DWaitForVerticalRefresh_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetMode (ADLX_WAIT_FOR_VERTICAL_REFRESH_MODE* currentMode) = 0; - - /** - *@page DOX_IADLX3DWaitForVerticalRefresh_SetMode SetMode - *@ENG_START_DOX @brief Sets the VSync mode on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetMode (@ref ADLX_WAIT_FOR_VERTICAL_REFRESH_MODE mode) - *@codeEnd - * - *@params - * @paramrow{1.,[in],mode,@ref ADLX_WAIT_FOR_VERTICAL_REFRESH_MODE,@ENG_START_DOX The new VSync mode. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the VSync mode is successfully set, __ADLX_OK__ is returned.
- * If the VSync mode is not successfully set, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * VSync synchronizes the transition to a new frame of animation with the display update so no tearing is visible between frames.
- * Limits the frame rate at the display’s refresh rate.
- * __Note__: VSync configuration affects the state of AMD Radeonâ„¢ Enhanced Sync.
- * If VSync is enabled, AMD Radeon Enhanced Sync is automatically disabled.
- * If VSync is disabled, AMD Radeon Enhanced Sync is automatically enabled. - * @ENG_END_DOX - * - *@copydoc IADLX3DWaitForVerticalRefresh_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetMode (ADLX_WAIT_FOR_VERTICAL_REFRESH_MODE mode) = 0; - - }; //IADLX3DWaitForVerticalRefresh - //---------------------------------------------------------------------------------------------- - typedef IADLXInterfacePtr_T IADLX3DWaitForVerticalRefreshPtr; -} //namespace adlx -#else //__cplusplus -ADLX_DECLARE_IID (IADLX3DWaitForVerticalRefresh, L"IADLX3DWaitForVerticalRefresh") - -typedef struct IADLX3DWaitForVerticalRefresh IADLX3DWaitForVerticalRefresh; - -typedef struct IADLX3DWaitForVerticalRefreshVtbl -{ - //IADLXInterface - adlx_long (ADLX_STD_CALL *Acquire)(IADLX3DWaitForVerticalRefresh* pThis); - adlx_long (ADLX_STD_CALL *Release)(IADLX3DWaitForVerticalRefresh* pThis); - ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLX3DWaitForVerticalRefresh* pThis, const wchar_t* interfaceId, void** ppInterface); - - //IADLX3DWaitForVerticalRefresh - ADLX_RESULT (ADLX_STD_CALL *IsSupported)(IADLX3DWaitForVerticalRefresh* pThis, adlx_bool* supported); - - ADLX_RESULT (ADLX_STD_CALL *IsEnabled)(IADLX3DWaitForVerticalRefresh* pThis, adlx_bool* isEnabled); - ADLX_RESULT (ADLX_STD_CALL *GetMode)(IADLX3DWaitForVerticalRefresh* pThis, ADLX_WAIT_FOR_VERTICAL_REFRESH_MODE* currentMode); - ADLX_RESULT (ADLX_STD_CALL *SetMode)(IADLX3DWaitForVerticalRefresh* pThis, ADLX_WAIT_FOR_VERTICAL_REFRESH_MODE mode); -}IADLX3DWaitForVerticalRefreshVtbl; - -struct IADLX3DWaitForVerticalRefresh { const IADLX3DWaitForVerticalRefreshVtbl *pVtbl; }; -#endif //__cplusplus -#pragma endregion IADLX3DWaitForVerticalRefresh - -//3DFrameRateTargetControl setting interface -#pragma region IADLX3DFrameRateTargetControl -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLX3DFrameRateTargetControl : public IADLXInterface - { - public: - ADLX_DECLARE_IID (L"IADLX3DFrameRateTargetControl") - - /** - *@page DOX_IADLX3DFrameRateTargetControl_IsSupported IsSupported - *@ENG_START_DOX @brief Checks if AMD Frame Rate Target Control is supported on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupported (adlx_bool* supported) - *@codeEnd - * - *@params - * @paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of AMD Frame Rate Target Control is returned. The variable is __true__ if AMD Frame Rate Target Control is supported. The variable is __false__ if AMD Frame Rate Target Control is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of AMD Frame Rate Target Control is successfully returned, __ADLX_OK__ is returned.
- * If the state of AMD Frame Rate Target Control is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - *@ENG_START_DOX AMD Frame Rate Target Control sets a user-defined target maximum frame rate in full-screen applications to reduce GPU power consumption.
- * Gaming quality is maintained while GPU power consumption, noise, and heat levels are reduced when running games at higher FPS than the display refresh rate. - * @ENG_END_DOX - * - *@copydoc IADLX3DFrameRateTargetControl_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupported (adlx_bool* supported) = 0; - - /** - *@page DOX_IADLX3DFrameRateTargetControl_IsEnabled IsEnabled - *@ENG_START_DOX @brief Checks if AMD Frame Rate Target Control is enabled on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsEnabled (adlx_bool* enabled) - *@codeEnd - * - *@params - * @paramrow{1.,[out],enabled,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of AMD Frame Rate Target Control is returned. The variable is __true__ if AMD Frame Rate Target Control is enabled. The variable is __false__ if AMD Frame Rate Target Control is not enabled. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of AMD Frame Rate Target Control is successfully returned, __ADLX_OK__ is returned.
- * If the state of AMD Frame Rate Target Control is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - *@ENG_START_DOX AMD Frame Rate Target Control sets a user-defined target maximum frame rate in full-screen applications to reduce GPU power consumption.
- * Gaming quality is maintained while GPU power consumption, noise, and heat levels are reduced when running games at higher FPS than the display refresh rate. - * @ENG_END_DOX - * - *@copydoc IADLX3DFrameRateTargetControl_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsEnabled (adlx_bool* isEnabled) = 0; - - /** - *@page DOX_IADLX3DFrameRateTargetControl_GetFPSRange GetFPSRange - *@ENG_START_DOX @brief Gets the maximum FPS, minimum FPS, and step FPS of AMD Frame Rate Target Control on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetFPSRange (@ref ADLX_IntRange* range) - *@codeEnd - * - *@params - * @paramrow{1.,[out],range,@ref ADLX_IntRange*,@ENG_START_DOX The pointer to a variable where the FPS range of AMD Frame Rate Target Control is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the FPS range is successfully returned, __ADLX_OK__ is returned.
- * If the FPS range is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The maximum FPS, minimum FPS, and step FPS of AMD Frame Rate Target Control are read only. @ENG_END_DOX - * - * @addinfo - *@ENG_START_DOX AMD Frame Rate Target Control sets a user-defined target maximum frame rate in full-screen applications to reduce GPU power consumption.
- * Gaming quality is maintained while GPU power consumption, noise, and heat levels are reduced when running games at higher FPS than the display refresh rate. - * @ENG_END_DOX - * - *@copydoc IADLX3DFrameRateTargetControl_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetFPSRange (ADLX_IntRange* range) = 0; - - /** - *@page DOX_IADLX3DFrameRateTargetControl_GetFPS GetFPS - *@ENG_START_DOX @brief Gets the current FPS of AMD Frame Rate Target Control on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetFPS (adlx_int* currentFPS) - *@codeEnd - * - *@params - * @paramrow{1.,[out],currentFPS,adlx_int*,@ENG_START_DOX The pointer to a variable where the current FPS value of AMD Frame Rate Target Control is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the current FPS is successfully returned, __ADLX_OK__ is returned.
- * If the current FPS is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - *@ENG_START_DOX AMD Frame Rate Target Control sets a user-defined target maximum frame rate in full-screen applications to reduce GPU power consumption.
- * Gaming quality is maintained while GPU power consumption, noise, and heat levels are reduced when running games at higher FPS than the display refresh rate. - * @ENG_END_DOX - * - *@copydoc IADLX3DFrameRateTargetControl_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetFPS (adlx_int* currentFPS) = 0; - - /** - *@page DOX_IADLX3DFrameRateTargetControl_SetEnabled SetEnabled - *@ENG_START_DOX @brief Sets AMD Frame Rate Target Control to enabled or disabled on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetEnabled (adlx_bool enable) - *@codeEnd - * - *@params - * @paramrow{1.,[in],enable,adlx_bool,@ENG_START_DOX The new AMD Frame Rate Target Control state. Set __true__ to enable AMD Frame Rate Target Control. Set __false__ to disable AMD Frame Rate Target Control. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of AMD Frame Rate Target Control is successfully set, __ADLX_OK__ is returned.
- * If the state of AMD Frame Rate Target Control is not successfully set, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - *@ENG_START_DOX AMD Frame Rate Target Control sets a user-defined target maximum frame rate in full-screen applications to reduce GPU power consumption.
- * Gaming quality is maintained while GPU power consumption, noise, and heat levels are reduced when running games at higher FPS than the display refresh rate. - * @ENG_END_DOX - * - *@copydoc IADLX3DFrameRateTargetControl_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetEnabled (adlx_bool enable) = 0; - - /** - *@page DOX_IADLX3DFrameRateTargetControl_SetFPS SetFPS - *@ENG_START_DOX @brief Sets the maximum FPS of AMD Frame Rate Target Control on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetFPS (adlx_int maxFPS) - *@codeEnd - * - *@params - * @paramrow{1.,[in],maxFPS,adlx_int,@ENG_START_DOX The new maximum FPS value of AMD Frame Rate Target Control. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the maximum FPS is successfully set, __ADLX_OK__ is returned.
- * If the maximum FPS is not successfully set, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - *@ENG_START_DOX AMD Frame Rate Target Control sets a user-defined target maximum frame rate in full-screen applications to reduce GPU power consumption.
- * Gaming quality is maintained while GPU power consumption, noise, and heat levels are reduced when running games at higher FPS than the display refresh rate. - * @ENG_END_DOX - * - *@copydoc IADLX3DFrameRateTargetControl_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetFPS (adlx_int maxFPS) = 0; - - }; //IADLX3DFrameRateTargetControl - //---------------------------------------------------------------------------------------------- - typedef IADLXInterfacePtr_T IADLX3DFrameRateTargetControlPtr; -} //namespace adlx -#else //__cplusplus -ADLX_DECLARE_IID (IADLX3DFrameRateTargetControl, L"IADLX3DFrameRateTargetControl") - -typedef struct IADLX3DFrameRateTargetControl IADLX3DFrameRateTargetControl; - -typedef struct IADLX3DFrameRateTargetControlVtbl -{ - //IADLXInterface - adlx_long (ADLX_STD_CALL *Acquire)(IADLX3DFrameRateTargetControl* pThis); - adlx_long (ADLX_STD_CALL *Release)(IADLX3DFrameRateTargetControl* pThis); - ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLX3DFrameRateTargetControl* pThis, const wchar_t* interfaceId, void** ppInterface); - - //IADLX3DFrameRateTargetControl - ADLX_RESULT (ADLX_STD_CALL *IsSupported)(IADLX3DFrameRateTargetControl* pThis, adlx_bool* supported); - ADLX_RESULT (ADLX_STD_CALL *IsEnabled)(IADLX3DFrameRateTargetControl* pThis, adlx_bool* isEnabled); - ADLX_RESULT (ADLX_STD_CALL *GetFPSRange)(IADLX3DFrameRateTargetControl* pThis, ADLX_IntRange* range); - ADLX_RESULT (ADLX_STD_CALL *GetFPS)(IADLX3DFrameRateTargetControl* pThis, adlx_int* currentFPS); - ADLX_RESULT (ADLX_STD_CALL *SetEnabled)(IADLX3DFrameRateTargetControl* pThis, adlx_bool enable); - ADLX_RESULT (ADLX_STD_CALL *SetFPS)(IADLX3DFrameRateTargetControl* pThis, adlx_int maxFPS); -}IADLX3DFrameRateTargetControlVtbl; - -struct IADLX3DFrameRateTargetControl { const IADLX3DFrameRateTargetControlVtbl *pVtbl; }; -#endif //__cplusplus -#pragma endregion IADLX3DFrameRateTargetControl - -//3DAntiAliasing setting interface -#pragma region IADLX3DAntiAliasing -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLX3DAntiAliasing : public IADLXInterface - { - public: - ADLX_DECLARE_IID (L"IADLX3DAntiAliasing") - - /** - *@page DOX_IADLX3DAntiAliasing_IsSupported IsSupported - *@ENG_START_DOX @brief Checks if anti-aliasing is supported on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupported (adlx_bool* supported) - *@codeEnd - * - *@params - * @paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of anti-aliasing is returned. The variable is __true__ if anti-aliasing is supported. The variable is __false__ if anti-aliasing is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of anti-aliasing is successfully returned, __ADLX_OK__ is returned.
- * If the state of anti-aliasing is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - *@ENG_START_DOX Anti-aliasing improves image quality by smoothing jagged edges at the cost of some performance. - * @ENG_END_DOX - * - *@copydoc IADLX3DAntiAliasing_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupported (adlx_bool* supported) = 0; - - /** - *@page DOX_IADLX3DAntiAliasing_GetMode GetMode - *@ENG_START_DOX @brief Gets the current anti-aliasing mode of a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetMode (@ref ADLX_ANTI_ALIASING_MODE* currentMode) - *@codeEnd - * - *@params - * @paramrow{1.,[out],currentMode,@ref ADLX_ANTI_ALIASING_MODE*,@ENG_START_DOX The pointer to a variable where the current anti-aliasing mode is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the current anti-aliasing mode is successfully returned, __ADLX_OK__ is returned.
- * If the current anti-aliasing mode is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - *@ENG_START_DOX Anti-aliasing improves image quality by smoothing jagged edges at the cost of some performance. - * @ENG_END_DOX - * - *@copydoc IADLX3DAntiAliasing_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetMode (ADLX_ANTI_ALIASING_MODE* currentMode) = 0; - - /** - *@page DOX_IADLX3DAntiAliasing_GetLevel GetLevel - *@ENG_START_DOX @brief Gets the current anti-aliasing level of a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetLevel (@ref ADLX_ANTI_ALIASING_LEVEL* currentLevel) - *@codeEnd - * - *@params - * @paramrow{1.,[out],currentLevel,@ref ADLX_ANTI_ALIASING_LEVEL*,@ENG_START_DOX The pointer to a variable where the current anti-aliasing level is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the current anti-aliasing level is successfully returned, __ADLX_OK__ is returned.
- * If the current anti-aliasing level is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - *@ENG_START_DOX Anti-aliasing improves image quality by smoothing jagged edges at the cost of some performance. - * @ENG_END_DOX - * - *@copydoc IADLX3DAntiAliasing_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetLevel (ADLX_ANTI_ALIASING_LEVEL* currentLevel) = 0; - - /** - *@page DOX_IADLX3DAntiAliasing_GetMethod GetMethod - *@ENG_START_DOX @brief Gets the current anti-aliasing method of a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetMethod (@ref ADLX_ANTI_ALIASING_METHOD* currentMethod) - *@codeEnd - * - *@params - * @paramrow{1.,[out],currentMethod,@ref ADLX_ANTI_ALIASING_METHOD*,@ENG_START_DOX The pointer to a variable where the current anti-aliasing method is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the current anti-aliasing method is successfully returned, __ADLX_OK__ is returned.
- * If the current anti-aliasing method is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - *@ENG_START_DOX Anti-aliasing improves image quality by smoothing jagged edges at the cost of some performance. - * @ENG_END_DOX - * - *@copydoc IADLX3DAntiAliasing_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetMethod (ADLX_ANTI_ALIASING_METHOD* currentMethod) = 0; - - /** - *@page DOX_IADLX3DAntiAliasing_SetMode SetMode - *@ENG_START_DOX @brief Sets the anti-aliasing mode on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetMode (@ref ADLX_ANTI_ALIASING_MODE mode) - *@codeEnd - * - *@params - * @paramrow{1.,[in],mode,@ref ADLX_ANTI_ALIASING_MODE,@ENG_START_DOX The new anti-aliasing mode. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the anti-aliasing mode is successfully set, __ADLX_OK__ is returned.
- * If the anti-aliasing mode is not successfully set, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - *@ENG_START_DOX Anti-aliasing improves image quality by smoothing jagged edges at the cost of some performance. - * - * __Note__: Set the mode to __AA_MODE_ENHANCE_APP_SETTINGS__ or __AA_MODE_OVERRIDE_APP_SETTINGS__ to concurrently enable other anti-aliasing methods, such as morphological anti-aliasing.
- * For more information, refer to @ref DOX_IADLX3DMorphologicalAntiAliasing "IADLX3DMorphologicalAntiAliasing". - * @ENG_END_DOX - * - *@copydoc IADLX3DAntiAliasing_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetMode (ADLX_ANTI_ALIASING_MODE mode) = 0; - - /** - *@page DOX_IADLX3DAntiAliasing_SetLevel SetLevel - *@ENG_START_DOX @brief Sets the anti-aliasing level on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetLevel (@ref ADLX_ANTI_ALIASING_LEVEL level) - *@codeEnd - * - *@params - * @paramrow{1.,[in],level,@ref ADLX_ANTI_ALIASING_LEVEL,@ENG_START_DOX The new anti-aliasing level. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the anti-aliasing level is successfully set, __ADLX_OK__ is returned.
- * If the anti-aliasing level is not successfully set, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - *@ENG_START_DOX Anti-aliasing improves image quality by smoothing jagged edges at the cost of some performance. - * @ENG_END_DOX - * - *@copydoc IADLX3DAntiAliasing_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetLevel (ADLX_ANTI_ALIASING_LEVEL level) = 0; - - /** - *@page DOX_IADLX3DAntiAliasing_SetMethod SetMethod - *@ENG_START_DOX @brief Sets the anti-aliasing method on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetMethod (@ref ADLX_ANTI_ALIASING_METHOD method) - *@codeEnd - * - *@params - * @paramrow{1.,[in],method,@ref ADLX_ANTI_ALIASING_METHOD,@ENG_START_DOX The new anti-aliasing method. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the anti-aliasing method is successfully set, __ADLX_OK__ is returned.
- * If the anti-aliasing method is not successfully set, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - *@ENG_START_DOX Anti-aliasing improves image quality by smoothing jagged edges at the cost of some performance. - * @ENG_END_DOX - * - *@copydoc IADLX3DAntiAliasing_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetMethod (ADLX_ANTI_ALIASING_METHOD method) = 0; - - }; //IADLX3DAntiAliasing - //---------------------------------------------------------------------------------------------- - typedef IADLXInterfacePtr_T IADLX3DAntiAliasingPtr; -} //namespace adlx -#else //__cplusplus -ADLX_DECLARE_IID (IADLX3DAntiAliasing, L"IADLX3DAntiAliasing") - -typedef struct IADLX3DAntiAliasing IADLX3DAntiAliasing; - -typedef struct IADLX3DAntiAliasingVtbl -{ - //IADLXInterface - adlx_long (ADLX_STD_CALL *Acquire)(IADLX3DAntiAliasing* pThis); - adlx_long (ADLX_STD_CALL *Release)(IADLX3DAntiAliasing* pThis); - ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLX3DAntiAliasing* pThis, const wchar_t* interfaceId, void** ppInterface); - - //IADLX3DAntiAliasing - ADLX_RESULT (ADLX_STD_CALL *IsSupported)(IADLX3DAntiAliasing* pThis, adlx_bool* supported); - ADLX_RESULT (ADLX_STD_CALL *GetMode)(IADLX3DAntiAliasing* pThis, ADLX_ANTI_ALIASING_MODE* currentMode); - ADLX_RESULT (ADLX_STD_CALL *GetLevel)(IADLX3DAntiAliasing* pThis, ADLX_ANTI_ALIASING_LEVEL* currentLevel); - ADLX_RESULT (ADLX_STD_CALL *GetMethod)(IADLX3DAntiAliasing* pThis, ADLX_ANTI_ALIASING_METHOD* currentMethod); - ADLX_RESULT (ADLX_STD_CALL *SetMode)(IADLX3DAntiAliasing* pThis, ADLX_ANTI_ALIASING_MODE mode); - ADLX_RESULT (ADLX_STD_CALL *SetLevel)(IADLX3DAntiAliasing* pThis, ADLX_ANTI_ALIASING_LEVEL level); - ADLX_RESULT (ADLX_STD_CALL *SetMethod)(IADLX3DAntiAliasing* pThis, ADLX_ANTI_ALIASING_METHOD method); -}IADLX3DAntiAliasingVtbl; - -struct IADLX3DAntiAliasing { const IADLX3DAntiAliasingVtbl *pVtbl; }; -#endif //__cplusplus -#pragma endregion IADLX3DAntiAliasing - -//3DMorphologicalAntiAliasing setting interface -#pragma region IADLX3DMorphologicalAntiAliasing -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLX3DMorphologicalAntiAliasing : public IADLXInterface - { - public: - ADLX_DECLARE_IID (L"IADLX3DMorphologicalAntiAliasing") - - /** - *@page DOX_IADLX3DMorphologicalAntiAliasing_IsSupported IsSupported - *@ENG_START_DOX @brief Checks if morphological anti-aliasing is supported on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupported (adlx_bool* supported) - *@codeEnd - * - *@params - * @paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of morphological anti-aliasing is returned. The variable is __true__ if morphological anti-aliasing is supported. The variable is __false__ if morphological anti-aliasing is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of morphological anti-aliasing is successfully returned, __ADLX_OK__ is returned.
- * If the state of morphological anti-aliasing is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - *@ENG_START_DOX Morphological anti-aliasing is an edge-smoothing technique with minimal performance overhead.
- * The applications must run exclusively in full-screen mode.
- * Not applicable to DirectX® 12 and Vulkan® applications. - * - * __Note__: When morphological anti-aliasing is enabled, the anti-aliasing mode must either be __AA_MODE_ENHANCE_APP_SETTINGS__ or __AA_MODE_OVERRIDE_APP_SETTINGS__, as returned by @ref DOX_IADLX3DAntiAliasing_GetMode. - * @ENG_END_DOX - * - *@copydoc IADLX3DMorphologicalAntiAliasing_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupported (adlx_bool* supported) = 0; - - /** - *@page DOX_IADLX3DMorphologicalAntiAliasing_IsEnabled IsEnabled - *@ENG_START_DOX @brief Checks if morphological anti-aliasing is enabled on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsEnabled (adlx_bool* enabled) - *@codeEnd - * - *@params - * @paramrow{1.,[out],enabled,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of morphological anti-aliasing is returned. The variable is __true__ if morphological anti-aliasing is enabled. The variable is __false__ if morphological anti-aliasing is not enabled. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of morphological anti-aliasing is successfully returned, __ADLX_OK__ is returned.
- * If the state of morphological anti-aliasing is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - *@ENG_START_DOX Morphological anti-aliasing is an edge-smoothing technique with minimal performance overhead.
- * The applications must run exclusively in full-screen mode.
- * Not applicable to DirectX® 12 and Vulkan® applications. - * - * __Note__: When morphological anti-aliasing is enabled, the anti-aliasing mode must either be __AA_MODE_ENHANCE_APP_SETTINGS__ or __AA_MODE_OVERRIDE_APP_SETTINGS__, as returned by @ref DOX_IADLX3DAntiAliasing_GetMode. - * @ENG_END_DOX - * - *@copydoc IADLX3DMorphologicalAntiAliasing_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsEnabled (adlx_bool* isEnabled) = 0; - - /** - *@page DOX_IADLX3DMorphologicalAntiAliasing_SetEnabled SetEnabled - *@ENG_START_DOX @brief Sets morphological anti-aliasing to enabled or disabled state on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetEnabled (adlx_bool enable) - *@codeEnd - * - *@params - * @paramrow{1.,[in],enable,adlx_bool,@ENG_START_DOX The new morphological anti-aliasing state. Set __true__ to enable morphological anti-aliasing. Set __false__ to disable morphological anti-aliasing. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of morphological anti-aliasing is successfully set, __ADLX_OK__ is returned.
- * If the state of morphological anti-aliasing is not successfully set, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - *@ENG_START_DOX Morphological anti-aliasing is an edge-smoothing technique with minimal performance overhead.
- * The applications must run exclusively in full-screen mode.
- * Not applicable to DirectX® 12 and Vulkan® applications. - * - * __Note__: When morphological anti-aliasing is enabled, the anti-aliasing mode must either be __AA_MODE_ENHANCE_APP_SETTINGS__ or __AA_MODE_OVERRIDE_APP_SETTINGS__, as returned by @ref DOX_IADLX3DAntiAliasing_GetMode. - * @ENG_END_DOX - * - *@copydoc IADLX3DMorphologicalAntiAliasing_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetEnabled (adlx_bool enable) = 0; - }; //IADLX3DMorphologicalAntiAliasing - //---------------------------------------------------------------------------------------------- - typedef IADLXInterfacePtr_T IADLX3DMorphologicalAntiAliasingPtr; -} //namespace adlx -#else //__cplusplus -ADLX_DECLARE_IID (IADLX3DMorphologicalAntiAliasing, L"IADLX3DMorphologicalAntiAliasing") - -typedef struct IADLX3DMorphologicalAntiAliasing IADLX3DMorphologicalAntiAliasing; - -typedef struct IADLX3DMorphologicalAntiAliasingVtbl -{ - //IADLXInterface - adlx_long (ADLX_STD_CALL *Acquire)(IADLX3DMorphologicalAntiAliasing* pThis); - adlx_long (ADLX_STD_CALL *Release)(IADLX3DMorphologicalAntiAliasing* pThis); - ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLX3DMorphologicalAntiAliasing* pThis, const wchar_t* interfaceId, void** ppInterface); - - //IADLX3DMorphologicalAntiAliasing - ADLX_RESULT (ADLX_STD_CALL *IsSupported)(IADLX3DMorphologicalAntiAliasing* pThis, adlx_bool* supported); - ADLX_RESULT (ADLX_STD_CALL *IsEnabled)(IADLX3DMorphologicalAntiAliasing* pThis, adlx_bool* isEnabled); - ADLX_RESULT (ADLX_STD_CALL *SetEnabled)(IADLX3DMorphologicalAntiAliasing* pThis, adlx_bool enable); -}IADLX3DMorphologicalAntiAliasingVtbl; - -struct IADLX3DMorphologicalAntiAliasing { const IADLX3DMorphologicalAntiAliasingVtbl *pVtbl; }; -#endif //__cplusplus -#pragma endregion IADLX3DMorphologicalAntiAliasing - -//3DAnisotropicFiltering setting interface -#pragma region IADLX3DAnisotropicFiltering -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLX3DAnisotropicFiltering : public IADLXInterface - { - public: - ADLX_DECLARE_IID (L"IADLX3DAnisotropicFiltering") - - /** - *@page DOX_IADLX3DAnisotropicFiltering_IsSupported IsSupported - *@ENG_START_DOX @brief Checks if anisotropic filtering is supported on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupported (adlx_bool* supported) - *@codeEnd - * - *@params - * @paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of anisotropic filtering is returned. The variable is __true__ if anisotropic filtering is supported. The variable is __false__ if anisotropic filtering is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of anisotropic filtering is successfully returned, __ADLX_OK__ is returned.
- * If the state of anisotropic filtering is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - *@ENG_START_DOX Anisotropic filtering improves texture quality in most 3D applications on surfaces that appear far away or at odd angles – such as roads or trees – at the cost of some frame rate performance.
- * Only affects DirectX® 9 applications. - * @ENG_END_DOX - * - *@copydoc IADLX3DAnisotropicFiltering_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupported (adlx_bool* supported) = 0; - - /** - *@page DOX_IADLX3DAnisotropicFiltering_IsEnabled IsEnabled - *@ENG_START_DOX @brief Checks if anisotropic filtering is enabled on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsEnabled (adlx_bool* enabled) - *@codeEnd - * - *@params - * @paramrow{1.,[out],enabled,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of anisotropic filtering is returned. The variable is __true__ if anisotropic filtering is enabled. The variable is __false__ if anisotropic filtering is not enabled. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of anisotropic filtering is successfully returned, __ADLX_OK__ is returned.
- * If the state of anisotropic filtering is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - *@ENG_START_DOX Anisotropic filtering improves texture quality in most 3D applications on surfaces that appear far away or at odd angles – such as roads or trees – at the cost of some frame rate performance.
- * Only affects DirectX® 9 applications. - * @ENG_END_DOX - * - *@copydoc IADLX3DAnisotropicFiltering_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsEnabled (adlx_bool* isEnabled) = 0; - - /** - *@page DOX_IADLX3DAnisotropicFiltering_GetLevel GetLevel - *@ENG_START_DOX @brief Gets the current anisotropic filtering level on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetLevel (@ref ADLX_ANISOTROPIC_FILTERING_LEVEL* currentLevel) - *@codeEnd - * - *@params - * @paramrow{1.,[out],currentLevel,@ref ADLX_ANISOTROPIC_FILTERING_LEVEL*,@ENG_START_DOX The pointer to a variable where the current anisotropic filtering level is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the current anisotropic filtering level is successfully returned, __ADLX_OK__ is returned.
- * If the current anisotropic filtering level is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - *@ENG_START_DOX Anisotropic filtering improves texture quality in most 3D applications on surfaces that appear far away or at odd angles – such as roads or trees – at the cost of some frame rate performance.
- * Only affects DirectX® 9 applications. - * @ENG_END_DOX - * - *@copydoc IADLX3DAnisotropicFiltering_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetLevel (ADLX_ANISOTROPIC_FILTERING_LEVEL* currentLevel) = 0; - - /** - *@page DOX_IADLX3DAnisotropicFiltering_SetEnabled SetEnabled - *@ENG_START_DOX @brief Sets anisotropic filtering to an enabled or disabled state on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetEnabled (adlx_bool enable) - *@codeEnd - * - *@params - * @paramrow{1.,[in],enable,adlx_bool,@ENG_START_DOX The new anisotropic filtering state. Set __true__ to enable anisotropic filtering. Set __false__ to disable anisotropic filtering. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of anisotropic filtering is successfully set, __ADLX_OK__ is returned.
- * If the state of anisotropic filtering is not successfully set, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - *@ENG_START_DOX Anisotropic filtering improves texture quality in most 3D applications on surfaces that appear far away or at odd angles – such as roads or trees – at the cost of some frame rate performance.
- * Only affects DirectX® 9 applications. - * @ENG_END_DOX - * - *@copydoc IADLX3DAnisotropicFiltering_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetEnabled (adlx_bool enable) = 0; - - /** - *@page DOX_IADLX3DAnisotropicFiltering_SetLevel SetLevel - *@ENG_START_DOX @brief Sets the anisotropic filtering level of a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetLevel (@ref ADLX_ANISOTROPIC_FILTERING_LEVEL level) - *@codeEnd - * - *@params - * @paramrow{1.,[in],level,@ref ADLX_ANISOTROPIC_FILTERING_LEVEL,@ENG_START_DOX The new anisotropic filtering level. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the anisotropic filtering level is successfully set, __ADLX_OK__ is returned.
- * If the anisotropic filtering level is not successfully set, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - *@ENG_START_DOX Anisotropic filtering improves texture quality in most 3D applications on surfaces that appear far away or at odd angles – such as roads or trees – at the cost of some frame rate performance.
- * Only affects DirectX® 9 applications. - * @ENG_END_DOX - * - *@copydoc IADLX3DAnisotropicFiltering_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetLevel (ADLX_ANISOTROPIC_FILTERING_LEVEL level) = 0; - - }; //IADLX3DAnisotropicFiltering - //---------------------------------------------------------------------------------------------- - typedef IADLXInterfacePtr_T IADLX3DAnisotropicFilteringPtr; -} //namespace adlx -#else //__cplusplus -ADLX_DECLARE_IID (IADLX3DAnisotropicFiltering, L"IADLX3DAnisotropicFiltering") - -typedef struct IADLX3DAnisotropicFiltering IADLX3DAnisotropicFiltering; - -typedef struct IADLX3DAnisotropicFilteringVtbl -{ - //IADLXInterface - adlx_long (ADLX_STD_CALL *Acquire)(IADLX3DAnisotropicFiltering* pThis); - adlx_long (ADLX_STD_CALL *Release)(IADLX3DAnisotropicFiltering* pThis); - ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLX3DAnisotropicFiltering* pThis, const wchar_t* interfaceId, void** ppInterface); - - //IADLX3DAnisotropicFiltering - ADLX_RESULT (ADLX_STD_CALL *IsSupported)(IADLX3DAnisotropicFiltering* pThis, adlx_bool* supported); - ADLX_RESULT (ADLX_STD_CALL *IsEnabled)(IADLX3DAnisotropicFiltering* pThis, adlx_bool* isEnabled); - ADLX_RESULT (ADLX_STD_CALL *GetLevel)(IADLX3DAnisotropicFiltering* pThis, ADLX_ANISOTROPIC_FILTERING_LEVEL* currentLevel); - ADLX_RESULT (ADLX_STD_CALL *SetEnabled)(IADLX3DAnisotropicFiltering* pThis, adlx_bool enable); - ADLX_RESULT (ADLX_STD_CALL *SetLevel)(IADLX3DAnisotropicFiltering* pThis, ADLX_ANISOTROPIC_FILTERING_LEVEL level); -}IADLX3DAnisotropicFilteringVtbl; - -struct IADLX3DAnisotropicFiltering { const IADLX3DAnisotropicFilteringVtbl *pVtbl; }; -#endif //__cplusplus -#pragma endregion IADLX3DAnisotropicFiltering - -//3DTessellation setting interface -#pragma region IADLX3DTessellation -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLX3DTessellation : public IADLXInterface - { - public: - ADLX_DECLARE_IID (L"IADLX3DTessellation") - - /** - *@page DOX_IADLX3DTessellation_IsSupported IsSupported - *@ENG_START_DOX @brief Checks if tessellation is supported on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupported (adlx_bool* supported) - *@codeEnd - * - *@params - * @paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of tessellation is returned. The variable is __true__ if tessellation is supported. The variable is __false__ if tessellation is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of tessellation is successfully returned, __ADLX_OK__ is returned.
- * If the state of tessellation is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - *@ENG_START_DOX Tessellation adjusts the number of polygons used to render objects with enhanced detail, at the cost of some frame rate performance. - * @ENG_END_DOX - * - *@copydoc IADLX3DTessellation_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupported (adlx_bool* supported) = 0; - - /** - *@page DOX_IADLX3DTessellation_GetMode GetMode - *@ENG_START_DOX @brief Gets the current tessellation mode on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetMode (@ref ADLX_TESSELLATION_MODE* currentMode) - *@codeEnd - * - *@params - * @paramrow{1.,[out],currentMode,@ref ADLX_TESSELLATION_MODE*,@ENG_START_DOX The pointer to a variable where the current tessellation mode is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the current tessellation mode is successfully returned, __ADLX_OK__ is returned.
- * If the current tessellation mode is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - *@ENG_START_DOX Tessellation adjusts the number of polygons used to render objects with enhanced detail, at the cost of some frame rate performance. - * @ENG_END_DOX - * - *@copydoc IADLX3DTessellation_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetMode (ADLX_TESSELLATION_MODE* currentMode) = 0; - - /** - *@page DOX_IADLX3DTessellation_GetLevel GetLevel - *@ENG_START_DOX @brief Gets the current tessellation level on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetLevel (@ref ADLX_TESSELLATION_LEVEL* currentLevel) - *@codeEnd - * - *@params - * @paramrow{1.,[out],currentLevel,@ref ADLX_TESSELLATION_LEVEL*,@ENG_START_DOX The pointer to a variable where the current tessellation level is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the current tessellation level is successfully returned, __ADLX_OK__ is returned.
- * If the current tessellation level is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - *@ENG_START_DOX Tessellation adjusts the number of polygons used to render objects with enhanced detail, at the cost of some frame rate performance. - * @ENG_END_DOX - * - *@copydoc IADLX3DTessellation_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetLevel (ADLX_TESSELLATION_LEVEL* currentLevel) = 0; - - /** - *@page DOX_IADLX3DTessellation_SetMode SetMode - *@ENG_START_DOX @brief Sets the tessellation mode on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetMode (@ref ADLX_TESSELLATION_MODE mode) - *@codeEnd - * - *@params - * @paramrow{1.,[in],mode,@ref ADLX_TESSELLATION_MODE,@ENG_START_DOX The new tessellation mode. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the tesssellation mode is successfully set, __ADLX_OK__ is returned.
- * If the tessellation mode is not successfully set, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - *@ENG_START_DOX Tessellation adjusts the number of polygons used to render objects with enhanced detail, at the cost of some frame rate performance. - * @ENG_END_DOX - * - *@copydoc IADLX3DTessellation_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetMode (ADLX_TESSELLATION_MODE mode) = 0; - - /** - *@page DOX_IADLX3DTessellation_SetLevel SetLevel - *@ENG_START_DOX @brief Sets the tessellation level on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetLevel (@ref ADLX_TESSELLATION_LEVEL level) - *@codeEnd - * - *@params - * @paramrow{1.,[in],level,@ref ADLX_TESSELLATION_LEVEL,@ENG_START_DOX The new tessellation level. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the tessellation level is successfully set, __ADLX_OK__ is returned.
- * If the tessellation level is not successfully set, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - *@ENG_START_DOX Tessellation adjusts the number of polygons used to render objects with enhanced detail, at the cost of some frame rate performance. - * @ENG_END_DOX - * - *@copydoc IADLX3DTessellation_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetLevel (ADLX_TESSELLATION_LEVEL level) = 0; - - }; //IADLX3DTessellation - //---------------------------------------------------------------------------------------------- - typedef IADLXInterfacePtr_T IADLX3DTessellationPtr; -} //namespace adlx -#else //__cplusplus -ADLX_DECLARE_IID (IADLX3DTessellation, L"IADLX3DTessellation") - -typedef struct IADLX3DTessellation IADLX3DTessellation; - -typedef struct IADLX3DTessellationVtbl -{ - //IADLXInterface - adlx_long (ADLX_STD_CALL *Acquire)(IADLX3DTessellation* pThis); - adlx_long (ADLX_STD_CALL *Release)(IADLX3DTessellation* pThis); - ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLX3DTessellation* pThis, const wchar_t* interfaceId, void** ppInterface); - - //IADLX3DTessellation - ADLX_RESULT (ADLX_STD_CALL *IsSupported)(IADLX3DTessellation* pThis, adlx_bool* supported); - ADLX_RESULT (ADLX_STD_CALL *GetMode)(IADLX3DTessellation* pThis, ADLX_TESSELLATION_MODE* currentMode); - ADLX_RESULT (ADLX_STD_CALL *GetLevel)(IADLX3DTessellation* pThis, ADLX_TESSELLATION_LEVEL* currentLevel); - ADLX_RESULT (ADLX_STD_CALL *SetMode)(IADLX3DTessellation* pThis, ADLX_TESSELLATION_MODE mode); - ADLX_RESULT (ADLX_STD_CALL *SetLevel)(IADLX3DTessellation* pThis, ADLX_TESSELLATION_LEVEL level); -}IADLX3DTessellationVtbl; - -struct IADLX3DTessellation { const IADLX3DTessellationVtbl *pVtbl; }; -#endif //__cplusplus -#pragma endregion IADLX3DTessellation - -//3DRadeonSuperResolution interface -#pragma region IADLX3DRadeonSuperResolution -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLX3DRadeonSuperResolution : public IADLXInterface - { - public: - ADLX_DECLARE_IID (L"IADLX3DRadeonSuperResolution") - - /** - *@page DOX_IADLX3DRadeonSuperResolution_IsSupported IsSupported - *@ENG_START_DOX @brief Checks if Radeonâ„¢ Super Resolution is supported. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupported (adlx_bool* supported) - *@codeEnd - * - *@params - * @paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of Radeon Super Resolution is returned. The variable is __true__ if Radeon Super Resolution is supported. The variable is __false__ if Radeon Super Resolution is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of Radeon Super Resolution is successfully returned, __ADLX_OK__ is returned.
- * If the state of Radeon Super Resolution is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * Radeon Super Resolution is an upscaling feature for faster game frame rates. - * @ENG_END_DOX - * - *@copydoc IADLX3DRadeonSuperResolution_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupported (adlx_bool* supported) = 0; - - /** - *@page DOX_IADLX3DRadeonSuperResolution_IsEnabled IsEnabled - *@ENG_START_DOX @brief Checks if Radeonâ„¢ Super Resolution is enabled. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsEnabled (adlx_bool* enabled) - *@codeEnd - * - *@params - * @paramrow{1.,[out],enabled,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of Radeon Super Resolution is returned. The variable is __true__ if Radeon Super Resolution is enabled. The variable is __false__ if Radeon Super Resolution is not enabled. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of Radeon Super Resolution is successfully returned, __ADLX_OK__ is returned.
- * If the state of Radeon Super Resolution is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * Radeon Super Resolution is an upscaling feature for faster game frame rates.
- * - * __Note:__ @ref DOX_IADLXDisplayGPUScaling "GPU scaling" is a requirement for Radeon Super Resolution. When Radeon Super Resolution is enabled, GPU scaling is automatically enabled. If GPU scaling is disabled while Radeon Super Resolution is enabled, Radeon Super Resolution is automatically disabled. - * - * On some AMD GPUs, Radeon Super Resolution is mutually exclusive with @ref DOX_IADLX3DChill "AMD Radeon Chill", @ref DOX_IADLX3DBoost "AMD Radeon Boost", @ref DOX_IADLX3DImageSharpening "AMD Radeon Image Sharpening", @ref DOX_IADLXDisplayIntegerScaling "Integer Display Scaling", and @ref DOX_IADLXDisplayScalingMode_GetMode "Center Scaling". When Radeon Super Resolution is enabled, the mutually exclusive features are automatically disabled.
- * @ENG_END_DOX - * - *@copydoc IADLX3DRadeonSuperResolution_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsEnabled (adlx_bool* enabled) = 0; - - /** - *@page DOX_IADLX3DRadeonSuperResolution_SetEnabled SetEnabled - *@ENG_START_DOX @brief Sets the activation status of Radeonâ„¢ Super Resolution. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetEnabled (adlx_bool enable) - *@codeEnd - * - *@params - * @paramrow{1.,[in],enable,adlx_bool,@ENG_START_DOX The new Radeon Super Resolution state. Set __true__ to enable Radeon Super Resolution. Set __false__ to disable Radeon Super Resolution. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of Radeon Super Resolution is successfully set, __ADLX_OK__ is returned.
- * If the state of Radeon Super Resolution is not successfully set, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * Radeon Super Resolution is an upscaling feature for faster game frame rates.
- * - * __Note:__ @ref DOX_IADLXDisplayGPUScaling "GPU scaling" is a requirement for Radeon Super Resolution. When Radeon Super Resolution is enabled, GPU scaling is automatically enabled. If GPU scaling is disabled while Radeon Super Resolution is enabled, Radeon Super Resolution is automatically disabled. - * - * On some AMD GPUs, Radeon Super Resolution is mutually exclusive with @ref DOX_IADLX3DChill "AMD Radeon Chill", @ref DOX_IADLX3DBoost "AMD Radeon Boost", @ref DOX_IADLX3DImageSharpening "AMD Radeon Image Sharpening", @ref DOX_IADLXDisplayIntegerScaling "Integer Display Scaling", and @ref DOX_IADLXDisplayScalingMode_GetMode "Center Scaling". When Radeon Super Resolution is enabled, the mutually exclusive features are automatically disabled.
- - * @ENG_END_DOX - * - *@copydoc IADLX3DRadeonSuperResolution_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetEnabled (adlx_bool enable) = 0; - - /** - *@page DOX_IADLX3DRadeonSuperResolution_GetSharpnessRange GetSharpnessRange - *@ENG_START_DOX @brief Gets the Radeonâ„¢ Super Resolution maximum sharpness, minimum sharpness, and step sharpness. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetSharpnessRange (@ref ADLX_IntRange* range) - *@codeEnd - * - *@params - * @paramrow{1.,[out],range,@ref ADLX_IntRange*,@ENG_START_DOX The pointer to a variable where the sharpness range of Radeon Super Resolution is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the sharpness range is successfully returned, __ADLX_OK__ is returned.
- * If the sharpness range is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The maximum sharpness, minimum sharpness, and step sharpness values are read only. @ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * Radeon Super Resolution is an upscaling feature for faster game frame rates. - * @ENG_END_DOX - * - *@copydoc IADLX3DRadeonSuperResolution_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetSharpnessRange (ADLX_IntRange* range) = 0; - - /** - *@page DOX_IADLX3DRadeonSuperResolution_GetSharpness GetSharpness - *@ENG_START_DOX @brief Gets the Radeonâ„¢ Super Resolution current sharpness. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetSharpness (adlx_int* currentSharpness) - *@codeEnd - * - *@params - * @paramrow{1.,[out],currentSharpness,adlx_int*,@ENG_START_DOX The pointer to a variable where the current sharpness of Radeon Super Resolution is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the current sharpness is successfully returned, __ADLX_OK__ is returned.
- * If the current sharpness is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * Radeon Super Resolution is an upscaling feature for faster game frame rates. - * @ENG_END_DOX - * - *@copydoc IADLX3DRadeonSuperResolution_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetSharpness (adlx_int* currentSharpness) = 0; - - /** - *@page DOX_IADLX3DRadeonSuperResolution_SetSharpness SetSharpness - *@ENG_START_DOX @brief Sets the Radeonâ„¢ Super Resolution sharpness. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetSharpness (adlx_int sharpness) - *@codeEnd - * - *@params - * @paramrow{1.,[in],sharpness,adlx_int,@ENG_START_DOX The new sharpness of Radeon Super Resolution. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the sharpness is successfully set, __ADLX_OK__ is returned.
- * If the sharpness is not successfully set, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * Radeon Super Resolution is an upscaling feature for faster game frame rates. - * @ENG_END_DOX - * - *@copydoc IADLX3DRadeonSuperResolution_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetSharpness (adlx_int sharpness) = 0; - }; //IADLX3DRadeonSuperResolution - //---------------------------------------------------------------------------------------------- - typedef IADLXInterfacePtr_T IADLX3DRadeonSuperResolutionPtr; -} //namespace adlx -#else //__cplusplus -ADLX_DECLARE_IID (IADLX3DRadeonSuperResolution, L"IADLX3DRadeonSuperResolution") - -typedef struct IADLX3DRadeonSuperResolution IADLX3DRadeonSuperResolution; - -typedef struct IADLX3DRadeonSuperResolutionVtbl -{ - //IADLXInterface - adlx_long (ADLX_STD_CALL *Acquire)(IADLX3DRadeonSuperResolution* pThis); - adlx_long (ADLX_STD_CALL *Release)(IADLX3DRadeonSuperResolution* pThis); - ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLX3DRadeonSuperResolution* pThis, const wchar_t* interfaceId, void** ppInterface); - - //IADLX3DRadeonSuperResolution - ADLX_RESULT (ADLX_STD_CALL *IsSupported) (IADLX3DRadeonSuperResolution* pThis, adlx_bool* supported); - ADLX_RESULT (ADLX_STD_CALL *IsEnabled) (IADLX3DRadeonSuperResolution* pThis, adlx_bool* enabled); - ADLX_RESULT (ADLX_STD_CALL *SetEnabled) (IADLX3DRadeonSuperResolution* pThis, adlx_bool enable); - ADLX_RESULT (ADLX_STD_CALL *GetSharpnessRange) (IADLX3DRadeonSuperResolution* pThis, ADLX_IntRange* range); - ADLX_RESULT (ADLX_STD_CALL *GetSharpness) (IADLX3DRadeonSuperResolution* pThis, adlx_int* currentSharpness); - ADLX_RESULT (ADLX_STD_CALL *SetSharpness) (IADLX3DRadeonSuperResolution* pThis, adlx_int sharpness); -}IADLX3DRadeonSuperResolutionVtbl; - -struct IADLX3DRadeonSuperResolution { const IADLX3DRadeonSuperResolutionVtbl* pVtbl; }; - -#endif //__cplusplus -#pragma endregion IADLX3DRadeonSuperResolution - -//3DResetShaderCache setting interface -#pragma region IADLX3DResetShaderCache -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLX3DResetShaderCache : public IADLXInterface - { - public: - ADLX_DECLARE_IID (L"IADLX3DResetShaderCache") - - /** - *@page DOX_IADLX3DResetShaderCache_IsSupported IsSupported - *@ENG_START_DOX @brief Checks if resetting the shader cache of a GPU is supported. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupported (adlx_bool* supported) - *@codeEnd - * - *@params - * @paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of shader cache reset is returned. The variable is __true__ if shader cache reset is supported. The variable is __false__ if shader cache reset is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of shader cache reset is successfully returned, ADLX_OK is returned.
- * If the state of shader cache reset is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * The shader cache stores frequently used in-game shaders to reduce loading time and CPU usage. Resetting the shader cache clears contents of the disk-based shader cache. - * @ENG_END_DOX - * - *@copydoc IADLX3DResetShaderCache_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupported (adlx_bool* supported) = 0; - - /** - *@page DOX_IADLX3DResetShaderCache_ResetShaderCache ResetShaderCache - *@ENG_START_DOX @brief Resets the content in a disk-based shader cache on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT ResetShaderCache () - *@codeEnd - * - *@params - *N/A - * - *@retvalues - *@ENG_START_DOX If the shader cache is successfully reset, ADLX_OK is returned.
- * If the shader cache is not successfully reset, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * The shader cache stores frequently used in-game shaders to reduce loading time and CPU usage. Resetting the shader cache clears the contents of the disk-based shader cache. - * @ENG_END_DOX - * - *@copydoc IADLX3DResetShaderCache_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL ResetShaderCache () = 0; - - }; //IADLX3DResetShaderCache - //---------------------------------------------------------------------------------------------- - typedef IADLXInterfacePtr_T IADLX3DResetShaderCachePtr; -} //namespace adlx -#else //__cplusplus -ADLX_DECLARE_IID (IADLX3DResetShaderCache, L"IADLX3DResetShaderCache") - -typedef struct IADLX3DResetShaderCache IADLX3DResetShaderCache; - -typedef struct IADLX3DResetShaderCacheVtbl -{ - //IADLXInterface - adlx_long (ADLX_STD_CALL *Acquire)(IADLX3DResetShaderCache* pThis); - adlx_long (ADLX_STD_CALL *Release)(IADLX3DResetShaderCache* pThis); - ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLX3DResetShaderCache* pThis, const wchar_t* interfaceId, void** ppInterface); - - //IADLX3DResetShaderCache - ADLX_RESULT (ADLX_STD_CALL *IsSupported)(IADLX3DResetShaderCache* pThis, adlx_bool* supported); - ADLX_RESULT (ADLX_STD_CALL *ResetShaderCache)(IADLX3DResetShaderCache* pThis); -}IADLX3DResetShaderCacheVtbl; - -struct IADLX3DResetShaderCache { const IADLX3DResetShaderCacheVtbl *pVtbl; }; -#endif //__cplusplus -#pragma endregion IADLX3DResetShaderCache - -//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() -#pragma region IADLX3DSettingsChangedEvent -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLXGPU; - class ADLX_NO_VTABLE IADLX3DSettingsChangedEvent : public IADLXChangedEvent - { - public: - ADLX_DECLARE_IID (L"IADLX3DSettingsChangedEvent") - - /** - *@page DOX_IADLX3DSettingsChangedEvent_GetGPU GetGPU - *@ENG_START_DOX @brief Gets the reference-counted GPU interface on which 3D Graphics settings are changed. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetGPU (@ref DOX_IADLXGPU **ppGPU) - *@codeEnd - * - *@params - *@paramrow{1.,[out] ,ppGPU,@ref DOX_IADLXGPU** ,@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 __*ppGPU__ to __nullptr__. @ENG_END_DOX} - * - * - *@retvalues - *@ENG_START_DOX If the GPU interface is successfully returned, __ADLX_OK__ is returned.
- * If the GPU interface is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX - * - *@addinfo - *@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.
- * __Note:__ @ref DOX_IADLX3DSettingsChangedEvent_GetGPU returns the reference counted GPU used by all the methods in this interface to check if there are any changes in 3D Graphics settings. - @ENG_END_DOX - * - * - *@copydoc IADLX3DSettingsChangedEvent_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetGPU (IADLXGPU** ppGPU) = 0; - - /** - *@page DOX_IADLX3DSettingsChangedEvent_IsAntiLagChanged IsAntiLagChanged - *@ENG_START_DOX @brief Checks for changes to the AMD Radeonâ„¢ Anti-Lag settings. @ENG_END_DOX - * - *@syntax - *@codeStart - * adlx_bool IsAntiLagChanged () - *@codeEnd - * - *@params - *N/A - * - *@retvalues - *@ENG_START_DOX If there are any changes to the Radeon Anti-Lag settings, __true__ is returned.
- * If there are on changes to the Radeon Anti-Lag settings, __false__ is returned.
@ENG_END_DOX - * - * - *@addinfo - *@ENG_START_DOX - * __Note:__ To obtain the GPU, use @ref DOX_IADLX3DSettingsChangedEvent_GetGPU. - * @ENG_END_DOX - * - *@copydoc IADLX3DSettingsChangedEvent_REQ_TABLE - * - */ - virtual adlx_bool ADLX_STD_CALL IsAntiLagChanged () = 0; - - /** - *@page DOX_IADLX3DSettingsChangedEvent_IsChillChanged IsChillChanged - *@ENG_START_DOX @brief Checks for changes to the AMD Radeonâ„¢ Chill settings. @ENG_END_DOX - * - *@syntax - *@codeStart - * adlx_bool IsChillChanged () - *@codeEnd - * - *@params - *N/A - * - *@retvalues - *@ENG_START_DOX If there are any changes to the AMD Radeon Chill settings, __true__ is returned.
- * If there are on changes to the AMD Radeon Chill settings, __false__ is returned.
@ENG_END_DOX - * - *@addinfo - *@ENG_START_DOX - * __Note:__ To obtain the GPU, use @ref DOX_IADLX3DSettingsChangedEvent_GetGPU. - * @ENG_END_DOX - * - *@copydoc IADLX3DSettingsChangedEvent_REQ_TABLE - * - */ - virtual adlx_bool ADLX_STD_CALL IsChillChanged () = 0; - - /** - *@page DOX_IADLX3DSettingsChangedEvent_IsBoostChanged IsBoostChanged - *@ENG_START_DOX @brief Checks for changes to the AMD Radeonâ„¢ Boost settings. @ENG_END_DOX - * - *@syntax - *@codeStart - * adlx_bool IsBoostChanged () - *@codeEnd - * - *@params - *N/A - * - *@retvalues - *@ENG_START_DOX If there are any changes to the AMD Radeon Boost settings, __true__ is returned.
- * If there are on changes to the AMD Radeon Boost settings, __false__ is returned.
@ENG_END_DOX - * - * - *@addinfo - *@ENG_START_DOX - * __Note:__ To obtain the GPU, use @ref DOX_IADLX3DSettingsChangedEvent_GetGPU. - * @ENG_END_DOX - * - *@copydoc IADLX3DSettingsChangedEvent_REQ_TABLE - * - */ - virtual adlx_bool ADLX_STD_CALL IsBoostChanged () = 0; - - /** - *@page DOX_IADLX3DSettingsChangedEvent_IsImageSharpeningChanged IsImageSharpeningChanged - *@ENG_START_DOX @brief Checks for changes to the AMD Radeon Image Sharpening settings. @ENG_END_DOX - * - *@syntax - *@codeStart - * adlx_bool IsImageSharpeningChanged () - *@codeEnd - * - *@params - *N/A - * - *@retvalues - *@ENG_START_DOX If there are any changes to the Radeon Image Sharpening settings, __true__ is returned.
- * If there are on changes to the Radeon Image Sharpening settings, __false__ is returned.
@ENG_END_DOX - * - *@addinfo - *@ENG_START_DOX - * __Note:__ To obtain the GPU, use @ref DOX_IADLX3DSettingsChangedEvent_GetGPU. - * @ENG_END_DOX - * - *@copydoc IADLX3DSettingsChangedEvent_REQ_TABLE - * - */ - virtual adlx_bool ADLX_STD_CALL IsImageSharpeningChanged () = 0; - - /** - *@page DOX_IADLX3DSettingsChangedEvent_IsEnhancedSyncChanged IsEnhancedSyncChanged - *@ENG_START_DOX @brief Checks for changes to the AMD Radeonâ„¢ Enhanced Sync settings. @ENG_END_DOX - * - *@syntax - *@codeStart - * adlx_bool IsEnhancedSyncChanged () - *@codeEnd - * - *@params - *N/A - * - *@retvalues - *@ENG_START_DOX If there are any changes to the AMD Radeon Enhanced Sync settings, __true__ is returned.
- * If there are on changes to the AMD Radeon Enhanced Sync settings, __false__ is returned.
@ENG_END_DOX - * - *@addinfo - *@ENG_START_DOX - * __Note:__ To obtain the GPU, use @ref DOX_IADLX3DSettingsChangedEvent_GetGPU. - * @ENG_END_DOX - * - *@copydoc IADLX3DSettingsChangedEvent_REQ_TABLE - * - */ - virtual adlx_bool ADLX_STD_CALL IsEnhancedSyncChanged () = 0; - - /** - *@page DOX_IADLX3DSettingsChangedEvent_IsWaitForVerticalRefreshChanged IsWaitForVerticalRefreshChanged - *@ENG_START_DOX @brief Checks for changes to the Wait for Vertical Refresh settings. @ENG_END_DOX - * - *@syntax - *@codeStart - * adlx_bool IsWaitForVerticalRefreshChanged () - *@codeEnd - * - *@params - *N/A - * - *@retvalues - *@ENG_START_DOX If there are any changes to the Wait for Vertical Refresh settings, __true__ is returned.
- * If there are on changes to the Wait for Vertical Refresh settings, __false__ is returned.
@ENG_END_DOX - * - *@addinfo - *@ENG_START_DOX - * __Note:__ To obtain the GPU, use @ref DOX_IADLX3DSettingsChangedEvent_GetGPU. - * @ENG_END_DOX - * - * - *@copydoc IADLX3DSettingsChangedEvent_REQ_TABLE - * - */ - virtual adlx_bool ADLX_STD_CALL IsWaitForVerticalRefreshChanged () = 0; - - /** - *@page DOX_IADLX3DSettingsChangedEvent_IsFrameRateTargetControlChanged IsFrameRateTargetControlChanged - *@ENG_START_DOX @brief Checks for changes to the AMD Frame Rate Target Control settings. @ENG_END_DOX - * - *@syntax - *@codeStart - * adlx_bool IsFrameRateTargetControlChanged () - *@codeEnd - * - *@params - *N/A - * - *@retvalues - *@ENG_START_DOX If there are any changes to the AMD Frame Rate Target Control settings, __true__ is returned.
- * If there are on changes to the AMD Frame Rate Target Control settings, __false__ is returned.
@ENG_END_DOX - * - * - *@addinfo - *@ENG_START_DOX - * __Note:__ To obtain the GPU, use @ref DOX_IADLX3DSettingsChangedEvent_GetGPU. - * @ENG_END_DOX - * - *@copydoc IADLX3DSettingsChangedEvent_REQ_TABLE - * - */ - virtual adlx_bool ADLX_STD_CALL IsFrameRateTargetControlChanged () = 0; - - /** - *@page DOX_IADLX3DSettingsChangedEvent_IsAntiAliasingChanged IsAntiAliasingChanged - *@ENG_START_DOX @brief Checks for changes to the Anti-Aliasing settings. @ENG_END_DOX - * - *@syntax - *@codeStart - * adlx_bool IsAntiAliasingChanged () - *@codeEnd - * - *@params - *N/A - * - *@retvalues - *@ENG_START_DOX If there are any changes to the Anti-Aliasing settings, __true__ is returned.
- * If there are on changes to the Anti-Aliasing settings, __false__ is returned.
@ENG_END_DOX - * - *@addinfo - *@ENG_START_DOX - * __Note:__ To obtain the GPU, use @ref DOX_IADLX3DSettingsChangedEvent_GetGPU. - * @ENG_END_DOX - * - *@copydoc IADLX3DSettingsChangedEvent_REQ_TABLE - * - */ - virtual adlx_bool ADLX_STD_CALL IsAntiAliasingChanged () = 0; - - /** - *@page DOX_IADLX3DSettingsChangedEvent_IsMorphologicalAntiAliasingChanged IsMorphologicalAntiAliasingChanged - *@ENG_START_DOX @brief Checks for changes to the Morphological Anti-Aliasing settings. @ENG_END_DOX - * - *@syntax - *@codeStart - * adlx_bool IsMorphologicalAntiAliasingChanged () - *@codeEnd - * - *@params - *N/A - * - *@retvalues - *@ENG_START_DOX If there are any changes to the Morphological Anti-Aliasing settings, __true__ is returned.
- * If there are on changes to the Morphological Anti-Aliasing settings, __false__ is returned.
@ENG_END_DOX - * - *@addinfo - *@ENG_START_DOX - * __Note:__ To obtain the GPU, use @ref DOX_IADLX3DSettingsChangedEvent_GetGPU. - * @ENG_END_DOX - * - *@copydoc IADLX3DSettingsChangedEvent_REQ_TABLE - * - */ - virtual adlx_bool ADLX_STD_CALL IsMorphologicalAntiAliasingChanged () = 0; - - /** - *@page DOX_IADLX3DSettingsChangedEvent_IsAnisotropicFilteringChanged IsAnisotropicFilteringChanged - *@ENG_START_DOX @brief Checks for changes to the Anisotropic Filtering settings. @ENG_END_DOX - * - *@syntax - *@codeStart - * adlx_bool IsAnisotropicFilteringChanged () - *@codeEnd - * - *@params - *N/A - * - *@retvalues - *@ENG_START_DOX If there are any changes to the Anisotropic Filtering settings, __true__ is returned.
- * If there are on changes to the Anisotropic Filtering settings, __false__ is returned.
@ENG_END_DOX - * - * - *@addinfo - *@ENG_START_DOX - * __Note:__ To obtain the GPU, use @ref DOX_IADLX3DSettingsChangedEvent_GetGPU. - * @ENG_END_DOX - * - *@copydoc IADLX3DSettingsChangedEvent_REQ_TABLE - * - */ - virtual adlx_bool ADLX_STD_CALL IsAnisotropicFilteringChanged () = 0; - - /** - *@page DOX_IADLX3DSettingsChangedEvent_IsTessellationModeChanged IsTessellationModeChanged - *@ENG_START_DOX @brief Checks for changes to the Tessellation settings. @ENG_END_DOX - * - *@syntax - *@codeStart - * adlx_bool IsTessellationModeChanged () - *@codeEnd - * - *@params - *N/A - * - *@retvalues - *@ENG_START_DOX If there are any changes to the Tessellation settings, __true__ is returned.
- * If there are no changes to the Tessellation settings, __false__ is returned.
@ENG_END_DOX - * - * - *@addinfo - *@ENG_START_DOX - * __Note:__ To obtain the GPU, use @ref DOX_IADLX3DSettingsChangedEvent_GetGPU. - * @ENG_END_DOX - * - *@copydoc IADLX3DSettingsChangedEvent_REQ_TABLE - * - */ - virtual adlx_bool ADLX_STD_CALL IsTessellationModeChanged () = 0; - - /** - *@page DOX_IADLX3DSettingsChangedEvent_IsRadeonSuperResolutionChanged IsRadeonSuperResolutionChanged - *@ENG_START_DOX @brief Checks for changes to the Radeonâ„¢ Super Resolution settings. @ENG_END_DOX - * - *@syntax - *@codeStart - * adlx_bool IsRadeonSuperResolutionChanged () - *@codeEnd - * - *@params - *N/A - * - *@retvalues - *@ENG_START_DOX If there are any changes to the Radeon Super Resolution settings, __true__ is returned.
- * If there are no changes to the Radeon Super Resolution settings, __false__ is returned.
@ENG_END_DOX - * - * - *@addinfo - *@ENG_START_DOX - * __Note:__ Radeon Super Resolution settings are global for all the supported GPUs. For this event notification, @ref DOX_IADLX3DSettingsChangedEvent_GetGPU returns __nullpr__. - * @ENG_END_DOX - * - *@copydoc IADLX3DSettingsChangedEvent_REQ_TABLE - * - */ - virtual adlx_bool ADLX_STD_CALL IsRadeonSuperResolutionChanged () = 0; - - /** - *@page DOX_IADLX3DSettingsChangedEvent_IsResetShaderCache IsResetShaderCache - *@ENG_START_DOX @brief Checks if shader cache is reset. @ENG_END_DOX - * - *@syntax - *@codeStart - * adlx_bool IsResetShaderCache () - *@codeEnd - * - *@params - *N/A - * - *@retvalues - *@ENG_START_DOX If shader cache settings is reset, __true__ is returned.
- * If shader cache settings is not reset, __false__ is returned.
@ENG_END_DOX - * - * - *@addinfo - *@ENG_START_DOX - * __Note:__ To obtain the GPU, use @ref DOX_IADLX3DSettingsChangedEvent_GetGPU. - * @ENG_END_DOX - * - *@copydoc IADLX3DSettingsChangedEvent_REQ_TABLE - * - */ - virtual adlx_bool ADLX_STD_CALL IsResetShaderCache () = 0; - - }; //IADLX3DSettingsChangedEvent - //---------------------------------------------------------------------------------------------- - typedef IADLXInterfacePtr_T IADLX3DSettingsChangedEventPtr; -} //namespace adlx -#else //__cplusplus -ADLX_DECLARE_IID (IADLX3DSettingsChangedEvent, L"IADLX3DSettingsChangedEvent") -typedef struct IADLX3DSettingsChangedEvent IADLX3DSettingsChangedEvent; - -typedef struct IADLX3DSettingsChangedEventVtbl -{ - //IADLXInterface - adlx_long (ADLX_STD_CALL *Acquire)(IADLX3DSettingsChangedEvent* pThis); - adlx_long (ADLX_STD_CALL *Release)(IADLX3DSettingsChangedEvent* pThis); - ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLX3DSettingsChangedEvent* pThis, const wchar_t* interfaceId, void** ppInterface); - - //IADLXChangedEvent - ADLX_SYNC_ORIGIN(ADLX_STD_CALL* GetOrigin)(IADLX3DSettingsChangedEvent* pThis); - - // IADLX3DSettingsChangedEvent interface - ADLX_RESULT (ADLX_STD_CALL *GetGPU)(IADLX3DSettingsChangedEvent* pThis, IADLXGPU** ppGPU); - adlx_bool (ADLX_STD_CALL *IsAntiLagChanged)(IADLX3DSettingsChangedEvent* pThis); - adlx_bool (ADLX_STD_CALL *IsChillChanged)(IADLX3DSettingsChangedEvent* pThis); - adlx_bool (ADLX_STD_CALL *IsBoostChanged)(IADLX3DSettingsChangedEvent* pThis); - adlx_bool (ADLX_STD_CALL *IsImageSharpeningChanged)(IADLX3DSettingsChangedEvent* pThis); - adlx_bool (ADLX_STD_CALL *IsEnhancedSyncChanged)(IADLX3DSettingsChangedEvent* pThis); - adlx_bool (ADLX_STD_CALL *IsWaitForVerticalRefreshChanged)(IADLX3DSettingsChangedEvent* pThis); - adlx_bool (ADLX_STD_CALL *IsFrameRateTargetControlChanged)(IADLX3DSettingsChangedEvent* pThis); - adlx_bool (ADLX_STD_CALL *IsAntiAliasingChanged)(IADLX3DSettingsChangedEvent* pThis); - adlx_bool (ADLX_STD_CALL *IsMorphologicalAntiAliasingChanged)(IADLX3DSettingsChangedEvent* pThis); - adlx_bool (ADLX_STD_CALL *IsAnisotropicFilteringChanged)(IADLX3DSettingsChangedEvent* pThis); - adlx_bool (ADLX_STD_CALL *IsTessellationModeChanged)(IADLX3DSettingsChangedEvent* pThis); - adlx_bool (ADLX_STD_CALL *IsRadeonSuperResolutionChanged)(IADLX3DSettingsChangedEvent* pThis); - adlx_bool (ADLX_STD_CALL *IsResetShaderCache)(IADLX3DSettingsChangedEvent* pThis); - -} IADLX3DSettingsChangedEventVtbl; - -struct IADLX3DSettingsChangedEvent { const IADLX3DSettingsChangedEventVtbl *pVtbl; }; -#endif //__cplusplus -#pragma endregion IADLX3DSettingsChangedEvent - -//GPU 3D setting changed listener interface. To be implemented in application and passed in IADLX3DSettingsChangedHandling::Add3DSettingEventListener() -#pragma region IADLX3DSettingsChangedListener -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLX3DSettingsChangedListener - { - public: - /** - *@page DOX_IADLX3DSettingsChangedListener_On3DSettingsChanged On3DSettingsChanged - *@ENG_START_DOX @brief __On3DSettingsChanged__ is called by ADLX when 3D Graphics settings change. @ENG_END_DOX - * - *@syntax - *@codeStart - * adlx_bool On3DSettingsChanged (@ref DOX_IADLX3DSettingsChangedEvent* p3DSettingsChangedEvent) - *@codeEnd - * - *@params - *@paramrow{1.,[in] ,p3DSettingsChangedEvent,@ref DOX_IADLX3DSettingsChangedEvent* ,@ENG_START_DOX The pointer to a 3D Graphics settings change event. @ENG_END_DOX} - * - * - *@retvalues - *@ENG_START_DOX If the application requires ADLX to continue notifying the next listener, __true__ must be returned.
- * If the application requires ADLX to stop notifying the next listener, __false__ must be returned.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX Once the application registers to the notifications with @ref DOX_IADLX3DSettingsChangedHandling_Add3DSettingsEventListener, ADLX will call this method until the application unregisters from the notifications with @ref DOX_IADLX3DSettingsChangedHandling_Remove3DSettingsEventListener. - * The method should return quickly to not block the execution path in ADLX. If the method requires a long processing of the event notification, the application must hold onto a reference to the 3D Graphics settings change event with @ref DOX_IADLXInterface_Acquire and make it available on an asynchronous thread and return immediately. When the asynchronous thread is done processing it must discard the 3D Graphics settings change event with @ref DOX_IADLXInterface_Release. @ENG_END_DOX - * - * - *@copydoc IADLX3DSettingsChangedListener_REQ_TABLE - * - */ - virtual adlx_bool ADLX_STD_CALL On3DSettingsChanged (IADLX3DSettingsChangedEvent* p3DSettingsChangedEvent) = 0; - }; //IADLX3DSettingsChangedListener -} //namespace adlx -#else //__cplusplus -typedef struct IADLX3DSettingsChangedListener IADLX3DSettingsChangedListener; - -typedef struct IADLX3DSettingsChangedListenerVtbl -{ - // IADLX3DSettingsChangedListener interface - adlx_bool (ADLX_STD_CALL *On3DSettingsChanged)(IADLX3DSettingsChangedListener* pThis, IADLX3DSettingsChangedEvent* p3DSettingsChangedEvent); - -} IADLX3DSettingsChangedListenerVtbl; - -struct IADLX3DSettingsChangedListener { const IADLX3DSettingsChangedListenerVtbl *pVtbl; }; -#endif //__cplusplus -#pragma endregion IADLX3DSettingsChangedListener - -//Interface that allows registration to 3D settings-related events -#pragma region IADLX3DSettingsChangedHandling -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLX3DSettingsChangedHandling : public IADLXInterface - { - public: - ADLX_DECLARE_IID (L"IADLX3DSettingsChangedHandling") - - /** - *@page DOX_IADLX3DSettingsChangedHandling_Add3DSettingsEventListener Add3DSettingsEventListener - *@ENG_START_DOX @brief Registers an event listener for notifications when 3D Graphics settings change. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT Add3DSettingsEventListener (@ref DOX_IADLX3DSettingsChangedListener* p3DSettingsChangedListener) - *@codeEnd - * - *@params - *@paramrow{1.,[in] ,p3DSettingsChangedListener,@ref DOX_IADLX3DSettingsChangedListener* ,@ENG_START_DOX The pointer to the event listener interface to register for receiving 3D Graphics settings change notifications. @ENG_END_DOX} - * - * - *@retvalues - *@ENG_START_DOX If the event listener is successfully registered, __ADLX_OK__ is returned.
- * If the event listener is not successfully registered, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX After the event listener is successfully registered, ADLX will call @ref DOX_IADLX3DSettingsChangedListener_On3DSettingsChanged method of the listener when 3D Graphics settings change.
- * The event listener instance must exist until the application unregisters the event listener with @ref DOX_IADLX3DSettingsChangedHandling_Remove3DSettingsEventListener.
@ENG_END_DOX - * - * - *@copydoc IADLX3DSettingsChangedHandling_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL Add3DSettingsEventListener (IADLX3DSettingsChangedListener* p3DSettingsChangedListener) = 0; - - /** - *@page DOX_IADLX3DSettingsChangedHandling_Remove3DSettingsEventListener Remove3DSettingsEventListener - *@ENG_START_DOX @brief Unregisters an event listener from 3D Graphics settings event list. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT Remove3DSettingsEventListener (@ref DOX_IADLX3DSettingsChangedListener* p3DSettingsChangedListener) - *@codeEnd - * - *@params - *@paramrow{1.,[in] ,p3DSettingsChangedListener,@ref DOX_IADLX3DSettingsChangedListener* ,@ENG_START_DOX The pointer to the event listener interface to unregister from receiving 3D Graphics settings change notifications. @ENG_END_DOX} - * - * - *@retvalues - *@ENG_START_DOX If the event listener is successfully unregistered, __ADLX_OK__ is returned.
- * If the event listener is not successfully unregistered, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX After the event listener is successfully unregistered, ADLX will no longer call @ref DOX_IADLX3DSettingsChangedListener_On3DSettingsChanged method of the listener when 3D Graphics settings change. - * The application can discard the event listener instance. @ENG_END_DOX - * - * - *@copydoc IADLX3DSettingsChangedHandling_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL Remove3DSettingsEventListener (IADLX3DSettingsChangedListener* p3DSettingsChangedListener) = 0; - - }; //IADLX3DSettingsChangedHandling - //---------------------------------------------------------------------------------------------- - typedef IADLXInterfacePtr_T IADLX3DSettingsChangedHandlingPtr; -} //namespace adlx -#else //__cplusplus -ADLX_DECLARE_IID (IADLX3DSettingsChangedHandling, L"IADLX3DSettingsChangedHandling") -typedef struct IADLX3DSettingsChangedHandling IADLX3DSettingsChangedHandling; - -typedef struct IADLX3DSettingsChangedHandlingVtbl -{ - //IADLXInterface - adlx_long (ADLX_STD_CALL *Acquire)(IADLX3DSettingsChangedHandling* pThis); - adlx_long (ADLX_STD_CALL *Release)(IADLX3DSettingsChangedHandling* pThis); - ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLX3DSettingsChangedHandling* pThis, const wchar_t* interfaceId, void** ppInterface); - - // IADLX3DSettingsChangedHandling interface - ADLX_RESULT (ADLX_STD_CALL *Add3DSettingsEventListener)(IADLX3DSettingsChangedHandling* pThis, IADLX3DSettingsChangedListener* p3DSettingsChangedListener); - ADLX_RESULT (ADLX_STD_CALL *Remove3DSettingsEventListener)(IADLX3DSettingsChangedHandling* pThis, IADLX3DSettingsChangedListener* p3DSettingsChangedListener); - -} IADLX3DSettingsChangedHandlingVtbl; - -struct IADLX3DSettingsChangedHandling { const IADLX3DSettingsChangedHandlingVtbl *pVtbl; }; -#endif //__cplusplus -#pragma endregion IADLX3DSettingsChangedHandling - -//3DSetting Services interface -#pragma region IADLX3DSettingsServices -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLXGPU; - - class ADLX_NO_VTABLE IADLX3DSettingsServices : public IADLXInterface - { - public: - ADLX_DECLARE_IID (L"IADLX3DSettingsServices") - - /** - *@page DOX_IADLX3DSettingsServices_GetAntiLag GetAntiLag - *@ENG_START_DOX @brief Gets the reference-counted AMD Radeon™ Anti-Lag interface of a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetAntiLag (@ref DOX_IADLXGPU* pGPU, @ref DOX_IADLX3DAntiLag** pp3DAntiLag) - *@codeEnd - * - *@params - *@paramrow{1.,[in] ,pGPU,@ref DOX_IADLXGPU* ,@ENG_START_DOX The pointer to the GPU interface. @ENG_END_DOX} - *@paramrow{2.,[out] ,pp3DAntiLag,@ref DOX_IADLX3DAntiLag** ,@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 __*pp3DAntiLag__ to __nullptr__. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the interface is successfully returned, __ADLX_OK__ is returned.
- * If the interface is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX - * - *@addinfo - *@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 - * - *@copydoc IADLX3DSettingsServices_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetAntiLag (IADLXGPU* pGPU, IADLX3DAntiLag** pp3DAntiLag) = 0; - - /** - *@page DOX_IADLX3DSettingsServices_GetChill GetChill - *@ENG_START_DOX @brief Gets the reference-counted AMD Radeon™ Chill interface of a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetChill (@ref DOX_IADLXGPU* pGPU, @ref DOX_IADLX3DChill** pp3DChill) - *@codeEnd - * - *@params - *@paramrow{1.,[in] ,pGPU,@ref DOX_IADLXGPU* ,@ENG_START_DOX The pointer to the GPU interface. @ENG_END_DOX} - *@paramrow{2.,[out] ,pp3DChill,@ref DOX_IADLX3DChill** ,@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 __*pp3DChill__ to __nullptr__. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the interface is successfully returned, __ADLX_OK__ is returned.
- * If the interface is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX - * - *@addinfo - *@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 - * - *@copydoc IADLX3DSettingsServices_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetChill (IADLXGPU* pGPU, IADLX3DChill** pp3DChill) = 0; - - /** - *@page DOX_IADLX3DSettingsServices_GetBoost GetBoost - *@ENG_START_DOX @brief Gets the reference-counted AMD Radeon™ Boost interface of a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetBoost (@ref DOX_IADLXGPU* pGPU, @ref DOX_IADLX3DBoost** pp3DBoost) - *@codeEnd - * - *@params - *@paramrow{1.,[in] ,pGPU,@ref DOX_IADLXGPU* ,@ENG_START_DOX The pointer to the GPU interface. @ENG_END_DOX} - *@paramrow{2.,[out] ,pp3DBoost,@ref DOX_IADLX3DBoost** ,@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 __*pp3DBoost__ to __nullptr__. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the interface is successfully returned, __ADLX_OK__ is returned.
- * If the interface is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX - * - *@addinfo - *@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 - * - *@copydoc IADLX3DSettingsServices_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetBoost (IADLXGPU* pGPU, IADLX3DBoost** pp3DBoost) = 0; - - /** - *@page DOX_IADLX3DSettingsServices_GetImageSharpening GetImageSharpening - *@ENG_START_DOX @brief Gets the reference-counted AMD Radeon Image Sharpening interface of a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetImageSharpening (@ref DOX_IADLXGPU* pGPU, @ref DOX_IADLX3DImageSharpening** pp3DImageSharpening) - *@codeEnd - * - *@params - *@paramrow{1.,[in] ,pGPU,@ref DOX_IADLXGPU* ,@ENG_START_DOX The pointer to the GPU interface. @ENG_END_DOX} - *@paramrow{2.,[out] ,pp3DImageSharpening,@ref DOX_IADLX3DImageSharpening** ,@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 __*pp3DImageSharpening__ to __nullptr__. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the interface is successfully returned, __ADLX_OK__ is returned.
- * If the interface is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX - * - *@addinfo - *@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 - * - *@copydoc IADLX3DSettingsServices_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetImageSharpening (IADLXGPU* pGPU, IADLX3DImageSharpening** pp3DImageSharpening) = 0; - - /** - *@page DOX_IADLX3DSettingsServices_GetEnhancedSync GetEnhancedSync - *@ENG_START_DOX @brief Gets the reference-counted AMD Radeon™ Enhanced Sync interface of a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetEnhancedSync (@ref DOX_IADLXGPU* pGPU, @ref DOX_IADLX3DEnhancedSync** pp3DEnhancedSync) - *@codeEnd - * - *@params - *@paramrow{1.,[in] ,pGPU,@ref DOX_IADLXGPU* ,@ENG_START_DOX The pointer to the GPU interface. @ENG_END_DOX} - *@paramrow{2.,[out] ,pp3DEnhancedSync,@ref DOX_IADLX3DEnhancedSync** ,@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 __*pp3DEnhancedSync__ to __nullptr__. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the interface is successfully returned, __ADLX_OK__ is returned.
- * If the interface is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX - * - *@addinfo - *@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 - * - *@copydoc IADLX3DSettingsServices_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetEnhancedSync (IADLXGPU* pGPU, IADLX3DEnhancedSync** pp3DEnhancedSync) = 0; - - /** - *@page DOX_IADLX3DSettingsServices_GetWaitForVerticalRefresh GetWaitForVerticalRefresh - *@ENG_START_DOX @brief Gets the reference-counted Wait for Vertical Refresh interface of a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetWaitForVerticalRefresh (@ref DOX_IADLXGPU* pGPU, @ref DOX_IADLX3DWaitForVerticalRefresh** pp3DWaitForVerticalRefresh) - *@codeEnd - * - *@params - *@paramrow{1.,[in] ,pGPU,@ref DOX_IADLXGPU* ,@ENG_START_DOX The pointer to the GPU interface. @ENG_END_DOX} - *@paramrow{2.,[out] ,pp3DWaitForVerticalRefresh,@ref DOX_IADLX3DWaitForVerticalRefresh** ,@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 __*pp3DWaitForVerticalRefresh__ to __nullptr__. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the interface is successfully returned, __ADLX_OK__ is returned.
- * If the interface is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX - * - *@addinfo - *@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 - * - *@copydoc IADLX3DSettingsServices_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetWaitForVerticalRefresh (IADLXGPU* pGPU, IADLX3DWaitForVerticalRefresh** pp3DWaitForVerticalRefresh) = 0; - - /** - *@page DOX_IADLX3DSettingsServices_GetFrameRateTargetControl GetFrameRateTargetControl - *@ENG_START_DOX @brief Gets the reference-counted AMD Frame Rate Target Control interface of a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetFrameRateTargetControl (@ref DOX_IADLXGPU* pGPU, @ref DOX_IADLX3DFrameRateTargetControl** pp3DFrameRateTargetControl) - *@codeEnd - * - *@params - *@paramrow{1.,[in] ,pGPU,@ref DOX_IADLXGPU* ,@ENG_START_DOX The pointer to the GPU interface. @ENG_END_DOX} - *@paramrow{2.,[out] ,pp3DFrameRateTargetControl,@ref DOX_IADLX3DFrameRateTargetControl** ,@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 __*pp3DFrameRateTargetControl__ to __nullptr__. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the interface is successfully returned, __ADLX_OK__ is returned.
- * If the interface is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX - * - *@addinfo - *@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 - * - *@copydoc IADLX3DSettingsServices_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetFrameRateTargetControl (IADLXGPU* pGPU, IADLX3DFrameRateTargetControl** pp3DFrameRateTargetControl) = 0; - - /** - *@page DOX_IADLX3DSettingsServices_GetAntiAliasing GetAntiAliasing - *@ENG_START_DOX @brief Gets the reference-counted Anti-Aliasing interface of a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetAntiAliasing (@ref DOX_IADLXGPU* pGPU, @ref DOX_IADLX3DAntiAliasing** pp3DAntiAliasing) - *@codeEnd - * - *@params - *@paramrow{1.,[in] ,pGPU,@ref DOX_IADLXGPU* ,@ENG_START_DOX The pointer to the GPU interface. @ENG_END_DOX} - *@paramrow{2.,[out] ,pp3DAntiAliasing,@ref DOX_IADLX3DAntiAliasing** ,@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 __*pp3DAntiAliasing__ to __nullptr__. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the interface is successfully returned, __ADLX_OK__ is returned.
- * If the interface is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX - * - *@addinfo - *@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 - * - *@copydoc IADLX3DSettingsServices_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetAntiAliasing (IADLXGPU* pGPU, IADLX3DAntiAliasing** pp3DAntiAliasing) = 0; - - /** - *@page DOX_IADLX3DSettingsServices_GetMorphologicalAntiAliasing GetMorphologicalAntiAliasing - *@ENG_START_DOX @brief Gets the reference-counted Morphological Anti-Aliasing interface of a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetMorphologicalAntiAliasing (@ref DOX_IADLXGPU* pGPU, @ref DOX_IADLX3DMorphologicalAntiAliasing** pp3DMorphologicalAntiAliasing) - *@codeEnd - * - *@params - *@paramrow{1.,[in] ,pGPU,@ref DOX_IADLXGPU* ,@ENG_START_DOX The pointer to the GPU interface. @ENG_END_DOX} - *@paramrow{2.,[out] ,pp3DMorphologicalAntiAliasing,@ref DOX_IADLX3DMorphologicalAntiAliasing** ,@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 __*pp3DMorphologicalAntiAliasing__ to __nullptr__. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the interface is successfully returned, __ADLX_OK__ is returned.
- * If the interface is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX - * - *@addinfo - *@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 - * - *@copydoc IADLX3DSettingsServices_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetMorphologicalAntiAliasing (IADLXGPU* pGPU, IADLX3DMorphologicalAntiAliasing** pp3DMorphologicalAntiAliasing) = 0; - - /** - *@page DOX_IADLX3DSettingsServices_GetAnisotropicFiltering GetAnisotropicFiltering - *@ENG_START_DOX @brief Gets the reference-counted Anisotropic Filtering interface of a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetAnisotropicFiltering (@ref DOX_IADLXGPU* pGPU, @ref DOX_IADLX3DAnisotropicFiltering** pp3DAnisotropicFiltering) - *@codeEnd - * - *@params - *@paramrow{1.,[in] ,pGPU,@ref DOX_IADLXGPU* ,@ENG_START_DOX The pointer to the GPU interface. @ENG_END_DOX} - *@paramrow{2.,[out] ,pp3DAnisotropicFiltering,@ref DOX_IADLX3DAnisotropicFiltering** ,@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 __*pp3DAnisotropicFiltering__ to __nullptr__. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the interface is successfully returned, __ADLX_OK__ is returned.
- * If the interface is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX - * - *@addinfo - *@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 - * - *@copydoc IADLX3DSettingsServices_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetAnisotropicFiltering (IADLXGPU* pGPU, IADLX3DAnisotropicFiltering** pp3DAnisotropicFiltering) = 0; - - /** - *@page DOX_IADLX3DSettingsServices_GetTessellation GetTessellation - *@ENG_START_DOX @brief Gets the reference-counted Tessellation interface of a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetTessellation (@ref DOX_IADLXGPU* pGPU, @ref DOX_IADLX3DTessellation** pp3DTessellation) - *@codeEnd - * - *@params - *@paramrow{1.,[in] ,pGPU,@ref DOX_IADLXGPU* ,@ENG_START_DOX The pointer to the GPU interface. @ENG_END_DOX} - *@paramrow{2.,[out] ,pp3DTessellation,@ref DOX_IADLX3DTessellation** ,@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 __*pp3DTessellation__ to __nullptr__. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the interface is successfully returned, __ADLX_OK__ is returned.
- * If the interface is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX - * - *@addinfo - *@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 - * - *@copydoc IADLX3DSettingsServices_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetTessellation (IADLXGPU* pGPU, IADLX3DTessellation** pp3DTessellation) = 0; - - /** - *@page DOX_IADLX3DSettingsServices_GetRadeonSuperResolution GetRadeonSuperResolution - *@ENG_START_DOX @brief Gets the reference-counted Radeon™ Super Resolution interface. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetRadeonSuperResolution (@ref DOX_IADLX3DRadeonSuperResolution** pp3DRadeonSuperResolution) - *@codeEnd - * - *@params - *@paramrow{1.,[out] ,pp3DRadeonSuperResolution,@ref DOX_IADLX3DRadeonSuperResolution** ,@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 __*pp3DRadeonSuperResolution__ to __nullptr__. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the interface is successfully returned, __ADLX_OK__ is returned.
- * If the interface is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX - * - *@addinfo - *@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 - * - *@copydoc IADLX3DSettingsServices_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetRadeonSuperResolution (IADLX3DRadeonSuperResolution** pp3DRadeonSuperResolution) = 0; - - /** - *@page DOX_IADLX3DSettingsServices_GetResetShaderCache GetResetShaderCache - *@ENG_START_DOX @brief Gets the reference-counted Reset Shader Cache interface of a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetResetShaderCache (@ref DOX_IADLXGPU* pGPU, @ref DOX_IADLX3DResetShaderCache** pp3DResetShaderCache) - *@codeEnd - * - *@params - *@paramrow{1.,[in] ,pGPU,@ref DOX_IADLXGPU* ,@ENG_START_DOX The pointer to the GPU interface. @ENG_END_DOX} - *@paramrow{2.,[out] ,pp3DResetShaderCache,@ref DOX_IADLX3DResetShaderCache** ,@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 __*pp3DResetShaderCache__ to __nullptr__. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the interface is successfully returned, __ADLX_OK__ is returned.
- * If the interface is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX - * - *@addinfo - *@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 - * - *@copydoc IADLX3DSettingsServices_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetResetShaderCache (IADLXGPU* pGPU, IADLX3DResetShaderCache** pp3DResetShaderCache) = 0; - - /** - *@page DOX_IADLX3DSettingsServices_Get3DSettingsChangedHandling Get3DSettingsChangedHandling - *@ENG_START_DOX @brief Gets the reference-counted interface that allows registering and unregistering for notifications when 3D Graphics settings change. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT Get3DSettingsChangedHandling (@ref DOX_IADLX3DSettingsChangedHandling** pp3DSettingsChangedHandling) - *@codeEnd - * - *@params - *@paramrow{1.,[out] ,pp3DSettingsChangedHandling,@ref DOX_IADLX3DSettingsChangedHandling** ,@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 __*pp3DSettingsChangedHandling__ to __nullptr__. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the interface is successfully returned, __ADLX_OK__ is returned.
- * If the interface is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX - * - *@addinfo - *@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 - * - *@copydoc IADLX3DSettingsServices_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL Get3DSettingsChangedHandling (IADLX3DSettingsChangedHandling** pp3DSettingsChangedHandling) = 0; - - }; //IADLX3DSettingsServices - //---------------------------------------------------------------------------------------------- - typedef IADLXInterfacePtr_T IADLX3DSettingsServicesPtr; -} //namespace adlx -#else //__cplusplus -ADLX_DECLARE_IID (IADLX3DSettingsServices, L"IADLX3DSettingsServices") -typedef struct IADLX3DSettingsServices IADLX3DSettingsServices; - -typedef struct IADLX3DSettingsServicesVtbl -{ - //IADLXInterface - adlx_long (ADLX_STD_CALL *Acquire)(IADLX3DSettingsServices* pThis); - adlx_long (ADLX_STD_CALL *Release)(IADLX3DSettingsServices* pThis); - ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLX3DSettingsServices* pThis, const wchar_t* interfaceId, void** ppInterface); - - //IADLX3DSettingsServices - ADLX_RESULT (ADLX_STD_CALL *GetAntiLag)(IADLX3DSettingsServices* pThis, IADLXGPU* pGPU, IADLX3DAntiLag** pp3DAntiLag); - ADLX_RESULT (ADLX_STD_CALL *GetChill)(IADLX3DSettingsServices* pThis, IADLXGPU* pGPU, IADLX3DChill** pp3DChill); - ADLX_RESULT (ADLX_STD_CALL *GetBoost)(IADLX3DSettingsServices* pThis, IADLXGPU* pGPU, IADLX3DBoost** pp3DBoost); - ADLX_RESULT (ADLX_STD_CALL *GetImageSharpening)(IADLX3DSettingsServices* pThis, IADLXGPU* pGPU, IADLX3DImageSharpening** pp3DImageSharpening); - ADLX_RESULT (ADLX_STD_CALL *GetEnhancedSync)(IADLX3DSettingsServices* pThis, IADLXGPU* pGPU, IADLX3DEnhancedSync** pp3DEnhancedSync); - ADLX_RESULT (ADLX_STD_CALL *GetWaitForVerticalRefresh)(IADLX3DSettingsServices* pThis, IADLXGPU* pGPU, IADLX3DWaitForVerticalRefresh** pp3DWaitForVerticalRefresh); - ADLX_RESULT (ADLX_STD_CALL *GetFrameRateTargetControl)(IADLX3DSettingsServices* pThis, IADLXGPU* pGPU, IADLX3DFrameRateTargetControl** pp3DFrameRateTargetControl); - ADLX_RESULT (ADLX_STD_CALL *GetAntiAliasing)(IADLX3DSettingsServices* pThis, IADLXGPU* pGPU, IADLX3DAntiAliasing** pp3DAntiAliasing); - ADLX_RESULT (ADLX_STD_CALL *GetMorphologicalAntiAliasing)(IADLX3DSettingsServices* pThis, IADLXGPU* pGPU, IADLX3DMorphologicalAntiAliasing** pp3DMorphologicalAntiAliasing); - ADLX_RESULT (ADLX_STD_CALL *GetAnisotropicFiltering)(IADLX3DSettingsServices* pThis, IADLXGPU* pGPU, IADLX3DAnisotropicFiltering** pp3DAnisotropicFiltering); - ADLX_RESULT (ADLX_STD_CALL *GetTessellation)(IADLX3DSettingsServices* pThis, IADLXGPU* pGPU, IADLX3DTessellation** pp3DTessellation); - ADLX_RESULT (ADLX_STD_CALL *GetRadeonSuperResolution) (IADLX3DSettingsServices* pThis, IADLX3DRadeonSuperResolution** pp3DRadeonSuperResolution); - ADLX_RESULT (ADLX_STD_CALL *GetResetShaderCache)(IADLX3DSettingsServices* pThis, IADLXGPU* pGPU, IADLX3DResetShaderCache** pp3DResetShaderCache); - ADLX_RESULT (ADLX_STD_CALL *Get3DSettingsChangedHandling)(IADLX3DSettingsServices* pThis, IADLX3DSettingsChangedHandling** pp3DSettingsChangedHandling); -}IADLX3DSettingsServicesVtbl; - -struct IADLX3DSettingsServices { const IADLX3DSettingsServicesVtbl *pVtbl; }; -#endif //__cplusplus -#pragma endregion IADLX3DSettingsServices - -#endif //ADLX_I3DSETTINGS_H diff --git a/src/adlx/sdk/Include/IChangedEvent.h b/src/adlx/sdk/Include/IChangedEvent.h deleted file mode 100644 index de2e033..0000000 --- a/src/adlx/sdk/Include/IChangedEvent.h +++ /dev/null @@ -1,71 +0,0 @@ -// -// Copyright (c) 2021 - 2023 Advanced Micro Devices, Inc. All rights reserved. -// -//------------------------------------------------------------------------------------------------- - -#ifndef ADLX_CHANGEDE_EVENT_H -#define ADLX_CHANGEDE_EVENT_H -#pragma once - -#include "ADLXDefines.h" - -#pragma region IADLXChangedEvent -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLXChangedEvent : public IADLXInterface - { - public: - ADLX_DECLARE_IID(L"IADLXChangedEvent") - - /** - *@page DOX_IADLXChangedEvent_GetOrigin GetOrigin - *@ENG_START_DOX @brief Gets the origin of an event. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_SYNC_ORIGIN GetOrigin () - *@codeEnd - * - *@params - *N/A - * - *@retvalues - *@ENG_START_DOX - * If the event is triggered by a change in settings using ADLX in this application, __SYNC_ORIGIN_INTERNAL__ is returned.
- * If the event is triggered by a change in settings using ADLX in another application, __SYNC_ORIGIN_EXTERNAL__ is returned.
- * If the event has an unknown trigger, __SYNC_ORIGIN_UNKNOWN__ is returned.
- *@ENG_END_DOX - * - *@copydoc IADLXChangedEvent_REQ_TABLE - * - */ - virtual ADLX_SYNC_ORIGIN ADLX_STD_CALL GetOrigin() = 0; - }; //IADLXList - //---------------------------------------------------------------------------------------------- - typedef IADLXInterfacePtr_T IADLXChangedEventPtr; -} // namespace adlx -#else -ADLX_DECLARE_IID(IADLXChangedEvent, L"IADLXChangedEvent") -typedef struct IADLXChangedEvent IADLXChangedEvent; -typedef struct IADLXChangedEventVtbl -{ - //IADLXInterface - adlx_long(ADLX_STD_CALL* Acquire)(IADLXChangedEvent* pThis); - adlx_long(ADLX_STD_CALL* Release)(IADLXChangedEvent* pThis); - ADLX_RESULT(ADLX_STD_CALL* QueryInterface)(IADLXChangedEvent* pThis, const wchar_t* interfaceId, void** ppInterface); - - //IADLXChangedEvent - ADLX_SYNC_ORIGIN(ADLX_STD_CALL* GetOrigin)(IADLXChangedEvent* pThis); - -}IADLXChangedEventVtbl; - -struct IADLXChangedEvent -{ - const IADLXChangedEventVtbl* pVtbl; -}; - -#endif -#pragma endregion IADLXChangedEvent - -#endif //ADLX_CHANGEDE_EVENT_H \ No newline at end of file diff --git a/src/adlx/sdk/Include/ICollections.h b/src/adlx/sdk/Include/ICollections.h deleted file mode 100644 index 52282d9..0000000 --- a/src/adlx/sdk/Include/ICollections.h +++ /dev/null @@ -1,325 +0,0 @@ -// -// Copyright (c) 2021 - 2023 Advanced Micro Devices, Inc. All rights reserved. -// -//------------------------------------------------------------------------------------------------- - -#ifndef ADLX_ICOLLECTIONS_H -#define ADLX_ICOLLECTIONS_H -#pragma once - -#include "ADLXDefines.h" - -//------------------------------------------------------------------------------------------------- -//ICollections.h - Interfaces for ADLX collections - -// These interfaces are used when ADLX returns or receives many-of collections - -//IADLXList allows iterating forward in a collection of objects, similar with an stl vector -#pragma region IADLXList interface -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLXList : public IADLXInterface - { - public: - ADLX_DECLARE_IID (L"IADLXList") - //Lists must declare the type of items it holds - what was passed as ADLX_DECLARE_IID() in that interface - ADLX_DECLARE_ITEM_IID (L"IADLXInterface") - - /** - @page DOX_IADLXList_Size Size - @ENG_START_DOX - @brief Returns the number of interfaces in a list. - @ENG_END_DOX - - @syntax - @codeStart - adlx_uint Size () - @codeEnd - - @params - - N/A - - @retvalues - @ENG_START_DOX - Returns the number of interfaces in the list. - @ENG_END_DOX - - @detaileddesc - @ENG_START_DOX - @details Returns the number of interfaces in the list.
- - Returns zero if the list is empty. - - @ENG_END_DOX - - @copydoc IADLXList_REQ_TABLE - - */ - virtual adlx_uint ADLX_STD_CALL Size () = 0; - /** - @page DOX_IADLXList_Empty Empty - @ENG_START_DOX - @brief Checks if the list is empty. - @ENG_END_DOX - - @syntax - @codeStart - adlx_bool Empty () - @codeEnd - - @params - - N/A - - @retvalues - @ENG_START_DOX - If the list is empty, __true__ is returned.
- If the list is not empty, __false__ is returned.
- @ENG_END_DOX - - @detaileddesc - @ENG_START_DOX - @details If the list has no interfaces, then @ref DOX_IADLXList_Size will return zero, and __Empty__ will return __true__. - @ENG_END_DOX - - @copydoc IADLXList_REQ_TABLE - - */ - virtual adlx_bool ADLX_STD_CALL Empty () = 0; - - /** - @page DOX_IADLXList_Begin Begin - @ENG_START_DOX - @brief Returns the location of the first interface from a list. - @ENG_END_DOX - - @syntax - @codeStart - adlx_uint Begin () - @codeEnd - - @params - - N/A - - @retvalues - @ENG_START_DOX - If the list is not empty it returns the location of the first interface in the list.
- If the list is empty the returned location is same as the location returned by @ref DOX_IADLXList_End.
- @ENG_END_DOX - - @detaileddesc - @ENG_START_DOX - @details The returned location is valid if it is less than the location returned by @ref DOX_IADLXList_End. - The __Begin__ is used in combination with @ref DOX_IADLXList_End for parsing the list sequentially from the beginning to the end.
- If the list is empty, __Begin__ and @ref DOX_IADLXList_End return the same location. - @ENG_END_DOX - @image html list.png height=150 - @snippetCode - @snippet ADLXSnippet.h Iterate ADLXList - - @copydoc IADLXList_REQ_TABLE - - */ - virtual adlx_uint ADLX_STD_CALL Begin () = 0; - /** - @page DOX_IADLXList_End End - @ENG_START_DOX - @brief Returns the location succeeding the last interface from a list. - @ENG_END_DOX - - @syntax - @codeStart - adlx_uint End () - @codeEnd - - @params - - N/A - - @retvalues - @ENG_START_DOX - Returns the location succeeding the last interface from a list. - @ENG_END_DOX - - @detaileddesc - @ENG_START_DOX - @details The returned location is a logical representation of the end of the list. It does not hold any valid interface and should not be dereferenced.
- __End__ is used in combination with @ref DOX_IADLXList_Begin for parsing the list sequentially from the beginning to the end.
- If the list is empty, then @ref DOX_IADLXList_Begin and __End__ return the same location. - - @ENG_END_DOX - @image html list.png height=150 - @snippetCode - @snippet ADLXSnippet.h Iterate ADLXList - - @copydoc IADLXList_REQ_TABLE - - */ - virtual adlx_uint ADLX_STD_CALL End () = 0; - - /** - @page DOX_IADLXList_At At - @ENG_START_DOX - @brief Returns the reference counted interface from the requested location. - @ENG_END_DOX - - @syntax - @codeStart - @ref ADLX_RESULT At (const adlx_uint location, @ref DOX_IADLXInterface** ppItem) - @codeEnd - - @params - @paramrow{1.,[in] ,location,const adlx_uint,@ENG_START_DOX The location of the returned interface. @ENG_END_DOX} - @paramrow{2.,[out] ,ppItem,@ref DOX_IADLXInterface**,@ENG_START_DOX The address of a pointer to the returned interface. If the interface is not successfully returned\, the method sets dereferenced address __*ppItem__ to __nullptr__. @ENG_END_DOX} - - @retvalues - @ENG_START_DOX - If the location is within the list bounds, __ADLX_OK__ is returned.
- If the location is not within the list bounds, an error code is returned.
- Refer to @ref ADLX_RESULT for success codes and error codes. - - @ENG_END_DOX - - @detaileddesc - @ENG_START_DOX - @details @ref DOX_IADLXList is a collection of interfaces which runs incrementally from beginning to the end.
The returned interface must be discarded with @ref DOX_IADLXInterface_Release when no longer needed. - @ENG_END_DOX - @addinfo - @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 - - @copydoc IADLXList_REQ_TABLE - - */ - virtual ADLX_RESULT ADLX_STD_CALL At (const adlx_uint location, IADLXInterface** ppItem) = 0; - - /** - @page DOX_IADLXList_Clear Clear - @ENG_START_DOX - @brief Removes all the interfaces from a list. - @ENG_END_DOX - - @syntax - @codeStart - @ref ADLX_RESULT Clear () - @codeEnd - - @params - - N/A - - @retvalues - @ENG_START_DOX - If all the interfaces from the list are successfully removed, __ADLX_OK__ is returned.
- If interfaces from the list are not successfully removed, an error code is returned.
- Refer to @ref ADLX_RESULT for success codes and error codes. - - @ENG_END_DOX - - @detaileddesc - @ENG_START_DOX - @details After this call returns successfully, @ref DOX_IADLXList_Size returns zero. - @ENG_END_DOX - - @copydoc IADLXList_REQ_TABLE - - */ - virtual ADLX_RESULT ADLX_STD_CALL Clear () = 0; - /** - @page DOX_IADLXList_Remove_Back Remove_Back - @ENG_START_DOX - @brief Removes an interface from the end of a list. - @ENG_END_DOX - - @syntax - @codeStart - @ref ADLX_RESULT Remove_Back () - @codeEnd - - @params - - N/A - - @retvalues - @ENG_START_DOX - If the interface from the end of the list is successfully removed, __ADLX_OK__ is returned.
- If the interface from the end of the list is not successfully removed, an error code is returned.
- Refer to @ref ADLX_RESULT for success codes and error codes. - - @ENG_END_DOX - - @detaileddesc - @ENG_START_DOX - @details Removes an interface from the end of the list. The list must not be empty. - @ENG_END_DOX - - @copydoc IADLXList_REQ_TABLE - - */ - virtual ADLX_RESULT ADLX_STD_CALL Remove_Back () = 0; - /** - @page DOX_IADLXList_Add_Back Add_Back - @ENG_START_DOX - @brief Adds an interface to the end of a list. - @ENG_END_DOX - - @syntax - @codeStart - @ref ADLX_RESULT Add_Back (@ref DOX_IADLXInterface* pItem) - @codeEnd - - @params - @paramrow{1.,[in] ,pItem,@ref DOX_IADLXInterface*,@ENG_START_DOX The pointer to the interface to be added to the list. @ENG_END_DOX} - - @retvalues - @ENG_START_DOX - If the interface is added successfully to the end of the list, __ADLX_OK__ is returned.
- If the interface is not added to the end of the list, an error code is returned.
- Refer to @ref ADLX_RESULT for success codes and error codes. - - @ENG_END_DOX - - - @copydoc IADLXList_REQ_TABLE - - */ - virtual ADLX_RESULT ADLX_STD_CALL Add_Back (IADLXInterface* pItem) = 0; - }; //IADLXList - //---------------------------------------------------------------------------------------------- - typedef IADLXInterfacePtr_T IADLXListPtr; -} // namespace adlx -#else -ADLX_DECLARE_IID (IADLXList, L"IADLXList") -ADLX_DECLARE_ITEM_IID (IADLXInterface, L"IADLXInterface") -typedef struct IADLXList IADLXList; -typedef struct IADLXListVtbl -{ - //IADLXInterface - adlx_long (ADLX_STD_CALL *Acquire)(IADLXList* pThis); - adlx_long (ADLX_STD_CALL *Release)(IADLXList* pThis); - ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLXList* pThis, const wchar_t* interfaceId, void** ppInterface); - - //IADLXList - adlx_uint (ADLX_STD_CALL *Size)(IADLXList* pThis); - adlx_bool (ADLX_STD_CALL *Empty)(IADLXList* pThis); - adlx_uint (ADLX_STD_CALL *Begin)(IADLXList* pThis); - adlx_uint (ADLX_STD_CALL *End)(IADLXList* pThis); - ADLX_RESULT (ADLX_STD_CALL *At)(IADLXList* pThis, const adlx_uint location, IADLXInterface** ppItem); - ADLX_RESULT (ADLX_STD_CALL *Clear)(IADLXList* pThis); - ADLX_RESULT (ADLX_STD_CALL *Remove_Back)(IADLXList* pThis); - ADLX_RESULT (ADLX_STD_CALL *Add_Back)(IADLXList* pThis, IADLXInterface* pItem); -}IADLXListVtbl; - -struct IADLXList -{ - const IADLXListVtbl *pVtbl; -}; - -#endif -#pragma endregion IADLXList interface - -#endif//ADLX_ICOLLECTIONS_H diff --git a/src/adlx/sdk/Include/IDesktops.h b/src/adlx/sdk/Include/IDesktops.h deleted file mode 100644 index b718c27..0000000 --- a/src/adlx/sdk/Include/IDesktops.h +++ /dev/null @@ -1,918 +0,0 @@ -// -// Copyright (c) 2021 - 2023 Advanced Micro Devices, Inc. All rights reserved. -// -//------------------------------------------------------------------------------------------------- - -#ifndef ADLX_IDESKTOPS_H -#define ADLX_IDESKTOPS_H -#pragma once - -#include "ADLXStructures.h" -#include "ICollections.h" - -//------------------------------------------------------------------------------------------------- -//IDesktops.h - Interfaces for ADLX Desktops functionality, including AMD Eyefinity - -//Desktop interface: Describe a generic desktop -#pragma region IADLXDesktop -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLXDisplayList; - class ADLX_NO_VTABLE IADLXDesktop : public IADLXInterface - { - public: - ADLX_DECLARE_IID (L"IADLXDesktop") - /** - *@page DOX_IADLXDesktop_Orientation Orientation - *@ENG_START_DOX @brief Gets the orientation of a desktop. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT Orientation (@ref ADLX_ORIENTATION* orientation) - *@codeEnd - * - *@params - *@paramrow{1.,[out] ,orientation,@ref ADLX_ORIENTATION* ,@ENG_START_DOX The pointer to a variable where the orientation is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the orientation is successfully returned, __ADLX_OK__ is returned.
- * If the orientation is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The desktop orientation indicates the rotation angle of the desktop.
@ENG_END_DOX - * - *@copydoc IADLXDesktop_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL Orientation (ADLX_ORIENTATION* orientation) = 0; - /** - *@page DOX_IADLXDesktop_Size Size - *@ENG_START_DOX @brief Gets the size of a desktop. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT Size (adlx_int* width, adlx_int* height) - *@codeEnd - * - *@params - *@paramrow{1.,[out] ,width,adlx_int* ,@ENG_START_DOX The pointer to a variable where the width is returned. @ENG_END_DOX} - *@paramrow{2.,[out] ,height,adlx_int* ,@ENG_START_DOX The pointer to a variable where the height is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the width and height are successfully returned, __ADLX_OK__ is returned.
- * If the width and height are not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The desktop size represents the pixel resolution of the desktop. - * @ENG_END_DOX - * - *@copydoc IADLXDesktop_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL Size (adlx_int* width, adlx_int* height) = 0; - /** - *@page DOX_IADLXDesktop_TopLeft TopLeft - *@ENG_START_DOX @brief Get the top left position of a desktop in Windows screen coordinates. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT TopLeft (@ref ADLX_Point* locationTopLeft) - *@codeEnd - * - *@params - *@paramrow{1.,[out] ,locationTopLeft,@ref ADLX_Point* ,@ENG_START_DOX The pointer to a variable where the top left position is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the top left position is successfully returned, __ADLX_OK__ is returned.
- * If the top left position is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The desktop top left position is measured in screen coordinates.
@ENG_END_DOX - * - *@copydoc IADLXDesktop_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL TopLeft (ADLX_Point* locationTopLeft) = 0; - /** - *@page DOX_IADLXDesktop_Type Type - *@ENG_START_DOX @brief Get the type of a desktop. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT Type (@ref ADLX_DESKTOP_TYPE* desktopType) - *@codeEnd - * - *@params - *@paramrow{1.,[out] ,desktopType,@ref ADLX_DESKTOP_TYPE* ,@ENG_START_DOX The pointer to a variable where the desktop type is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the desktop type is successfully returned, __ADLX_OK__ is returned.
- * If the desktop type is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The desktop type indicates if the desktop is single, duplicate or AMD Eyefinity.
@ENG_END_DOX - * - *@copydoc IADLXDesktop_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL Type (ADLX_DESKTOP_TYPE* desktopType) = 0; - /** - *@page DOX_IADLXDesktop_GetNumberOfDisplays GetNumberOfDisplays - *@ENG_START_DOX @brief Gets the number of displays that show pixels from a desktop. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetNumberOfDisplays (adlx_uint* numDisplays) - *@codeEnd - * - *@params - *@paramrow{1.,[out] ,numDisplays,adlx_uint* ,@ENG_START_DOX The pointer to a variable where the number of displays is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the number of displays is successfully returned, __ADLX_OK__ is returned.
- * If the number of displays is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details - * The number of displays that show pixels from a desktop depends on the desktop @ref ADLX_DESKTOP_TYPE "Type".
- * A single desktop is associated with one display.
- * A duplicate desktop is associated with two or more displays.
- * An AMD Eyefinity desktop is associated with two or more displays.
@ENG_END_DOX - * - *@copydoc IADLXDesktop_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetNumberOfDisplays (adlx_uint* numDisplays) = 0; - /** - *@page DOX_IADLXDesktop_GetDisplays GetDisplays - *@ENG_START_DOX @brief Gets the reference counted list of displays that show pixels from a desktop. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetDisplays (@ref DOX_IADLXDisplayList** ppDisplays) - *@codeEnd - * - *@params - *@paramrow{1.,[out] ,ppDisplays,@ref DOX_IADLXDisplayList** ,@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 __*ppDisplays__ to __nullptr__. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the list of displays is successfully returned, __ADLX_OK__ is returned.
- * If the list of displays is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX - * - *@addinfo - *@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 - * - *@copydoc IADLXDesktop_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetDisplays (IADLXDisplayList** ppDisplays) = 0; - }; //IADLXDesktop - //---------------------------------------------------------------------------------------------- - typedef IADLXInterfacePtr_T IADLXDesktopPtr; -} //namespace adlx -#else //__cplusplus -ADLX_DECLARE_IID (IADLXDesktop, L"IADLXDesktop") -typedef struct IADLXDesktop IADLXDesktop; -typedef struct IADLXDisplayList IADLXDisplayList; -typedef struct IADLXDesktopVtbl -{ - //IADLXInterface - adlx_long (ADLX_STD_CALL *Acquire)(IADLXDesktop* pThis); - adlx_long (ADLX_STD_CALL *Release)(IADLXDesktop* pThis); - ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLXDesktop* pThis, const wchar_t* interfaceId, void** ppInterface); - - //IADLXDesktop - ADLX_RESULT (ADLX_STD_CALL *Orientation) (IADLXDesktop* pThis, ADLX_ORIENTATION* orientation); - ADLX_RESULT (ADLX_STD_CALL *Size) (IADLXDesktop* pThis, adlx_int* width, adlx_int* height); - ADLX_RESULT (ADLX_STD_CALL *TopLeft) (IADLXDesktop* pThis, ADLX_Point* locationTopLeft); - ADLX_RESULT (ADLX_STD_CALL *Type) (IADLXDesktop* pThis, ADLX_DESKTOP_TYPE* desktopType); - ADLX_RESULT (ADLX_STD_CALL *GetNumberOfDisplays) (IADLXDesktop* pThis, adlx_uint* numDisplays); - ADLX_RESULT (ADLX_STD_CALL *GetDisplays) (IADLXDesktop* pThis, IADLXDisplayList** ppDisplays); -}IADLXDesktopVtbl; -struct IADLXDesktop { const IADLXDesktopVtbl *pVtbl; }; -#endif //__cplusplus -#pragma endregion IADLXDesktop - - -//AMD Eyefinity Desktop interface: describe and AMD Eyefinity desktop -#pragma region IADLXEyefinityDesktop -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLXDisplay; - class ADLX_NO_VTABLE IADLXEyefinityDesktop : public IADLXInterface - { - public: - ADLX_DECLARE_IID (L"IADLXEyefinityDesktop") - /** - *@page DOX_IADLXEyefinityDesktop_GridSize GridSize - *@ENG_START_DOX @brief Gets the number of rows and columns that describes the display composition of an AMD Eyefinity desktop. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GridSize (adlx_uint* rows, adlx_uint* cols) - *@codeEnd - * - *@params - *@paramrow{1.,[out] ,rows,adlx_uint* ,@ENG_START_DOX The pointer to a variable where the number of rows is returned. @ENG_END_DOX} - *@paramrow{2.,[out] ,cols,adlx_uint* ,@ENG_START_DOX The pointer to a variable where the number of cols is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the number of rows and cols are successfully returned, __ADLX_OK__ is returned.
- * If the number of rows and cols are not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The grid location of an AMD Eyefinity desktop is identified by a row and a column from zero to the respective value returned from this method minus one. @ENG_END_DOX - * - *@copydoc IADLXEyefinityDesktop_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GridSize (adlx_uint* rows, adlx_uint* cols) = 0; - /** - *@page DOX_IADLXEyefinityDesktop_GetDisplay GetDisplay - *@ENG_START_DOX @brief Gets the reference counted display interface for the display that shows the portion of an AMD Eyefinity desktop at the requested grid location. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetDisplay (adlx_uint row, adlx_uint col, @ref DOX_IADLXDisplay** ppDisplay) - *@codeEnd - * - *@params - *@paramrow{1.,[in] ,row,adlx_uint ,@ENG_START_DOX The row of the AMD Eyefinity grid location for the requested display. @ENG_END_DOX} - *@paramrow{2.,[in] ,col,adlx_uint ,@ENG_START_DOX The column of the AMD Eyefinity grid location for the requested display. @ENG_END_DOX} - *@paramrow{3.,[out] ,ppDisplay,@ref DOX_IADLXDisplay** ,@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 __*ppDisplay__ to __nullptr__. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the interface is successfully returned, __ADLX_OK__ is returned.
- * If the interface is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX - * - *@addinfo - *@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 - * - *@copydoc IADLXEyefinityDesktop_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetDisplay (adlx_uint row, adlx_uint col, IADLXDisplay** ppDisplay) = 0; - /** - *@page DOX_IADLXEyefinityDesktop_DisplayOrientation DisplayOrientation - *@ENG_START_DOX @brief Gets the orientation of the display area on an AMD Eyefinity desktop at a given grid location. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT DisplayOrientation (adlx_uint row, adlx_uint col, @ref ADLX_ORIENTATION* displayOrientation) - *@codeEnd - * - *@params - *@paramrow{1.,[in] ,row,adlx_uint ,@ENG_START_DOX The row of the AMD Eyefinity grid location for the requested display. @ENG_END_DOX} - *@paramrow{2.,[in] ,col,adlx_uint ,@ENG_START_DOX The column of the AMD Eyefinity grid location for the requested display. @ENG_END_DOX} - *@paramrow{3.,[out] ,displayOrientation,@ref ADLX_ORIENTATION* ,@ENG_START_DOX The pointer to a variable where the display orientation is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the display orientation is successfully returned, __ADLX_OK__ is returned.
- * If the display orientation is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The display orientation indicates the rotation angle of the display area on an AMD Eyefinity desktop. @ENG_END_DOX - * - *@copydoc IADLXEyefinityDesktop_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL DisplayOrientation (adlx_uint row, adlx_uint col, ADLX_ORIENTATION* displayOrientation) = 0; - /** - *@page DOX_IADLXEyefinityDesktop_DisplaySize DisplaySize - *@ENG_START_DOX @brief Gets the size of the display area on an AMD Eyefinity desktop at a given grid location. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT DisplaySize (adlx_uint row, adlx_uint col, adlx_int* displayWidth, adlx_int* displayHeight) - *@codeEnd - * - *@params - *@paramrow{1.,[in] ,row,adlx_uint ,@ENG_START_DOX The row of the AMD Eyefinity grid location for the requested display. @ENG_END_DOX} - *@paramrow{2.,[in] ,col,adlx_uint ,@ENG_START_DOX The column of the AMD Eyefinity grid location for the requested display. @ENG_END_DOX} - *@paramrow{3.,[out] ,displayWidth,adlx_int* ,@ENG_START_DOX The pointer to a variable where the display width is returned. @ENG_END_DOX} - *@paramrow{4.,[out] ,displayHeight,adlx_int* ,@ENG_START_DOX The pointer to a variable where the display height is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the display size is successfully returned, __ADLX_OK__ is returned.
- * If the display size is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The display size represents the pixel resolution of the dispay area in an AMD Eyefinity desktop. - * @ENG_END_DOX - * - *@copydoc IADLXEyefinityDesktop_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL DisplaySize (adlx_uint row, adlx_uint col, adlx_int* displayWidth, adlx_int* displayHeight) = 0; - /** - *@page DOX_IADLXEyefinityDesktop_DisplayTopLeft DisplayTopLeft - *@ENG_START_DOX @brief Gets the top left position of the display area on an AMD Eyefinity desktop at a given grid location. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT DisplayTopLeft (adlx_uint row, adlx_uint col, @ref ADLX_Point* displayLocationTopLeft) - *@codeEnd - * - *@params - *@paramrow{1.,[in] ,row,adlx_uint ,@ENG_START_DOX The row of the AMD Eyefinity grid location for the requested display. @ENG_END_DOX} - *@paramrow{2.,[in] ,col,adlx_uint ,@ENG_START_DOX The column of the AMD Eyefinity grid location for the requested display. @ENG_END_DOX} - *@paramrow{3.,[out] ,displayLocationTopLeft,@ref ADLX_Point* ,@ENG_START_DOX The pointer to a variable where the top left position is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the top left position is successfully returned, __ADLX_OK__ is returned.
- * If the top left position is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The top left position is relative to the desktop's top left position. - * @ENG_END_DOX - * - *@copydoc IADLXEyefinityDesktop_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL DisplayTopLeft (adlx_uint row, adlx_uint col, ADLX_Point* displayLocationTopLeft) = 0; - }; //IADLXEyefinityDesktop - //---------------------------------------------------------------------------------------------- - typedef IADLXInterfacePtr_T IADLXEyefinityDesktopPtr; -} //namespace adlx -#else //__cplusplus -ADLX_DECLARE_IID (IADLXEyefinityDesktop, L"IADLXEyefinityDesktop") -typedef struct IADLXEyefinityDesktop IADLXEyefinityDesktop; -typedef struct IADLXDisplay IADLXDisplay; -typedef struct IADLXDisplayList IADLXDisplayList; -typedef struct IADLXEyefinityDesktopVtbl -{ - //IADLXInterface - adlx_long (ADLX_STD_CALL *Acquire)(IADLXEyefinityDesktop* pThis); - adlx_long (ADLX_STD_CALL *Release)(IADLXEyefinityDesktop* pThis); - ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLXEyefinityDesktop* pThis, const wchar_t* interfaceId, void** ppInterface); - - //IADLXEyefinityDesktop - ADLX_RESULT (ADLX_STD_CALL *GridSize) (IADLXEyefinityDesktop* pThis, adlx_uint* rows, adlx_uint* cols); - ADLX_RESULT (ADLX_STD_CALL *GetDisplay) (IADLXEyefinityDesktop* pThis, adlx_uint row, adlx_uint col, IADLXDisplay** ppDisplay); - ADLX_RESULT (ADLX_STD_CALL *DisplayOrientation) (IADLXEyefinityDesktop* pThis, adlx_uint row, adlx_uint col, ADLX_ORIENTATION* displayOrientation); - ADLX_RESULT (ADLX_STD_CALL *DisplaySize) (IADLXEyefinityDesktop* pThis, adlx_uint row, adlx_uint col, adlx_int* displayWidth, adlx_int* displayHeight); - ADLX_RESULT (ADLX_STD_CALL *DisplayTopLeft) (IADLXEyefinityDesktop* pThis, adlx_uint row, adlx_uint col, ADLX_Point* displayLocationTopLeft); -}IADLXEyefinityDesktopVtbl; -struct IADLXEyefinityDesktop { const IADLXEyefinityDesktopVtbl *pVtbl; }; -#endif //__cplusplus -#pragma endregion IADLXEyefinityDesktop - - -//Desktops list interface: List for IADLXDesktop items -#pragma region IADLXDesktopList -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLXDesktopList : public IADLXList - { - public: - ADLX_DECLARE_IID (L"IADLXDesktopList") - //Lists must declare the type of items it holds - what was passed as ADLX_DECLARE_IID() in that interface - ADLX_DECLARE_ITEM_IID (IADLXDesktop::IID ()) - /** - * @page DOX_IADLXDesktopList_At At - * @ENG_START_DOX - * @brief Returns the reference counted interface at the requested location. - * @ENG_END_DOX - * - * @syntax - * @codeStart - * @ref ADLX_RESULT At (const adlx_uint location, @ref DOX_IADLXDesktop** ppItem) - * @codeEnd - * - * @params - * @paramrow{1.,[in] ,location,const adlx_uint ,@ENG_START_DOX The location of the requested interface. @ENG_END_DOX} - * @paramrow{2.,[out] ,ppItem,@ref DOX_IADLXDesktop** ,@ENG_START_DOX The address of a pointer to the returned interface. If the interface is not successfully returned then the method sets the dereferenced address __*ppItem__ to __nullptr__. @ENG_END_DOX} - * - * @retvalues - * @ENG_START_DOX - * If the location is within the list bounds, __ADLX_OK__ is returned.
- * If the location is not within the list bounds, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
- * @ENG_END_DOX - * - * @detaileddesc - * @ENG_START_DOX - * @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. - * @ENG_END_DOX - * - * @addinfo - * @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 - * - * @copydoc IADLXDesktopList_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL At (const adlx_uint location, IADLXDesktop** ppItem) = 0; - /** - *@page DOX_IADLXDesktopList_Add_Back Add_Back - *@ENG_START_DOX @brief Adds an interface to the end of a list. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT Add_Back (@ref DOX_IADLXDesktop* pItem) - *@codeEnd - * - *@params - *@paramrow{1.,[in] ,pItem,@ref DOX_IADLXDesktop* ,@ENG_START_DOX The pointer to the interface to be added to the list. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the interface is added successfully to the end of the list, __ADLX_OK__ is returned.
- * If the interface is not added to the end of the list, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details @ENG_END_DOX - * - *@copydoc IADLXDesktopList_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL Add_Back (IADLXDesktop* pItem) = 0; - }; //IADLXDisplayList - //---------------------------------------------------------------------------------------------- - typedef IADLXInterfacePtr_T IADLXDesktopListPtr; -} //namespace adlx -#else //__cplusplus -ADLX_DECLARE_IID (IADLXDesktopList, L"IADLXDesktopList") -ADLX_DECLARE_ITEM_IID (IADLXDesktop, IID_IADLXDesktop ()) - -typedef struct IADLXDesktopList IADLXDesktopList; -typedef struct IADLXDesktopListVtbl -{ - //IADLXInterface - adlx_long (ADLX_STD_CALL *Acquire)(IADLXDesktopList* pThis); - adlx_long (ADLX_STD_CALL *Release)(IADLXDesktopList* pThis); - ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLXDesktopList* pThis, const wchar_t* interfaceId, void** ppInterface); - - //IADLXList - adlx_uint (ADLX_STD_CALL *Size)(IADLXDesktopList* pThis); - adlx_bool (ADLX_STD_CALL *Empty)(IADLXDesktopList* pThis); - adlx_uint (ADLX_STD_CALL *Begin)(IADLXDesktopList* pThis); - adlx_uint (ADLX_STD_CALL *End)(IADLXDesktopList* pThis); - ADLX_RESULT (ADLX_STD_CALL *At)(IADLXDesktopList* pThis, const adlx_uint location, IADLXInterface** ppItem); - ADLX_RESULT (ADLX_STD_CALL *Clear)(IADLXDesktopList* pThis); - ADLX_RESULT (ADLX_STD_CALL *Remove_Back)(IADLXDesktopList* pThis); - ADLX_RESULT (ADLX_STD_CALL *Add_Back)(IADLXDesktopList* pThis, IADLXInterface* pItem); - - //IADLXDesktopList - ADLX_RESULT (ADLX_STD_CALL *At_DesktopList)(IADLXDesktopList* pThis, const adlx_uint location, IADLXDesktop** ppItem); - ADLX_RESULT (ADLX_STD_CALL *Add_Back_DesktopList)(IADLXDesktopList* pThis, IADLXDesktop* pItem); - -}IADLXDesktopListVtbl; - -struct IADLXDesktopList { const IADLXDesktopListVtbl *pVtbl; }; -#endif //__cplusplus -#pragma endregion IADLXDesktopList - -//Desktop List changed listener interface. To be implemented in application and passed in IADLXDesktopChangedHandling::AddDesktopListEventListener() -#pragma region IADLXDesktopListChangedListener -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLXDesktopListChangedListener - { - public: - /** - *@page DOX_IADLXDesktopListChangedListener_OnDesktopListChanged OnDesktopListChanged - *@ENG_START_DOX @brief The __OnDesktopsListChanged__ is called by ADLX when the desktop list changes. @ENG_END_DOX - * - *@syntax - *@codeStart - * adlx_bool OnDesktopListChanged (@ref DOX_IADLXDesktopList* pNewDesktop) - *@codeEnd - * - *@params - *@paramrow{1.,[out] ,pNewDesktop,@ref DOX_IADLXDesktopList* ,@ENG_START_DOX The pointer to the new desktop list. @ENG_END_DOX} - * - * - *@retvalues - *@ENG_START_DOX If the application requires ADLX to continue notifying the next listener, __true__ must be returned.
- * If the application requires ADLX to stop notifying the next listener, __false__ must be returned.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX Once the application registers to the notifications with @ref DOX_IADLXDesktopChangedHandling_AddDesktopListEventListener, ADLX will call this method until the application unregisters from the notifications with @ref DOX_IADLXDesktopChangedHandling_RemoveDesktopListEventListener.
- * The method should return quickly to not block the execution path in ADLX. If the method requires a long processing of the event notification, the application must hold onto a reference to the new desktop list with @ref DOX_IADLXInterface_Acquire and make it available on an asynchronous thread and return immediately. When the asynchronous thread is done processing it must discard the new desktop list with @ref DOX_IADLXInterface_Release.
@ENG_END_DOX - * - * - *@copydoc IADLXDesktopListChangedListener_REQ_TABLE - * - */ - virtual adlx_bool ADLX_STD_CALL OnDesktopListChanged (IADLXDesktopList* pNewDesktop) = 0; - }; //IADLXDesktopListChangedListener -} //namespace adlx -#else //__cplusplus -typedef struct IADLXDesktopListChangedListener IADLXDesktopListChangedListener; - -typedef struct IADLXDesktopListChangedListenerVtbl -{ - // IADLXDesktopListChangedListener interface - adlx_bool (ADLX_STD_CALL *OnDesktopListChanged)(IADLXDesktopListChangedListener* pThis, IADLXDesktopList* pNewDesktop); - -} IADLXDesktopListChangedListenerVtbl; - -struct IADLXDesktopListChangedListener { const IADLXDesktopListChangedListenerVtbl *pVtbl; }; -#endif //__cplusplus -#pragma endregion IADLXDesktopListChangedListener - - -#pragma region IADLXDesktopChangedHandling -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLXDesktopChangedHandling : public IADLXInterface - { - public: - ADLX_DECLARE_IID (L"IADLXDesktopChangedHandling") - /** - *@page DOX_IADLXDesktopChangedHandling_AddDesktopListEventListener AddDesktopListEventListener - *@ENG_START_DOX @brief Registers an event listener for notifications when the desktop list changes. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT AddDesktopListEventListener (@ref DOX_IADLXDesktopListChangedListener* pDesktopListChangedListener) - *@codeEnd - * - *@params - *@paramrow{1.,[in] ,pDesktopListChangedListener,@ref DOX_IADLXDesktopListChangedListener* ,@ENG_START_DOX The pointer to the event listener interface to register for receiving the desktop list change notifications. @ENG_END_DOX} - * - * - *@retvalues - *@ENG_START_DOX If the event listener is successfully registered, __ADLX_OK__ is returned.
- * If the event listener is not successfully registered, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX After the event listener is successfully registered, ADLX will call @ref DOX_IADLXDesktopListChangedListener_OnDesktopListChanged of the listener when the desktop list changes.
- * The event listener instance must exist until the application unregisters the event listener with @ref DOX_IADLXDesktopChangedHandling_RemoveDesktopListEventListener.
@ENG_END_DOX - * - * - *@copydoc IADLXDesktopChangedHandling_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL AddDesktopListEventListener (IADLXDesktopListChangedListener* pDesktopListChangedListener) = 0; - /** - *@page DOX_IADLXDesktopChangedHandling_RemoveDesktopListEventListener RemoveDesktopListEventListener - *@ENG_START_DOX @brief Unregisters an event listener from notifications when the desktop list changes. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT RemoveDesktopListEventListener (@ref DOX_IADLXDesktopListChangedListener* pDesktopListChangedListener) - *@codeEnd - * - *@params - *@paramrow{1.,[in] ,pDesktopListChangedListener,@ref DOX_IADLXDesktopListChangedListener* ,@ENG_START_DOX The pointer to the event listener interface to unregister from receiving the desktop list change notifications. @ENG_END_DOX} - * - * - *@retvalues - *@ENG_START_DOX If the event listener is successfully unregistered, __ADLX_OK__ is returned.
- * If the event listener is not successfully unregistered, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX After the event listener is successfully unregistered, ADLX will no longer call @ref DOX_IADLXDesktopListChangedListener_OnDesktopListChanged method of the listener when the desktop list changes. The application can discard the event listener instance. @ENG_END_DOX - * - * - *@copydoc IADLXDesktopChangedHandling_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL RemoveDesktopListEventListener (IADLXDesktopListChangedListener* pDesktopListChangedListener) = 0; - - }; //IADLXDesktopChangedHandling - //---------------------------------------------------------------------------------------------- - typedef IADLXInterfacePtr_T IADLXDesktopChangedHandlingPtr; -} //namespace adlx -#else //__cplusplus -ADLX_DECLARE_IID (IADLXDesktopChangedHandling, L"IADLXDesktopChangedHandling") -typedef struct IADLXDesktopChangedHandling IADLXDesktopChangedHandling; - -typedef struct IADLXDesktopChangedHandlingVtbl -{ - //IADLXInterface - adlx_long (ADLX_STD_CALL *Acquire)(IADLXDesktopChangedHandling* pThis); - adlx_long (ADLX_STD_CALL *Release)(IADLXDesktopChangedHandling* pThis); - ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLXDesktopChangedHandling* pThis, const wchar_t* interfaceId, void** ppInterface); - - // IADLXDesktopChangedHandling interface - ADLX_RESULT (ADLX_STD_CALL *AddDesktopListEventListener)(IADLXDesktopChangedHandling* pThis, IADLXDesktopListChangedListener* pDesktopListChangedListener); - ADLX_RESULT (ADLX_STD_CALL *RemoveDesktopListEventListener)(IADLXDesktopChangedHandling* pThis, IADLXDesktopListChangedListener* pDesktopListChangedListener); - -} IADLXDesktopChangedHandlingVtbl; - -struct IADLXDesktopChangedHandling { const IADLXDesktopChangedHandlingVtbl *pVtbl; }; -#endif //__cplusplus -#pragma endregion IADLXDesktopChangedHandling - -//Simple AMD Eyefinity interface: allows creation and destruction of AMD Eyefinity desktops -#pragma region IADLXSimpleEyefinity -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLXSimpleEyefinity : public IADLXInterface - { - public: - ADLX_DECLARE_IID (L"IADLXSimpleEyefinity") - /** - *@page DOX_IADLXSimpleEyefinity_IsSupported IsSupported - *@ENG_START_DOX @brief Checks if an AMD Eyefinity desktop can be created with all the enabled displays. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupported (adlx_bool* supported) - *@codeEnd - * - *@params - *@paramrow{1.,[out] ,supported,adlx_bool* ,@ENG_START_DOX The pointer to a variable where the state of AMD Eyefinity desktop creation is returned. The variable is __true__ if AMD Eyefinity desktop creation is supported. The variable is __false__ if AMD Eyefinity desktop creation is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state is successfully returned, __ADLX_OK__ is returned.
- * If the state is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details - * AMD Eyefinity desktops can be created with ADLX using all the enabled displays connected to the AMD GPUs, except LCD panel displays. For more information about AMD GPUs, refer to @ref @adlx_gpu_support "ADLX GPU Support". Use @ref DOX_IADLXDisplay_DisplayType to check if a display is an LCD panel.
- * All the desktops must be single desktops. Use @ref DOX_IADLXDesktop_Type to check if a desktop is a single desktop.
- * All the enabled displays must be connected to the same GPU.
- * The AMD Eyefinity desktop configuration must be supported by the AMD driver. Driver support varies depending on the GPU.
- * @ENG_END_DOX - * - *@copydoc IADLXSimpleEyefinity_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupported (adlx_bool* supported) = 0; - /** - *@page DOX_IADLXSimpleEyefinity_Create Create - *@ENG_START_DOX @brief Creates an AMD Eyefinity desktop with all the enabled displays. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT Create (@ref DOX_IADLXEyefinityDesktop** ppEyefinityDesktop) - *@codeEnd - * - *@params - *@paramrow{1.,[out] ,ppEyefinityDesktop,@ref DOX_IADLXEyefinityDesktop** ,@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 __*ppEyefinityDesktop__ to __nullptr__. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the interface is successfully returned, __ADLX_OK__ is returned.
- * If the interface is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details - * Use @ref DOX_IADLXSimpleEyefinity_IsSupported to check if an AMD Eyefinity desktop can be created.
- * Creating an AMD Eyefinity desktop can take a couple of seconds to complete. The method will block the execution thread until the operation is finished.
- * The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. Discarding the interface does not destroy the AMD Eyefinity desktop.
@ENG_END_DOX - * - *@addinfo - *@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 - * - *@copydoc IADLXSimpleEyefinity_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL Create (IADLXEyefinityDesktop** ppEyefinityDesktop) = 0; - /** - *@page DOX_IADLXSimpleEyefinity_DestroyAll DestroyAll - *@ENG_START_DOX @brief Destroys all the AMD Eyefinity desktops. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT DestroyAll () - *@codeEnd - * - *@retvalues - *@ENG_START_DOX If all AMD Eyefinity desktops are successfully destroyed, __ADLX_OK__ is returned.
- * If all AMD Eyefinity desktops are not successfully destroyed, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details Destroying all AMD Eyefinity desktops can take a couple of seconds to complete. The method will block the execution thread until the operation is finished. @ENG_END_DOX - * - *@copydoc IADLXSimpleEyefinity_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL DestroyAll () = 0; - /** - *@page DOX_IADLXSimpleEyefinity_Destroy Destroy - *@ENG_START_DOX @brief Destroys a specified AMD Eyefinity desktop. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT Destroy (@ref DOX_IADLXEyefinityDesktop* pDesktop) - *@codeEnd - * - *@params - *@paramrow{1.,[in] ,pDesktop,@ref DOX_IADLXEyefinityDesktop* ,@ENG_START_DOX The pointer to the eyefinity desktop to be destroyed. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the AMD Eyefinity desktop is successfully destroyed, __ADLX_OK__ is returned.
- * If the AMD Eyefinity desktop is not successfully destroyed, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details Destroying an AMD Eyefinity desktop can take a couple of seconds to complete. The method will block the execution thread until the operation is finished. @ENG_END_DOX - * - *@copydoc IADLXSimpleEyefinity_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL Destroy (IADLXEyefinityDesktop* pDesktop) = 0; - }; //IADLXSimpleEyefinity - //---------------------------------------------------------------------------------------------- - typedef IADLXInterfacePtr_T IADLXSimpleEyefinityPtr; -} //namespace adlx -#else //__cplusplus -ADLX_DECLARE_IID (IADLXSimpleEyefinity, L"IADLXSimpleEyefinity") -typedef struct IADLXSimpleEyefinity IADLXSimpleEyefinity; -typedef struct IADLXSimpleEyefinityVtbl -{ - //IADLXInterface - adlx_long (ADLX_STD_CALL *Acquire)(IADLXSimpleEyefinity* pThis); - adlx_long (ADLX_STD_CALL *Release)(IADLXSimpleEyefinity* pThis); - ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLXSimpleEyefinity* pThis, const wchar_t* interfaceId, void** ppInterface); - - //IADLXSimpleEyefinity - ADLX_RESULT (ADLX_STD_CALL *IsSupported) (IADLXSimpleEyefinity* pThis, adlx_bool* supported); - ADLX_RESULT (ADLX_STD_CALL *Create) (IADLXSimpleEyefinity* pThis, IADLXEyefinityDesktop** ppEyefinityDesktop); - ADLX_RESULT (ADLX_STD_CALL *DestroyAll) (IADLXSimpleEyefinity* pThis); - ADLX_RESULT (ADLX_STD_CALL *Destroy) (IADLXSimpleEyefinity* pThis, IADLXEyefinityDesktop* pDesktop); -}IADLXSimpleEyefinityVtbl; -struct IADLXSimpleEyefinity { const IADLXSimpleEyefinityVtbl *pVtbl; }; -#endif //__cplusplus -#pragma endregion IADLXSimpleEyefinity - -//Desktops services interface: top level interface for accessing desktop functionality: -//describe desktops (including AMD Eyefinity), register for desktop changed events and access AMD Eyefinity functionality -#pragma region IADLXDesktopServices -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLXDesktopServices : public IADLXInterface - { - public: - ADLX_DECLARE_IID (L"IADLXDesktopServices") - /** - * @page DOX_IADLXDesktopServices_GetNumberOfDesktops GetNumberOfDesktops - * @ENG_START_DOX - * @brief Gets the number of desktops instantiated on the AMD GPUs. - * @ENG_END_DOX - * - * @syntax - * @codeStart - * @ref ADLX_RESULT GetNumberOfDesktops (adlx_uint* numDesktops) - * @codeEnd - * - * @params - * @paramrow{1.,[out] ,numDesktops,adlx_uint* ,@ENG_START_DOX The pointer to a variable where the number of desktops is returned. @ENG_END_DOX} - * - * @retvalues - * @ENG_START_DOX - * If the number of desktops is successfully returned, __ADLX_OK__ is returned.
- * If the number of desktops is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
- * @ENG_END_DOX - * - * @detaileddesc - * @ENG_START_DOX - * @details For more information about the AMD GPUs, refer to @ref @adlx_gpu_support "ADLX GPU Support". - * @ENG_END_DOX - * - * @copydoc IADLXDesktopServices_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetNumberOfDesktops (adlx_uint* numDesktops) = 0; - /** - * @page DOX_IADLXDesktopServices_GetDesktops GetDesktops - * @ENG_START_DOX - * @brief Gets the reference counted list of desktops instantiated on the AMD GPUs. - * @ENG_END_DOX - * - * @syntax - * @codeStart - * @ref ADLX_RESULT GetDesktops (@ref DOX_IADLXDesktopList** ppDesktops) - * @codeEnd - * - * @params - * @paramrow{1.,[out] ,ppDesktops,@ref DOX_IADLXDesktopList** ,@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 __*ppDesktops__ to __nullptr__. @ENG_END_DOX} - * - * @retvalues - * @ENG_START_DOX - * If the list of desktops is successfully returned, __ADLX_OK__ is returned.
- * If the list of desktops is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
- * @ENG_END_DOX - * - * @detaileddesc - * @ENG_START_DOX - * @details For more information about the AMD GPUs, refer to @ref @adlx_gpu_support "ADLX GPU Support".
- * The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed.
- * @ENG_END_DOX - * - * @addinfo - * @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 - * - * @copydoc IADLXDesktopServices_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetDesktops (IADLXDesktopList** ppDesktops) = 0; - /** - * @page DOX_IADLXDesktopServices_GetDesktopChangedHandling GetDesktopChangedHandling - * @ENG_START_DOX - * @brief Gets the reference counted interface that allows registering and unregistering for notifications when desktop settings change. - * @ENG_END_DOX - * - * @syntax - * @codeStart - * @ref ADLX_RESULT GetDesktopChangedHandling (@ref DOX_IADLXDesktopChangedHandling** ppDesktopChangedHandling) - * @codeEnd - * - * @params - * @paramrow{1.,[out] ,ppDesktopChangedHandling,@ref DOX_IADLXDesktopChangedHandling** ,@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 __*ppDeskChangedHandling__ to __nullptr__. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the interface is successfully returned, __ADLX_OK__ is returned.
- * If the interface is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX - * - *@addinfo - *@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 - * - * @copydoc IADLXDesktopServices_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetDesktopChangedHandling (IADLXDesktopChangedHandling** ppDesktopChangedHandling) = 0; - /** - *@page DOX_IADLXDesktopServices_GetSimpleEyefinity GetSimpleEyefinity - *@ENG_START_DOX @brief Gets the reference counted interface to create and destroy AMD Eyefinity desktops. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetSimpleEyefinity (@ref DOX_IADLXSimpleEyefinity** ppSimpleEyefinity) - *@codeEnd - * - *@params - *@paramrow{1.,[out] ,ppSimpleEyefinity,@ref DOX_IADLXSimpleEyefinity** ,@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 __*ppSimpleEyefinity__ to __nullptr__. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the interface is successfully returned, __ADLX_OK__ is returned.
- * If the interface is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX - * - *@addinfo - *@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 - * - *@copydoc IADLXDesktopServices_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetSimpleEyefinity (IADLXSimpleEyefinity** ppSimpleEyefinity) = 0; - }; //IADLXDesktopServices - //---------------------------------------------------------------------------------------------- - typedef IADLXInterfacePtr_T IADLXDesktopServicesPtr; -} //namespace adlx -#else //__cplusplus -ADLX_DECLARE_IID (IADLXDesktopServices, L"IADLXDesktopServices") -typedef struct IADLXDesktopServices IADLXDesktopServices; -typedef struct IADLXDesktopServicesVtbl -{ - //IADLXInterface - adlx_long (ADLX_STD_CALL *Acquire)(IADLXDesktopServices* pThis); - adlx_long (ADLX_STD_CALL *Release)(IADLXDesktopServices* pThis); - ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLXDesktopServices* pThis, const wchar_t* interfaceId, void** ppInterface); - - //IADLXDesktopServices - ADLX_RESULT (ADLX_STD_CALL *GetNumberOfDesktops) (IADLXDesktopServices* pThis, adlx_uint* pNumDesktops); - ADLX_RESULT (ADLX_STD_CALL *GetDesktops) (IADLXDesktopServices* pThis, IADLXDesktopList** ppDesktops); - ADLX_RESULT (ADLX_STD_CALL *GetDesktopChangedHandling) (IADLXDesktopServices* pThis, IADLXDesktopChangedHandling** ppDesktopChangedHandling); - ADLX_RESULT (ADLX_STD_CALL *GetSimpleEyefinity) (IADLXDesktopServices* pThis, IADLXSimpleEyefinity** ppSimpleEyefinity); -}IADLXDesktopServicesVtbl; -struct IADLXDesktopServices { const IADLXDesktopServicesVtbl *pVtbl; }; -#endif //__cplusplus -#pragma endregion IADLXDesktopServices - -#endif //ADLX_IDESKTOPS_H diff --git a/src/adlx/sdk/Include/IDisplay3DLUT.h b/src/adlx/sdk/Include/IDisplay3DLUT.h deleted file mode 100644 index 60178b7..0000000 --- a/src/adlx/sdk/Include/IDisplay3DLUT.h +++ /dev/null @@ -1,663 +0,0 @@ -// -// Copyright (c) 2021 - 2023 Advanced Micro Devices, Inc. All rights reserved. -// -//------------------------------------------------------------------------------------------------- - -#ifndef ADLX_IDISPLAY3DLUT_H -#define ADLX_IDISPLAY3DLUT_H -#pragma once - -#include "ADLXDefines.h" -#include "ADLXStructures.h" -//------------------------------------------------------------------------------------------------- -//IDisplays3DLUT.h - Interfaces for ADLX Display 3D LUT functionality - -#pragma region IADLXDisplay3DLUT interface -#if defined (__cplusplus) - -namespace adlx -{ - class ADLX_NO_VTABLE IADLXDisplay3DLUT : public IADLXInterface - { - - public: - ADLX_DECLARE_IID (L"IADLXDisplay3DLUT") - - /** - *@page DOX_IADLXDisplay3DLUT_IsSupportedSCE IsSupportedSCE - *@ENG_START_DOX @brief Checks if color enhancement is supported on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupportedSCE (adlx_bool* supported) - *@codeEnd - * - *@params - *@paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of color enhancement is returned. The variable is __true__ if color enhancement is supported. The variable is __false__ if color enhancement is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of color enhancement is successfully returned, __ADLX_OK__ is returned.
- * If the state of color enhancement is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details Some GPUs support built-in 3D LUT profiles for displays to improve and enhance game and application color vibrancy. @ENG_END_DOX - * - *@copydoc IADLXDisplay3DLUT_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupportedSCE (adlx_bool* supported) = 0; - - /** - *@page DOX_IADLXDisplay3DLUT_IsSupportedSCEVividGaming IsSupportedSCEVividGaming - *@ENG_START_DOX @brief Checks if the vivid gaming color enhancement preset is supported on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupportedSCEVividGaming (adlx_bool* supported) - *@codeEnd - * - *@params - *@paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of the vivid gaming preset is returned. The variable is __true__ if the vivid gaming preset is supported. The variable is __false__ if the vivid gaming preset is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of the vivid gaming preset is successfully returned, __ADLX_OK__ is returned.
- * If the state of the vivid gaming preset is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The vivid gaming preset enhances color saturation and vibrance. @ENG_END_DOX - * - *@copydoc IADLXDisplay3DLUT_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupportedSCEVividGaming (adlx_bool* supported) = 0; - - /** - *@page DOX_IADLXDisplay3DLUT_IsCurrentSCEDisabled IsCurrentSCEDisabled - *@ENG_START_DOX @brief Checks if the color enhancement presets are disabled on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsCurrentSCEDisabled (adlx_bool* sceDisabled) - *@codeEnd - * - *@params - *@paramrow{1.,[out],sceDisabled,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of color enhancement is returned. The variable is __true__ if the color enhancement presets are disabled. The variable is __false__ if the color enhancement presets are not disabled. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of color enhancement is successfully returned, __ADLX_OK__ is returned.
- * If the state of color enhancement is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * - *@copydoc IADLXDisplay3DLUT_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsCurrentSCEDisabled (adlx_bool* sceDisabled) = 0; - - /** - *@page DOX_IADLXDisplay3DLUT_IsCurrentSCEVividGaming IsCurrentSCEVividGaming - *@ENG_START_DOX @brief Checks if the vivid gaming color enhancement preset is used on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsCurrentSCEVividGaming (adlx_bool* vividGaming) - *@codeEnd - * - *@params - *@paramrow{1.,[out],vividGaming,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of the vivid gaming preset is returned. The variable is __true__ if the vivid gaming preset is used. The variable is __false__ if the vivid gaming preset is not used. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of the vivid gaming preset is successfully returned, __ADLX_OK__ is returned.
- * If the state of the vivid gaming preset is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The vivid gaming preset enhances color saturation and vibrance. @ENG_END_DOX - * - *@copydoc IADLXDisplay3DLUT_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsCurrentSCEVividGaming (adlx_bool* vividGaming) = 0; - - /** - *@page DOX_IADLXDisplay3DLUT_SetSCEDisabled SetSCEDisabled - *@ENG_START_DOX @brief Disables the color enhancement presets on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetSCEDisabled () - *@codeEnd - * - *@params - * N/A - * - *@retvalues - *@ENG_START_DOX If the color enhancement presets are successfully disabled, __ADLX_OK__ is returned.
- * If the color enhancement presets are not successfully disabled, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * - *@copydoc IADLXDisplay3DLUT_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetSCEDisabled () = 0; - - /** - *@page DOX_IADLXDisplay3DLUT_SetSCEVividGaming SetSCEVividGaming - *@ENG_START_DOX @brief Sets the vivid gaming color enhancement preset on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetSCEVividGaming () - *@codeEnd - * - *@params - * N/A - * - *@retvalues - *@ENG_START_DOX If the vivid gaming preset is successfully set, __ADLX_OK__ is returned.
- * If the vivid gaming preset is not successfully set, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The vivid gaming preset enhances color saturation and vibrance. @ENG_END_DOX - * - *@copydoc IADLXDisplay3DLUT_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetSCEVividGaming () = 0; - - /** - *@page DOX_IADLXDisplay3DLUT_IsSupportedSCEDynamicContrast IsSupportedSCEDynamicContrast - *@ENG_START_DOX @brief Checks if the Dynamic Contrast color enhancement preset is supported on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupportedSCEDynamicContrast (adlx_bool* supported) - *@codeEnd - * - *@params - *@paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of the Dynamic Contrast preset is returned. The variable is __true__ if the Dynamic Contrast preset is supported. The variable is __false__ if the Dynamic Contrast preset is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of the Dynamic Contrast preset is successfully returned, __ADLX_OK__ is returned.
- * If the state of the Dynamic Contrast preset is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * The Dynamic Contrast preset is designed to boost brightness low and mid tone areas while leaving other areas almost untouched. - * @ENG_END_DOX - * - *@copydoc IADLXDisplay3DLUT_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupportedSCEDynamicContrast (adlx_bool* supported) = 0; - - /** - *@page DOX_IADLXDisplay3DLUT_IsCurrentSCEDynamicContrast IsCurrentSCEDynamicContrast - *@ENG_START_DOX @brief Checks if the Dynamic Contrast color enhancement preset is used on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsCurrentSCEDynamicContrast (adlx_bool* dynamicContrast) - *@codeEnd - * - *@params - *@paramrow{1.,[out],dynamicContrast,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of the Dynamic Contrast preset is returned. The variable is __true__ if the Dynamic Contrast preset is used. The variable is __false__ if the Dynamic Contrast preset is not used. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of the Dynamic Contrast preset is successfully returned, __ADLX_OK__ is returned.
- * If the state of the Dynamic Contrast preset is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * @addinfo - *@ENG_START_DOX The Dynamic Contrast preset is designed to boost brightness low and mid tone areas while leaving other areas almost untouched. - * @ENG_END_DOX - * - *@copydoc IADLXDisplay3DLUT_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsCurrentSCEDynamicContrast (adlx_bool* dynamicContrast) = 0; - - /** - *@page DOX_IADLXDisplay3DLUT_GetSCEDynamicContrastRange GetSCEDynamicContrastRange - *@ENG_START_DOX @brief Gets the maximum contrast, minimum contrast, and step contrast of the Dynamic Contrast color enhancement preset on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetSCEDynamicContrastRange (@ref ADLX_IntRange* range) - *@codeEnd - * - *@params - *@paramrow{1.,[out],range,@ref ADLX_IntRange*,@ENG_START_DOX The pointer to a variable where the contrast range of the Dynamic Contrast color enhancement preset is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the contrast range is successfully returned, __ADLX_OK__ is returned.
- * If the contrast range is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The maximum contrast, minimum contrast, and step contrast of the Dynamic Contrast color enhancement preset are read only. @ENG_END_DOX - * - * @addinfo - *@ENG_START_DOX The Dynamic Contrast preset is designed to boost brightness low and mid tone areas while leaving other areas almost untouched. - * @ENG_END_DOX - * - * - *@copydoc IADLXDisplay3DLUT_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetSCEDynamicContrastRange (ADLX_IntRange* range) = 0; - - /** - *@page DOX_IADLXDisplay3DLUT_GetSCEDynamicContrast GetSCEDynamicContrast - *@ENG_START_DOX @brief Gets the contrast of the Dynamic Contrast color enhancement preset on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetSCEDynamicContrast (adlx_int* contrast) - *@codeEnd - * - *@params - *@paramrow{1.,[out],contrast,adlx_int*,@ENG_START_DOX The pointer to a variable where the contrast of the Dynamic Contrast color enhancement preset is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the contrast is successfully returned, __ADLX_OK__ is returned.
- * If the contrast is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * @addinfo - *@ENG_START_DOX The Dynamic Contrast preset is designed to boost brightness low and mid tone areas while leaving other areas almost untouched. - * @ENG_END_DOX - * - *@copydoc IADLXDisplay3DLUT_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetSCEDynamicContrast (adlx_int* contrast) = 0; - - /** - *@page DOX_IADLXDisplay3DLUT_SetSCEDynamicContrast SetSCEDynamicContrast - *@ENG_START_DOX @brief Sets the contrast of the Dynamic Contrast color enhancement preset on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetSCEDynamicContrast (adlx_int contrast) - *@codeEnd - * - *@params - *@paramrow{1.,[in],contrast,adlx_int,@ENG_START_DOX The new contrast of the Dynamic Contrast color enhancement preset. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the contrast is successfully set, __ADLX_OK__ is returned.
- * If the contrast is not successfully set, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * @addinfo - *@ENG_START_DOX The Dynamic Contrast preset is designed to boost brightness low and mid tone areas while leaving other areas almost untouched. - * @ENG_END_DOX - * - *@copydoc IADLXDisplay3DLUT_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetSCEDynamicContrast (adlx_int contrast) = 0; - - /** - *@page DOX_IADLXDisplay3DLUT_IsSupportedUser3DLUT IsSupportedUser3DLUT - *@ENG_START_DOX @brief Checks if 3D LUT customization is supported on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupportedUser3DLUT (adlx_bool* supported) - *@codeEnd - * - *@params - *@paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of 3D LUT customization is returned. The variable is __true__ if 3D LUT customization is supported. The variable is __false__ if 3D LUT customization is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of 3D LUT customization is successfully returned, __ADLX_OK__ is returned.
- * If the state of 3D LUT customization is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details Some GPUs support custom 3D LUT panel calibration for eDP displays to improve and enhance game and application color vibrancy. @ENG_END_DOX - * - *@copydoc IADLXDisplay3DLUT_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupportedUser3DLUT (adlx_bool* supported) = 0; - - /** - *@page DOX_IADLXDisplay3DLUT_ClearUser3DLUT ClearUser3DLUT - *@ENG_START_DOX @brief Clears the custom 3D LUT for panel calibration on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT ClearUser3DLUT () - *@codeEnd - * - *@params - * N/A - * - *@retvalues - *@ENG_START_DOX If the custom 3D LUT is successfully cleared, __ADLX_OK__ is returned.
- * If the custom 3D LUT is not successfully cleared, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * - *@copydoc IADLXDisplay3DLUT_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL ClearUser3DLUT () = 0; - - /** - *@page DOX_IADLXDisplay3DLUT_GetSDRUser3DLUT GetSDRUser3DLUT - *@ENG_START_DOX @brief Gets the custom 3D LUT data suitable for the SDR mode of a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetSDRUser3DLUT (@ref ADLX_3DLUT_TRANSFER_FUNCTION* transferFunction, @ref ADLX_3DLUT_COLORSPACE* colorSpace, @ref ADLX_3DLUT_Data* data) - *@codeEnd - * - *@params - *@paramrow{1.,[out] ,transferFunction,@ref ADLX_3DLUT_TRANSFER_FUNCTION*,@ENG_START_DOX The pointer to a variable where the transfer function is returned. @ENG_END_DOX} - *@paramrow{2.,[out] ,colorSpace,@ref ADLX_3DLUT_COLORSPACE*,@ENG_START_DOX The pointer to a variable where the color space is returned. @ENG_END_DOX} - *@paramrow{3.,[out] ,pointsNumber,adlx_int*,@ENG_START_DOX The pointer to a variable where the size of the custom 3D LUT buffer is returned. @ENG_END_DOX} - *@paramrow{4.,[out] ,data,@ref ADLX_3DLUT_Data*,@ENG_START_DOX The pointer to a variable where the custom 3D LUT buffer is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the custom 3D LUT data is successfully returned, __ADLX_OK__ is returned.
- * If the custom 3D LUT data is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@addinfo - *@ENG_START_DOX - * __Note:__ @ref DOX_IADLXDisplay3DLUT_SetAllUser3DLUT sets a custom 3D LUT data for both the SDR mode and HDR mode of a display.
- * - * Setting a custom 3D LUT data suitable for the SDR mode of the display with @ref DOX_IADLXDisplay3DLUT_SetSDRUser3DLUT will delete the custom 3D LUT data for the HDR mode that was previously created with @ref DOX_IADLXDisplay3DLUT_SetAllUser3DLUT. If a custom 3D LUT data suitable for the HDR mode is also required, it must be set with @ref DOX_IADLXDisplay3DLUT_SetHDRUser3DLUT.
- * - * Setting a custom 3D LUT data suitable for the HDR mode of the display with @ref DOX_IADLXDisplay3DLUT_SetHDRUser3DLUT will delete the custom 3D LUT data for the SDR mode that was previously created with @ref DOX_IADLXDisplay3DLUT_SetAllUser3DLUT. If a custom 3D LUT data suitable for the SDR mode is also required, it must be set with @ref DOX_IADLXDisplay3DLUT_SetSDRUser3DLUT. - * @ENG_END_DOX - * - *@copydoc IADLXDisplay3DLUT_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetSDRUser3DLUT (ADLX_3DLUT_TRANSFER_FUNCTION* transferFunction, ADLX_3DLUT_COLORSPACE* colorSpace, adlx_int* pointsNumber, ADLX_3DLUT_Data* data) = 0; - - /** - *@page DOX_IADLXDisplay3DLUT_SetSDRUser3DLUT SetSDRUser3DLUT - *@ENG_START_DOX @brief Sets the custom 3D LUT data suitable for the SDR mode of a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetSDRUser3DLUT (@ref ADLX_3DLUT_TRANSFER_FUNCTION transferFunction, @ref ADLX_3DLUT_COLORSPACE colorSpace, const @ref ADLX_3DLUT_Data* data) - *@codeEnd - * - *@params - *@paramrow{1.,[in] ,transferFunction,@ref ADLX_3DLUT_TRANSFER_FUNCTION,@ENG_START_DOX The transfer function. @ENG_END_DOX} - *@paramrow{2.,[in] ,colorSpace,@ref ADLX_3DLUT_COLORSPACE,@ENG_START_DOX The color space. @ENG_END_DOX} - *@paramrow{3.,[in] ,pointsNumber,adlx_int,@ENG_START_DOX The size of the custom 3D LUT data. @ENG_END_DOX} - *@paramrow{4.,[in] ,data,@ref ADLX_3DLUT_Data*,@ENG_START_DOX The custom 3D LUT buffer. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the custom 3D LUT data is successfully set, __ADLX_OK__ is returned.
- * If the custom 3D LUT data is not successfully set, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX - *@details To fill in the custom 3D LUT buffer use @ref DOX_IADLXDisplay3DLUT_GetUser3DLUTIndex. - *@ENG_END_DOX - * - *@addinfo - *@ENG_START_DOX - * __Note:__ @ref DOX_IADLXDisplay3DLUT_SetAllUser3DLUT sets a custom 3D LUT data for both the SDR mode and HDR mode of a display.
- * - * Setting a custom 3D LUT data suitable for the SDR mode of the display with @ref DOX_IADLXDisplay3DLUT_SetSDRUser3DLUT will delete the custom 3D LUT data for the HDR mode that was previously created with @ref DOX_IADLXDisplay3DLUT_SetAllUser3DLUT. If a custom 3D LUT data suitable for the HDR mode is also required, it must be set with @ref DOX_IADLXDisplay3DLUT_SetHDRUser3DLUT.
- * - * Setting a custom 3D LUT data suitable for the HDR mode of the display with @ref DOX_IADLXDisplay3DLUT_SetHDRUser3DLUT will delete the custom 3D LUT data for the SDR mode that was previously created with @ref DOX_IADLXDisplay3DLUT_SetAllUser3DLUT. If a custom 3D LUT data suitable for the SDR mode is also required, it must be set with @ref DOX_IADLXDisplay3DLUT_SetSDRUser3DLUT. - * @ENG_END_DOX - * - *@copydoc IADLXDisplay3DLUT_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetSDRUser3DLUT (ADLX_3DLUT_TRANSFER_FUNCTION transferFunction, ADLX_3DLUT_COLORSPACE colorSpace, adlx_int pointsNumber, const ADLX_3DLUT_Data* data) = 0; - - /** - *@page DOX_IADLXDisplay3DLUT_GetHDRUser3DLUT GetHDRUser3DLUT - *@ENG_START_DOX @brief Gets the custom 3D LUT data suitable for the HDR mode of a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetHDRUser3DLUT (@ref ADLX_3DLUT_TRANSFER_FUNCTION* transferFunction, @ref ADLX_3DLUT_COLORSPACE* colorSpace, @ref ADLX_3DLUT_Data* data) - *@codeEnd - * - *@params - *@paramrow{1.,[out] ,transferFunction,@ref ADLX_3DLUT_TRANSFER_FUNCTION*,@ENG_START_DOX The pointer to a variable where the transfer function is returned. @ENG_END_DOX} - *@paramrow{2.,[out] ,colorSpace,@ref ADLX_3DLUT_COLORSPACE*,@ENG_START_DOX The pointer to a variable where the color space is returned. @ENG_END_DOX} - *@paramrow{3.,[out] ,pointsNumber,adlx_int*,@ENG_START_DOX The pointer to a variable where the size of the custom 3D LUT buffer is returned. @ENG_END_DOX} - *@paramrow{4.,[out] ,data,@ref ADLX_3DLUT_Data*,@ENG_START_DOX The pointer to a variable where the custom 3D LUT buffer is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the custom 3D LUT data is successfully returned, __ADLX_OK__ is returned.
- * If the custom 3D LUT data is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@addinfo - *@ENG_START_DOX - * __Note:__ @ref DOX_IADLXDisplay3DLUT_SetAllUser3DLUT sets a custom 3D LUT data for both the SDR mode and HDR mode of a display.
- * - * Setting a custom 3D LUT data suitable for the SDR mode of the display with @ref DOX_IADLXDisplay3DLUT_SetSDRUser3DLUT will delete the custom 3D LUT data for the HDR mode that was previously created with @ref DOX_IADLXDisplay3DLUT_SetAllUser3DLUT. If a custom 3D LUT data suitable for the HDR mode is also required, it must be set with @ref DOX_IADLXDisplay3DLUT_SetHDRUser3DLUT.
- * - * Setting a custom 3D LUT data suitable for the HDR mode of the display with @ref DOX_IADLXDisplay3DLUT_SetHDRUser3DLUT will delete the custom 3D LUT data for the SDR mode that was previously created with @ref DOX_IADLXDisplay3DLUT_SetAllUser3DLUT. If a custom 3D LUT data suitable for the SDR mode is also required, it must be set with @ref DOX_IADLXDisplay3DLUT_SetSDRUser3DLUT. - * @ENG_END_DOX - * - *@copydoc IADLXDisplay3DLUT_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetHDRUser3DLUT (ADLX_3DLUT_TRANSFER_FUNCTION* transferFunction, ADLX_3DLUT_COLORSPACE* colorSpace, adlx_int* pointsNumber, ADLX_3DLUT_Data* data) = 0; - - /** - *@page DOX_IADLXDisplay3DLUT_SetHDRUser3DLUT SetHDRUser3DLUT - *@ENG_START_DOX @brief Sets the custom 3D LUT data suitable for the HDR mode of a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetHDRUser3DLUT (@ref ADLX_3DLUT_TRANSFER_FUNCTION transferFunction, @ref ADLX_3DLUT_COLORSPACE colorSpace, const @ref ADLX_3DLUT_Data* data) - *@codeEnd - * - *@params - *@paramrow{1.,[in] ,transferFunction,@ref ADLX_3DLUT_TRANSFER_FUNCTION,@ENG_START_DOX The transfer function. @ENG_END_DOX} - *@paramrow{2.,[in] ,colorSpace,@ref ADLX_3DLUT_COLORSPACE,@ENG_START_DOX The color space. @ENG_END_DOX} - *@paramrow{3.,[in] ,pointsNumber,adlx_int,@ENG_START_DOX The size of the custom 3D LUT data. @ENG_END_DOX} - *@paramrow{4.,[in] ,data,@ref ADLX_3DLUT_Data*,@ENG_START_DOX The custom 3D LUT buffer. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the custom 3D LUT data is successfully set, __ADLX_OK__ is returned.
- * If the custom 3D LUT data is not successfully set, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX - *@details To fill in the custom 3D LUT buffer use @ref DOX_IADLXDisplay3DLUT_GetUser3DLUTIndex. - *@ENG_END_DOX - * - *@addinfo - *@ENG_START_DOX - * __Note:__ @ref DOX_IADLXDisplay3DLUT_SetAllUser3DLUT sets a custom 3D LUT data for both the SDR mode and HDR mode of a display.
- * - * Setting a custom 3D LUT data suitable for the SDR mode of the display with @ref DOX_IADLXDisplay3DLUT_SetSDRUser3DLUT will delete the custom 3D LUT data for the HDR mode that was previously created with @ref DOX_IADLXDisplay3DLUT_SetAllUser3DLUT. If a custom 3D LUT data suitable for the HDR mode is also required, it must be set with @ref DOX_IADLXDisplay3DLUT_SetHDRUser3DLUT.
- * - * Setting a custom 3D LUT data suitable for the HDR mode of the display with @ref DOX_IADLXDisplay3DLUT_SetHDRUser3DLUT will delete the custom 3D LUT data for the SDR mode that was previously created with @ref DOX_IADLXDisplay3DLUT_SetAllUser3DLUT. If a custom 3D LUT data suitable for the SDR mode is also required, it must be set with @ref DOX_IADLXDisplay3DLUT_SetSDRUser3DLUT. - * @ENG_END_DOX - * - *@copydoc IADLXDisplay3DLUT_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetHDRUser3DLUT (ADLX_3DLUT_TRANSFER_FUNCTION transferFunction, ADLX_3DLUT_COLORSPACE colorSpace, adlx_int pointsNumber, const ADLX_3DLUT_Data* data) = 0; - - /** - *@page DOX_IADLXDisplay3DLUT_GetAllUser3DLUT GetAllUser3DLUT - *@ENG_START_DOX @brief Gets the custom 3D LUT data suitable for both the SDR mode and the HDR mode of a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetAllUser3DLUT (@ref ADLX_3DLUT_TRANSFER_FUNCTION* transferFunction, @ref ADLX_3DLUT_COLORSPACE* colorSpace, @ref ADLX_3DLUT_Data* data) - *@codeEnd - * - *@params - *@paramrow{1.,[out] ,transferFunction,@ref ADLX_3DLUT_TRANSFER_FUNCTION*,@ENG_START_DOX The pointer to a variable where the transfer function is returned. @ENG_END_DOX} - *@paramrow{2.,[out] ,colorSpace,@ref ADLX_3DLUT_COLORSPACE*,@ENG_START_DOX The pointer to a variable where the color space is returned. @ENG_END_DOX} - *@paramrow{3.,[out] ,pointsNumber,adlx_int*,@ENG_START_DOX The pointer to a variable where the size of the custom 3D LUT buffer is returned. @ENG_END_DOX} - *@paramrow{4.,[out] ,data,@ref ADLX_3DLUT_Data*,@ENG_START_DOX The pointer to a variable where the custom 3D LUT buffer is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the custom 3D LUT data is successfully returned, __ADLX_OK__ is returned.
- * If the custom 3D LUT data is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@addinfo - *@ENG_START_DOX - * __Note:__ @ref DOX_IADLXDisplay3DLUT_SetAllUser3DLUT sets a custom 3D LUT data for both the SDR mode and HDR mode of a display.
- * - * Setting a custom 3D LUT data suitable for the SDR mode of the display with @ref DOX_IADLXDisplay3DLUT_SetSDRUser3DLUT will delete the custom 3D LUT data for the HDR mode that was previously created with @ref DOX_IADLXDisplay3DLUT_SetAllUser3DLUT. If a custom 3D LUT data suitable for the HDR mode is also required, it must be set with @ref DOX_IADLXDisplay3DLUT_SetHDRUser3DLUT.
- * - * Setting a custom 3D LUT data suitable for the HDR mode of the display with @ref DOX_IADLXDisplay3DLUT_SetHDRUser3DLUT will delete the custom 3D LUT data for the SDR mode that was previously created with @ref DOX_IADLXDisplay3DLUT_SetAllUser3DLUT. If a custom 3D LUT data suitable for the SDR mode is also required, it must be set with @ref DOX_IADLXDisplay3DLUT_SetSDRUser3DLUT. - * @ENG_END_DOX - * - *@copydoc IADLXDisplay3DLUT_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetAllUser3DLUT (ADLX_3DLUT_TRANSFER_FUNCTION* transferFunction, ADLX_3DLUT_COLORSPACE* colorSpace, adlx_int* pointsNumber, ADLX_3DLUT_Data* data) = 0; - - /** - *@page DOX_IADLXDisplay3DLUT_SetAllUser3DLUT SetAllUser3DLUT - *@ENG_START_DOX @brief Sets the custom 3D LUT data suitable for both the SDR mode and the HRD mode of a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetAllUser3DLUT (@ref ADLX_3DLUT_TRANSFER_FUNCTION transferFunction, @ref ADLX_3DLUT_COLORSPACE colorSpace, const @ref ADLX_3DLUT_Data* data) - *@codeEnd - * - *@params - *@paramrow{1.,[in] ,transferFunction,@ref ADLX_3DLUT_TRANSFER_FUNCTION,@ENG_START_DOX The transfer function. @ENG_END_DOX} - *@paramrow{2.,[in] ,colorSpace,@ref ADLX_3DLUT_COLORSPACE,@ENG_START_DOX The color space. @ENG_END_DOX} - *@paramrow{3.,[in] ,pointsNumber,adlx_int,@ENG_START_DOX The size of the custom 3D LUT data. @ENG_END_DOX} - *@paramrow{4.,[in] ,data,@ref ADLX_3DLUT_Data*,@ENG_START_DOX The custom 3D LUT buffer. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the custom 3D LUT data is successfully set, __ADLX_OK__ is returned.
- * If the custom 3D LUT data is not successfully set, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX - *@details To fill in the custom 3D LUT buffer use @ref DOX_IADLXDisplay3DLUT_GetUser3DLUTIndex. - *@ENG_END_DOX - * - *@addinfo - *@ENG_START_DOX - * __Note:__ @ref DOX_IADLXDisplay3DLUT_SetAllUser3DLUT sets a custom 3D LUT data for both the SDR mode and HDR mode of a display.
- * - * Setting a custom 3D LUT data suitable for the SDR mode of the display with @ref DOX_IADLXDisplay3DLUT_SetSDRUser3DLUT will delete the custom 3D LUT data for the HDR mode that was previously created with @ref DOX_IADLXDisplay3DLUT_SetAllUser3DLUT. If a custom 3D LUT data suitable for the HDR mode is also required, it must be set with @ref DOX_IADLXDisplay3DLUT_SetHDRUser3DLUT.
- * - * Setting a custom 3D LUT data suitable for the HDR mode of the display with @ref DOX_IADLXDisplay3DLUT_SetHDRUser3DLUT will delete the custom 3D LUT data for the SDR mode that was previously created with @ref DOX_IADLXDisplay3DLUT_SetAllUser3DLUT. If a custom 3D LUT data suitable for the SDR mode is also required, it must be set with @ref DOX_IADLXDisplay3DLUT_SetSDRUser3DLUT. - * @ENG_END_DOX - * - *@copydoc IADLXDisplay3DLUT_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetAllUser3DLUT (ADLX_3DLUT_TRANSFER_FUNCTION transferFunction, ADLX_3DLUT_COLORSPACE colorSpace, adlx_int pointsNumber, const ADLX_3DLUT_Data* data) = 0; - - /** - *@page DOX_IADLXDisplay3DLUT_GetUser3DLUTIndex GetUser3DLUTIndex - *@ENG_START_DOX @brief Gets the index in the 3D LUT buffer corresponding to a triplet of red, green, and blue values. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetUser3DLUTIndex (adlx_int lutSize, const @ref ADLX_UINT16_RGB* rgbCoordinate, adlx_int* index) - *@codeEnd - * - *@params - *@paramrow{1.,[in] ,lutSize,adlx_int,@ENG_START_DOX The size of the User 3D LUT. @ENG_END_DOX} - *@paramrow{2.,[in] ,rgbCoordinate,@ref ADLX_UINT16_RGB*,@ENG_START_DOX The co-ordinates of a user 3D LUT. @ENG_END_DOX} - *@paramrow{3.,[out] ,index,adlx_int*,@ENG_START_DOX The pointer to a variable where the index is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the index of the 3D LUT from a flat array is successfully returned, __ADLX_OK__ is returned.
- * If the index of the 3D LUT from a flat array is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX - *@details The 3D LUT table must contain between 5 and 17 points. Each point is defined by a triplet of red, green, and blue values.
- * - * GetUser3DLUTIndex is useful when constructing the 3D LUT buffer to set using @ref DOX_IADLXDisplay3DLUT_SetHDRUser3DLUT, @ref DOX_IADLXDisplay3DLUT_SetSDRUser3DLUT and @ref DOX_IADLXDisplay3DLUT_SetAllUser3DLUT. - * - *@ENG_END_DOX - * - *@addinfo - *@ENG_START_DOX - * __Note:__ @ref DOX_IADLXDisplay3DLUT_SetAllUser3DLUT sets a custom 3D LUT data for both the SDR mode and HDR mode of a display.
- * - * Setting a custom 3D LUT data suitable for the SDR mode of the display with @ref DOX_IADLXDisplay3DLUT_SetSDRUser3DLUT will delete the custom 3D LUT data for the HDR mode that was previously created with @ref DOX_IADLXDisplay3DLUT_SetAllUser3DLUT. If a custom 3D LUT data suitable for the HDR mode is also required, it must be set with @ref DOX_IADLXDisplay3DLUT_SetHDRUser3DLUT.
- * - * Setting a custom 3D LUT data suitable for the HDR mode of the display with @ref DOX_IADLXDisplay3DLUT_SetHDRUser3DLUT will delete the custom 3D LUT data for the SDR mode that was previously created with @ref DOX_IADLXDisplay3DLUT_SetAllUser3DLUT. If a custom 3D LUT data suitable for the SDR mode is also required, it must be set with @ref DOX_IADLXDisplay3DLUT_SetSDRUser3DLUT. - * @ENG_END_DOX - * - *@copydoc IADLXDisplay3DLUT_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetUser3DLUTIndex (adlx_int lutSize, const ADLX_UINT16_RGB* rgbCoordinate, adlx_int* index) = 0; - - }; //IADLXDisplay3DLUT - //---------------------------------------------------------------------------------------------- - typedef IADLXInterfacePtr_T IADLXDisplay3DLUTPtr; -} -#else -ADLX_DECLARE_IID (IADLXDisplay3DLUT, L"IADLXDisplay3DLUT") -typedef struct IADLXDisplay3DLUT IADLXDisplay3DLUT; - -typedef struct IADLXDisplay3DLUTVtbl -{ - //IADLXInterface - adlx_long (ADLX_STD_CALL *Acquire)(IADLXDisplay3DLUT* pThis); - adlx_long (ADLX_STD_CALL *Release)(IADLXDisplay3DLUT* pThis); - ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLXDisplay3DLUT* pThis, const wchar_t* interfaceId, void** ppInterface); - - //IADLXDisplay3DLUT - ADLX_RESULT (ADLX_STD_CALL *IsSupportedSCE)(IADLXDisplay3DLUT* pThis, adlx_bool* supported); - ADLX_RESULT (ADLX_STD_CALL *IsSupportedSCEVividGaming)(IADLXDisplay3DLUT* pThis, adlx_bool* supported); - ADLX_RESULT (ADLX_STD_CALL *IsCurrentSCEDisabled)(IADLXDisplay3DLUT* pThis, adlx_bool* sceDisabled); - ADLX_RESULT (ADLX_STD_CALL *IsCurrentSCEVividGaming)(IADLXDisplay3DLUT* pThis, adlx_bool* vividGaming); - - ADLX_RESULT (ADLX_STD_CALL *SetSCEDisabled)(IADLXDisplay3DLUT* pThis); - ADLX_RESULT (ADLX_STD_CALL *SetSCEVividGaming)(IADLXDisplay3DLUT* pThis); - - ADLX_RESULT (ADLX_STD_CALL* IsSupportedSCEDynamicContrast)(IADLXDisplay3DLUT* pThis, adlx_bool* supported); - ADLX_RESULT (ADLX_STD_CALL* IsCurrentSCEDynamicContrast)(IADLXDisplay3DLUT* pThis, adlx_bool* dynamicContrast); - ADLX_RESULT (ADLX_STD_CALL* GetSCEDynamicContrastRange)(IADLXDisplay3DLUT* pThis, ADLX_IntRange* range); - ADLX_RESULT (ADLX_STD_CALL* GetSCEDynamicContrast)(IADLXDisplay3DLUT* pThis, adlx_int* contrast); - ADLX_RESULT (ADLX_STD_CALL* SetSCEDynamicContrast)(IADLXDisplay3DLUT* pThis, adlx_int contrast); - - ADLX_RESULT (ADLX_STD_CALL *IsSupportedUser3DLUT)(IADLXDisplay3DLUT* pThis, adlx_bool* supported); - ADLX_RESULT (ADLX_STD_CALL *ClearUser3DLUT)(IADLXDisplay3DLUT* pThis); - ADLX_RESULT (ADLX_STD_CALL *GetSDRUser3DLUT)(IADLXDisplay3DLUT* pThis, ADLX_3DLUT_TRANSFER_FUNCTION* transferFunction, ADLX_3DLUT_COLORSPACE* colorSpace, adlx_int* pointsNumber, ADLX_3DLUT_Data* data); - ADLX_RESULT (ADLX_STD_CALL *SetSDRUser3DLUT)(IADLXDisplay3DLUT* pThis, ADLX_3DLUT_TRANSFER_FUNCTION transferFunction, ADLX_3DLUT_COLORSPACE colorSpace, adlx_int pointsNumber, const ADLX_3DLUT_Data* data); - ADLX_RESULT (ADLX_STD_CALL *GetHDRUser3DLUT)(IADLXDisplay3DLUT* pThis, ADLX_3DLUT_TRANSFER_FUNCTION* transferFunction, ADLX_3DLUT_COLORSPACE* colorSpace, adlx_int* pointsNumber, ADLX_3DLUT_Data* data); - ADLX_RESULT (ADLX_STD_CALL *SetHDRUser3DLUT)(IADLXDisplay3DLUT* pThis, ADLX_3DLUT_TRANSFER_FUNCTION transferFunction, ADLX_3DLUT_COLORSPACE colorSpace, adlx_int pointsNumber, const ADLX_3DLUT_Data* data); - ADLX_RESULT (ADLX_STD_CALL *GetAllUser3DLUT)(IADLXDisplay3DLUT* pThis, ADLX_3DLUT_TRANSFER_FUNCTION* transferFunction, ADLX_3DLUT_COLORSPACE* colorSpace, adlx_int* pointsNumber, ADLX_3DLUT_Data* data); - ADLX_RESULT (ADLX_STD_CALL *SetAllUser3DLUT)(IADLXDisplay3DLUT* pThis, ADLX_3DLUT_TRANSFER_FUNCTION transferFunction, ADLX_3DLUT_COLORSPACE colorSpace, adlx_int pointsNumber, const ADLX_3DLUT_Data* data); - ADLX_RESULT (ADLX_STD_CALL *GetUser3DLUTIndex)(IADLXDisplay3DLUT* pThis, adlx_int lutSize, const ADLX_UINT16_RGB* rgbCoordinate, adlx_int* index); -}IADLXDisplay3DLUTVtbl; - -struct IADLXDisplay3DLUT -{ - const IADLXDisplay3DLUTVtbl *pVtbl; -}; -#endif -#pragma endregion IADLXDisplay3DLUT interface - -#endif//ADLX_IDISPLAY3DLUT_H diff --git a/src/adlx/sdk/Include/IDisplayGamma.h b/src/adlx/sdk/Include/IDisplayGamma.h deleted file mode 100644 index de2c4cb..0000000 --- a/src/adlx/sdk/Include/IDisplayGamma.h +++ /dev/null @@ -1,683 +0,0 @@ -// -// Copyright (c) 2021 - 2023 Advanced Micro Devices, Inc. All rights reserved. -// -//------------------------------------------------------------------------------------------------- - -#ifndef ADLX_IDISPLAYGAMMA_H -#define ADLX_IDISPLAYGAMMA_H -#pragma once - -#include "ADLXStructures.h" - -//------------------------------------------------------------------------------------------------- -//IDisplayGamma.h - Interfaces for ADLX Display Gamma functionality - -//The DisplayGamma object implements this interface -#pragma region IADLXDisplayGamma interface -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLXDisplayGamma : public IADLXInterface - { - public: - ADLX_DECLARE_IID (L"IADLXDisplayGamma") - - /** - *@page DOX_IADLXDisplayGamma_IsCurrentReGammaRamp IsCurrentReGammaRamp - *@ENG_START_DOX @brief Checks if re-gamma ramp is used by a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsCurrentReGammaRamp (adlx_bool* isReGammaRamp) - *@codeEnd - * - *@params - *@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} - * - *@retvalues - *@ENG_START_DOX If the state of re-gamma ramp is successfully returned, __ADLX_OK__ is returned.
- * If the state of re-gamma ramp is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@copydoc IADLXDisplayGamma_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsCurrentReGammaRamp (adlx_bool* isReGammaRamp) = 0; - - /** - *@page DOX_IADLXDisplayGamma_IsCurrentDeGammaRamp IsCurrentDeGammaRamp - *@ENG_START_DOX @brief Checks if de-gamma ramp is used by a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsCurrentDeGammaRamp (adlx_bool* isDeGammaRamp) - *@codeEnd - * - *@params - *@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} - * - *@retvalues - *@ENG_START_DOX If the state of de-gamma ramp is successfully returned, __ADLX_OK__ is returned.
- * If the state of de-gamma ramp is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@copydoc IADLXDisplayGamma_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsCurrentDeGammaRamp (adlx_bool* isDeGammaRamp) = 0; - - /** - *@page DOX_IADLXDisplayGamma_IsCurrentRegammaCoefficient IsCurrentRegammaCoefficient - *@ENG_START_DOX @brief Checks if re-gamma coefficient is used by a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsCurrentRegammaCoefficient (adlx_bool* isRegammaCoeff) - *@codeEnd - * - *@params - *@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} - * - *@retvalues - *@ENG_START_DOX If the state of re-gamma coefficient is successfully returned, __ADLX_OK__ is returned.
- * If the state of re-gamma coefficient is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@copydoc IADLXDisplayGamma_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsCurrentRegammaCoefficient (adlx_bool* isRegammaCoeff) = 0; - - /** - *@page DOX_IADLXDisplayGamma_GetGammaRamp GetGammaRamp - *@ENG_START_DOX @brief Gets the gamma ramp LUT on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetGammaRamp (@ref ADLX_GammaRamp* lut) - *@codeEnd - * - *@params - *@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} - * - *@retvalues - *@ENG_START_DOX If the gamma ramp LUT is successfully returned, __ADLX_OK__ is returned.
- * If the gamma ramp LUT is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@copydoc IADLXDisplayGamma_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetGammaRamp (ADLX_GammaRamp* lut) = 0; - - /** - *@page DOX_IADLXDisplayGamma_GetGammaCoefficient GetGammaCoefficient - *@ENG_START_DOX @brief Gets the re-gamma coefficient settings on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetGammaCoefficient (@ref ADLX_RegammaCoeff* coeff) - *@codeEnd - * - *@params - *@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} - * - *@retvalues - *@ENG_START_DOX If the re-gamma coefficient settings are successfully returned, __ADLX_OK__ is returned.
- * If the re-gamma coefficient settings are not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details @ENG_END_DOX - * - *@copydoc IADLXDisplayGamma_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetGammaCoefficient (ADLX_RegammaCoeff* coeff) = 0; - - /** - *@page DOX_IADLXDisplayGamma_IsSupportedReGammaSRGB IsSupportedReGammaSRGB - *@ENG_START_DOX @brief Checks if the sRGB re-gamma is supported on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupportedReGammaSRGB (adlx_bool* isSupportedRegammaSRGB) - *@codeEnd - * - *@params - *@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} - * - *@retvalues - *@ENG_START_DOX If the state of sRGB re-gamma is successfully returned, __ADLX_OK__ is returned.
- * If the state of sRGB re-gamma is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@copydoc IADLXDisplayGamma_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupportedReGammaSRGB (adlx_bool* isSupportedRegammaSRGB) = 0; - - /** - *@page DOX_IADLXDisplayGamma_IsSupportedReGammaBT709 IsSupportedReGammaBT709 - *@ENG_START_DOX @brief Checks if the BT709 re-gamma is supported on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupportedReGammaBT709 (adlx_bool* isSupportedReGammaBT709) - *@codeEnd - * - *@params - *@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} - * - *@retvalues - *@ENG_START_DOX If the state of BT709 re-gamma is successfully returned, __ADLX_OK__ is returned.
- * If the state of BT709 re-gamma is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@copydoc IADLXDisplayGamma_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupportedReGammaBT709 (adlx_bool* isSupportedReGammaBT709) = 0; - - /** - *@page DOX_IADLXDisplayGamma_IsSupportedReGammaPQ IsSupportedReGammaPQ - *@ENG_START_DOX @brief Checks if the PQ re-gamma is supported on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupportedReGammaPQ (adlx_bool* isSupportedReGammaPQ) - *@codeEnd - * - *@params - *@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} - * - *@retvalues - *@ENG_START_DOX If the state of PQ re-gamma is successfully returned, __ADLX_OK__ is returned.
- * If the state of PQ re-gamma is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@copydoc IADLXDisplayGamma_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupportedReGammaPQ (adlx_bool* isSupportedReGammaPQ) = 0; - - /** - *@page DOX_IADLXDisplayGamma_IsSupportedReGammaPQ2084Interim IsSupportedReGammaPQ2084Interim - *@ENG_START_DOX @brief Checks if the PQ2084 re-gamma curve is supported on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupportedReGammaPQ2084Interim (adlx_bool* isSupportedReGammaPQ2084Interim); - *@codeEnd - * - *@params - *@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} - * - *@retvalues - *@ENG_START_DOX If the state of PQ2084 re-gamma curve is successfully returned, __ADLX_OK__ is returned.
- * If the state of PQ2084 re-gamma curve is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@copydoc IADLXDisplayGamma_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupportedReGammaPQ2084Interim (adlx_bool* isSupportedReGammaPQ2084Interim) = 0; - - /** - *@page DOX_IADLXDisplayGamma_IsSupportedReGamma36 IsSupportedReGamma36 - *@ENG_START_DOX @brief Checks if the 3.6 re-gamma is supported on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupportedReGamma36 (adlx_bool* isSupportedReGamma36) - *@codeEnd - * - *@params - *@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} - * - *@retvalues - *@ENG_START_DOX If the state of 3.6 re-gamma is successfully returned, __ADLX_OK__ is returned.
- * If the state of 3.6 re-gamma is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@copydoc IADLXDisplayGamma_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupportedReGamma36 (adlx_bool* isSupportedReGamma36) = 0; - - /** - *@page DOX_IADLXDisplayGamma_IsCurrentReGammaSRGB IsCurrentReGammaSRGB - *@ENG_START_DOX @brief Checks if the sRGB re-gamma is used by a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsCurrentReGammaSRGB (adlx_bool* isCurrentReGammaSRGB) - *@codeEnd - * - *@params - *@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} - * - *@retvalues - *@ENG_START_DOX If the state of sRGB re-gamma is successfully returned, __ADLX_OK__ is returned.
- * If the state of sRGB re-gamma is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@copydoc IADLXDisplayGamma_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsCurrentReGammaSRGB (adlx_bool* isCurrentReGammaSRGB) = 0; - - /** - *@page DOX_IADLXDisplayGamma_IsCurrentReGammaBT709 IsCurrentReGammaBT709 - *@ENG_START_DOX @brief Checks if the BT709 re-gamma is used by a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsCurrentReGammaBT709 (adlx_bool* isCurrentReGammaBT709) - *@codeEnd - * - *@params - *@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} - * - *@retvalues - *@ENG_START_DOX If the state of BT709 re-gamma is successfully returned, __ADLX_OK__ is returned.
- * If the state of BT709 re-gamma is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@copydoc IADLXDisplayGamma_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsCurrentReGammaBT709 (adlx_bool* isCurrentReGammaBT709) = 0; - - /** - *@page DOX_IADLXDisplayGamma_IsCurrentReGammaPQ IsCurrentReGammaPQ - *@ENG_START_DOX @brief Checks if the PQ re-gamma is used by a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsCurrentReGammaPQ (adlx_bool* isCurrentReGammaPQ) - *@codeEnd - * - *@params - *@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} - * - *@retvalues - *@ENG_START_DOX If the state of PQ re-gamma is successfully returned, __ADLX_OK__ is returned.
- * If the state of PQ re-gamma is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@copydoc IADLXDisplayGamma_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsCurrentReGammaPQ (adlx_bool* isCurrentReGammaPQ) = 0; - - /** - *@page DOX_IADLXDisplayGamma_IsCurrentReGammaPQ2084Interim IsCurrentReGammaPQ2084Interim - *@ENG_START_DOX @brief Checks if the PQ2084 re-gamma curve is used by a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsCurrentReGammaPQ2084Interim (adlx_bool* isCurrentReGammaPQ2084Interim) - *@codeEnd - * - *@params - *@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} - * - *@retvalues - *@ENG_START_DOX If the state of PQ2084 re-gamma curve is successfully returned, __ADLX_OK__ is returned.
- * If the state of PQ2084 re-gamma curve is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@copydoc IADLXDisplayGamma_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsCurrentReGammaPQ2084Interim (adlx_bool* isCurrentReGammaPQ2084Interim) = 0; - - /** - *@page DOX_IADLXDisplayGamma_IsCurrentReGamma36 IsCurrentReGamma36 - *@ENG_START_DOX @brief Checks if the 3.6 re-gamma is used by a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsCurrentReGamma36 (adlx_bool* isCurrentReGamma36) - *@codeEnd - * - *@params - *@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} - * - *@retvalues - *@ENG_START_DOX If the state of 3.6 re-gamma is successfully returned, __ADLX_OK__ is returned.
- * If the state of 3.6 re-gamma is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@copydoc IADLXDisplayGamma_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsCurrentReGamma36 (adlx_bool* isCurrentReGamma36) = 0; - - /** - *@page DOX_IADLXDisplayGamma_SetReGammaSRGB SetReGammaSRGB - *@ENG_START_DOX @brief Sets the sRGB re-gamma on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetReGammaSRGB () - *@codeEnd - * - *@params - * N/A - * - *@retvalues - *@ENG_START_DOX If the sRGB re-gamma is successfully set, __ADLX_OK__ is returned.
- * If the sRGB re-gamma is not successfully set, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - *@copydoc IADLXDisplayGamma_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetReGammaSRGB () = 0; - - /** - *@page DOX_IADLXDisplayGamma_SetReGammaBT709 SetReGammaBT709 - *@ENG_START_DOX @brief Sets the BT709 re-gamma on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetReGammaBT709 () - *@codeEnd - * - *@params - * N/A - * - *@retvalues - *@ENG_START_DOX If the BT709 re-gamma is successfully set, __ADLX_OK__ is returned.
- * If the BT709 re-gamma is not successfully set, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - *@copydoc IADLXDisplayGamma_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetReGammaBT709 () = 0; - - /** - *@page DOX_IADLXDisplayGamma_SetReGammaPQ SetReGammaPQ - *@ENG_START_DOX @brief Sets the PQ re-gamma on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetReGammaPQ () - *@codeEnd - * - *@params - * N/A - * - *@retvalues - *@ENG_START_DOX If the PQ re-gamma is successfully set, __ADLX_OK__ is returned.
- * If the PQ re-gamma is not successfully set, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - *@copydoc IADLXDisplayGamma_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetReGammaPQ () = 0; - - /** - *@page DOX_IADLXDisplayGamma_SetReGammaPQ2084Interim SetReGammaPQ2084Interim - *@ENG_START_DOX @brief Sets the PQ2084 re-gamma curve on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetReGammaPQ2084Interim () - *@codeEnd - * - *@params - * N/A - * - *@retvalues - *@ENG_START_DOX If the PQ2084 re-gamma curve is successfully set, __ADLX_OK__ is returned.
- * If the PQ2084 re-gamma curve is not successfully set, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@copydoc IADLXDisplayGamma_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetReGammaPQ2084Interim () = 0; - - /** - *@page DOX_IADLXDisplayGamma_SetReGamma36 SetReGamma36 - *@ENG_START_DOX @brief Sets the 3.6 re-gamma on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetReGamma36 () - *@codeEnd - * - *@params - * N/A - * - *@retvalues - *@ENG_START_DOX If the 3.6 re-gamma is successfully set, __ADLX_OK__ is returned.
- * If the 3.6 re-gamma is not successfully set, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - *@copydoc IADLXDisplayGamma_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetReGamma36 () = 0; - - /** - *@page DOX_IADLXDisplayGamma_SetReGammaCoefficient SetReGammaCoefficient - *@ENG_START_DOX @brief Sets the re-gamma coefficient on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetReGammaCoefficient (@ref ADLX_RegammaCoeff coeff) - *@codeEnd - * - * @params - * @paramrow{1.,[in] ,coeff,@ref ADLX_RegammaCoeff ,@ENG_START_DOX The re-gamma coefficient. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the re-gamma coefficient is successfully set, __ADLX_OK__ is returned.
- * If the re-gamma coefficient is not successfully set, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The method sets the custom coefficient on a display. - * The following is an example of a standard coefficient. @ENG_END_DOX - * coeff | sRGB | BT709 | Gamma2.2 | Gamma2.4 |P3 | - * :--- | :---: | :---: | :---: | :---: |:---: | - * CoefficientA0 | 31308 | 180000 | 0 | 0 | 0 | - * CoefficientA1 | 12920 | 4500 | 0 | 0 | 0 | - * CoefficientA2 | 55 | 99 | 0 | 0 | 0 | - * CoefficientA3 | 55 | 99 | 0 | 0 | 0 | - * Gamma | 2400 | 2200 | 2200 | 2400 | 2600 | - * - *@copydoc IADLXDisplayGamma_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetReGammaCoefficient (ADLX_RegammaCoeff coeff) = 0; - - /** - *@page DOX_IADLXDisplayGamma_SetDeGammaRampFile SetDeGammaRamp - *@ENG_START_DOX @brief Sets the de-gamma on a display using a ramp file. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetDeGammaRamp (const char* path) - *@codeEnd - * - * @params - * @paramrow{1.,[in] ,pPath,const char* ,@ENG_START_DOX The zero-terminated string that specifies the path of the ramp file. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the de-gamma is successfully set, __ADLX_OK__ is returned.
- * If the de-gamma is not successfully set, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The method sets the custom de-gamma on a display using a ramp file. - * The following is an example of a ramp file. @ENG_END_DOX - *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - * [R] [G] [B] - * [0] 0, 0, 0 - * [1] 49836, 34885, 0 - * ... - * [254] 58260, 58782, 0 - * [255] 65533, 56634, 0 - *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - * - *@copydoc IADLXDisplayGamma_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetDeGammaRamp (const char* path) = 0; - - /** - *@page DOX_IADLXDisplayGamma_SetDeGammaRampMemory SetDeGammaRamp - *@ENG_START_DOX @brief Sets the de-gamma on a display using a ramp buffer. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetDeGammaRamp (@ref ADLX_GammaRamp gammaRamp) - *@codeEnd - * - * @params - * @paramrow{1.,[in] ,gammaRamp,@ref ADLX_GammaRamp ,@ENG_START_DOX The gamma ramp buffer. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the de-gamma is successfully set, __ADLX_OK__ is returned.
- * If the de-gamma is not successfully set, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@copydoc IADLXDisplayGamma_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetDeGammaRamp (ADLX_GammaRamp gammaRamp) = 0; - - /** - *@page DOX_IADLXDisplayGamma_SetReGammaRampFile SetReGammaRamp - *@ENG_START_DOX @brief Sets the re-gamma on a display using a ramp file. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetReGammaRamp (const char* path) - *@codeEnd - * - * @params - * @paramrow{1.,[in] ,pPath,const char* ,@ENG_START_DOX The zero-terminated string that specifies the path of the ramp file. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the re-gamma is successfully set, __ADLX_OK__ is returned.
- * If the re-gamma is not successfully set, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The method sets the custom re-gamma on a display using a ramp file. - * The following is an example of a LUT file format, each acceptable value is a number between 0 and 65535. @ENG_END_DOX - *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - * [R] [G] [B] - * [0] 0, 0, 0 - * [1] 49836, 34885, 0 - * ... - * [254] 58260, 58782, 0 - * [255] 65533, 56634, 0 - *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - * - *@copydoc IADLXDisplayGamma_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetReGammaRamp (const char* path) = 0; - - /** - *@page DOX_IADLXDisplayGamma_SetReGammaRampMemory SetReGammaRamp - *@ENG_START_DOX @brief Sets the re-gamma on a display using a ramp buffer. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetReGammaRamp (@ref ADLX_GammaRamp gammaRamp) - *@codeEnd - * - * @params - * @paramrow{1.,[in] ,gammaRamp,@ref ADLX_GammaRamp ,@ENG_START_DOX The gamma ramp buffer. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the re-gamma is successfully set, __ADLX_OK__ is returned.
- * If the re-gamma is not successfully set, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@copydoc IADLXDisplayGamma_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetReGammaRamp (ADLX_GammaRamp gammaRamp) = 0; - - /** - *@page DOX_IADLXDisplayGamma_ResetGammaRamp ResetGammaRamp - *@ENG_START_DOX @brief Resets the gamma ramp on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT ResetGammaRamp () - *@codeEnd - * - * @params - * N/A - * - *@retvalues - *@ENG_START_DOX If the gamma ramp is successfully reset, __ADLX_OK__ is returned.
- * If the gamma ramp is not successfully reset, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@copydoc IADLXDisplayGamma_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL ResetGammaRamp () = 0; - }; //IADLXDisplayGamma - //---------------------------------------------------------------------------------------------- - typedef IADLXInterfacePtr_T IADLXDisplayGammaPtr; -} -#else -ADLX_DECLARE_IID (IADLXDisplayGamma, L"IADLXDisplayGamma") -typedef struct IADLXDisplayGamma IADLXDisplayGamma; - -typedef struct IADLXDisplayGammaVtbl -{ - //IADLXInterface - adlx_long (ADLX_STD_CALL *Acquire)(IADLXDisplayGamma* pThis); - adlx_long (ADLX_STD_CALL *Release)(IADLXDisplayGamma* pThis); - ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLXDisplayGamma* pThis, const wchar_t* interfaceId, void** ppInterface); - - //IADLXDisplayGamma - ADLX_RESULT (ADLX_STD_CALL *IsCurrentReGammaRamp)(IADLXDisplayGamma* pThis, adlx_bool* isCurrentReGammaRamp); - ADLX_RESULT (ADLX_STD_CALL *IsCurrentDeGammaRamp)(IADLXDisplayGamma* pThis, adlx_bool* isCurrentDeGammaRamp); - ADLX_RESULT (ADLX_STD_CALL *IsCurrentRegammaCoefficient)(IADLXDisplayGamma* pThis, adlx_bool* isCurrentRegammaCoefficient); - ADLX_RESULT (ADLX_STD_CALL *GetGammaRamp)(IADLXDisplayGamma* pThis, ADLX_GammaRamp* lut); - ADLX_RESULT (ADLX_STD_CALL *GetGammaCoefficient)(IADLXDisplayGamma* pThis, ADLX_RegammaCoeff* coeff); - - ADLX_RESULT (ADLX_STD_CALL *IsSupportedReGammaSRGB)(IADLXDisplayGamma* pThis, adlx_bool* isSupportedReGammaSRGB); - ADLX_RESULT (ADLX_STD_CALL *IsSupportedReGammaBT709)(IADLXDisplayGamma* pThis, adlx_bool* isSupportedReGammaBT709); - ADLX_RESULT (ADLX_STD_CALL *IsSupportedReGammaPQ)(IADLXDisplayGamma* pThis, adlx_bool* isSupportedReGammaPQ); - ADLX_RESULT (ADLX_STD_CALL *IsSupportedReGammaPQ2084Interim)(IADLXDisplayGamma* pThis, adlx_bool* isSupportedReGammaPQ2084Interim); - ADLX_RESULT (ADLX_STD_CALL *IsSupportedReGamma36)(IADLXDisplayGamma* pThis, adlx_bool* isSupportedReGamma36); - ADLX_RESULT (ADLX_STD_CALL *IsCurrentReGammaSRGB)(IADLXDisplayGamma* pThis, adlx_bool* isCurrentReGammaSRGB); - ADLX_RESULT (ADLX_STD_CALL *IsCurrentReGammaBT709)(IADLXDisplayGamma* pThis, adlx_bool* isCurrentReGammaBT709); - ADLX_RESULT (ADLX_STD_CALL *IsCurrentReGammaPQ)(IADLXDisplayGamma* pThis, adlx_bool* isCurrentReGammaPQ); - ADLX_RESULT (ADLX_STD_CALL *IsCurrentReGammaPQ2084Interim)(IADLXDisplayGamma* pThis, adlx_bool* isCurrentReGammaPQ2084Interim); - ADLX_RESULT (ADLX_STD_CALL *IsCurrentReGamma36)(IADLXDisplayGamma* pThis, adlx_bool* isCurrentReGamma36); - ADLX_RESULT (ADLX_STD_CALL *SetReGammaSRGB)(IADLXDisplayGamma* pThis); - ADLX_RESULT (ADLX_STD_CALL *SetReGammaBT709)(IADLXDisplayGamma* pThis); - ADLX_RESULT (ADLX_STD_CALL *SetReGammaPQ)(IADLXDisplayGamma* pThis); - ADLX_RESULT (ADLX_STD_CALL *SetReGammaPQ2084Interim)(IADLXDisplayGamma* pThis); - ADLX_RESULT (ADLX_STD_CALL *SetReGamma36)(IADLXDisplayGamma* pThis); - - ADLX_RESULT (ADLX_STD_CALL *SetReGammaCoefficient)(IADLXDisplayGamma* pThis, ADLX_RegammaCoeff coeff); - ADLX_RESULT (ADLX_STD_CALL *SetDeGammaRamp_Memory)(IADLXDisplayGamma* pThis, ADLX_GammaRamp gammaRamp); - ADLX_RESULT (ADLX_STD_CALL *SetDeGammaRamp_File)(IADLXDisplayGamma* pThis, const char* path); - ADLX_RESULT (ADLX_STD_CALL *SetReGammaRamp_Memory)(IADLXDisplayGamma* pThis, ADLX_GammaRamp gammaRamp); - ADLX_RESULT (ADLX_STD_CALL *SetReGammaRamp_File)(IADLXDisplayGamma* pThis, const char* path); - ADLX_RESULT (ADLX_STD_CALL *ResetGammaRamp)(IADLXDisplayGamma* pThis); -} IADLXDisplayGammaVtbl; - -struct IADLXDisplayGamma -{ - const IADLXDisplayGammaVtbl *pVtbl; -}; -#endif -#pragma endregion IADLXDisplayGamma interface - -#endif//ADLX_IDISPLAYGAMMA_H diff --git a/src/adlx/sdk/Include/IDisplayGamut.h b/src/adlx/sdk/Include/IDisplayGamut.h deleted file mode 100644 index 9f4c678..0000000 --- a/src/adlx/sdk/Include/IDisplayGamut.h +++ /dev/null @@ -1,760 +0,0 @@ -// -// Copyright (c) 2021 - 2023 Advanced Micro Devices, Inc. All rights reserved. -// -//------------------------------------------------------------------------------------------------- - -#ifndef ADLX_IDISPLAYGAMUT_H -#define ADLX_IDISPLAYGAMUT_H -#pragma once - -#include "ADLXStructures.h" - -//------------------------------------------------------------------------------------------------- -//IDisplayGamut.h - Interfaces for ADLX Display Gamut functionality -#pragma region IADLXDisplayGamut interface -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLXDisplayGamut : public IADLXInterface - { - public: - ADLX_DECLARE_IID (L"IADLXDisplayGamut") - - /** - *@page DOX_IADLXDisplayGamut_IsSupportedCCIR709ColorSpace IsSupportedCCIR709ColorSpace - *@ENG_START_DOX @brief Checks if the standard color space CCIR709 is supported on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupportedCCIR709ColorSpace (adlx_bool* supported) - *@codeEnd - * - *@params - * @paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of color space CCIR709 is returned. The variable is __true__ if the color space CCIR709 is supported. The variable is __false__ if the color space CCIR709 is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of color space CCIR709 is successfully returned, __ADLX_OK__ is returned.
- * If the state of color space CCIR709 is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The gamut color space CCIR709, also known as Rec.709, BT.709, and ITU 709, is a standard developed by ITU-R for image encoding and signal characteristics for high-definition television. @ENG_END_DOX - * - *@copydoc IADLXDisplayGamut_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupportedCCIR709ColorSpace (adlx_bool* supported) const = 0; - - /** - *@page DOX_IADLXDisplayGamut_IsSupportedCCIR601ColorSpace IsSupportedCCIR601ColorSpace - *@ENG_START_DOX @brief Checks if the standard color space CCIR601 is supported on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupportedCCIR601ColorSpace (adlx_bool* supported) - *@codeEnd - * - *@params - * @paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of color space CCIR601 is returned. The variable is __true__ if the color space CCIR601 is supported. The variable is __false__ if the color space CCIR601 is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of color space CCIR601 is successfully returned, __ADLX_OK__ is returned.
- * If the state of color space CCIR601 is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The color space CCIR601 is a standard, originally issued in 1982 by the CCIR, for encoding interlaced analog video signals in digital video form and is also known as Rec.601 or BT.601. @ENG_END_DOX - * - * - *@copydoc IADLXDisplayGamut_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupportedCCIR601ColorSpace (adlx_bool* supported) const = 0; - - /** - *@page DOX_IADLXDisplayGamut_IsSupportedAdobeRgbColorSpace IsSupportedAdobeRgbColorSpace - *@ENG_START_DOX @brief Checks if the standard color space Adobe RGB is supported on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupportedAdobeRgbColorSpace (adlx_bool* supported) - *@codeEnd - * - *@params - * @paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of color space Adobe RGB is returned. The variable is __true__ if the color space Adobe RGB is supported. The variable is __false__ if the color space Adobe RGB is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of color space Adobe RGB is successfully returned, __ADLX_OK__ is returned.
- * If the state of color space Adobe RGB is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The standard gamut Adobe RGB (1998) color space or opRGB was developed by Adobe Systems, Inc. in 1998. The color space was designed to encompass most of the colors achievable on CMYK color printers, but by using RGB primary colors on a device such as a computer display. @ENG_END_DOX - * - * - *@copydoc IADLXDisplayGamut_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupportedAdobeRgbColorSpace (adlx_bool* supported) const = 0; - - /** - *@page DOX_IADLXDisplayGamut_IsSupportedCIERgbColorSpace IsSupportedCIERgbColorSpace - *@ENG_START_DOX @brief Checks if the standard color space CIERgb is supported on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupportedCIERgbColorSpace (adlx_bool* supported) - *@codeEnd - * - *@params - * @paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of color space CIERgb is returned. The variable is __true__ if the color space CIERgb is supported. The variable is __false__ if the color space CIERgb is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of color space CIERgb is successfully returned, __ADLX_OK__ is returned.
- * If the state of color space CIERgb is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The standard gamut CIERgb or standard RGB (red, green, blue) color space was co-operatively created by Microsoft and Hewlett-Packard (HP) in 1996 to be used on monitors, printers, and websites. @ENG_END_DOX - * - * - *@copydoc IADLXDisplayGamut_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupportedCIERgbColorSpace (adlx_bool* supported) const = 0; - - /** - *@page DOX_IADLXDisplayGamut_IsSupportedCCIR2020ColorSpace IsSupportedCCIR2020ColorSpace - *@ENG_START_DOX @brief Checks if the standard color space BT.2020 is supported on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupportedCCIR2020ColorSpace (adlx_bool* supported) - *@codeEnd - * - *@params - * @paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of color space CCIR2020 is returned. The variable is __true__ if the color space CCIR2020 is supported. The variable is __false__ if the color space CCIR2020 is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of color space CCIR2020 is successfully returned, __ADLX_OK__ is returned.
- * If the state of color space CCIR2020 is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details ITU-R Recommendation BT.2020, is commonly known by the abbreviations Rec.2020 or BT.2020. It defines various aspects of Ultra-High-Definition Television (UHDTV) with Standard Dynamic Range (SDR) and Wide Color Gamut (WCG), including picture resolutions, frame rates with progressive scan, bit depths, color primaries, RGB, and luma-chroma color representations, chroma subsampling, and opto-electronic transfer function. @ENG_END_DOX - * - *@copydoc IADLXDisplayGamut_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupportedCCIR2020ColorSpace (adlx_bool* supported) const = 0; - - /** - *@page DOX_IADLXDisplayGamut_IsSupportedCustomColorSpace IsSupportedCustomColorSpace - *@ENG_START_DOX @brief Checks if custom color space is supported on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupportedCustomColorSpace (adlx_bool* supported) - *@codeEnd - * - *@params - * @paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of custom color space is returned. The variable is __true__ if custom color space is supported. The variable is __false__ if custom color space is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of custom color space is successfully returned, __ADLX_OK__ is returned.
- * If the state of custom color space is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The custom color space can be changed as required. @ENG_END_DOX - * - *@copydoc IADLXDisplayGamut_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupportedCustomColorSpace (adlx_bool* supported) const = 0; - - /** - *@page DOX_IADLXDisplayGamut_IsSupported5000kWhitePoint IsSupported5000kWhitePoint - *@ENG_START_DOX @brief Checks if the standard white point 5000k is supported on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupported5000kWhitePoint (adlx_bool* supported) - *@codeEnd - * - *@params - * @paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of white point 5000k is returned. The variable is __true__ if the white point 5000k is supported. The variable is __false__ if the white point 5000k is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of white point 5000k is successfully returned, __ADLX_OK__ is returned.
- * If the state of white point 5000k is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * - *@copydoc IADLXDisplayGamut_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupported5000kWhitePoint (adlx_bool* supported) const = 0; - - /** - *@page DOX_IADLXDisplayGamut_IsSupported6500kWhitePoint IsSupported6500kWhitePoint - *@ENG_START_DOX @brief Checks if the standard white point 6500k is supported on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupported6500kWhitePoint (adlx_bool* supported) - *@codeEnd - * - *@params - * @paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of white point 6500k is returned. The variable is __true__ if the white point 6500k is supported. The variable is __false__ if the white point 6500k is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of white point 6500k is successfully returned, __ADLX_OK__ is returned.
- * If the state of white point 6500k is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * - *@copydoc IADLXDisplayGamut_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupported6500kWhitePoint (adlx_bool* supported) const = 0; - - /** - *@page DOX_IADLXDisplayGamut_IsSupported7500kWhitePoint IsSupported7500kWhitePoint - *@ENG_START_DOX @brief Checks if the standard white point 7500k is supported on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupported7500kWhitePoint (adlx_bool* supported) - *@codeEnd - * - *@params - * @paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of white point 7500k is returned. The variable is __true__ if the white point 7500k is supported. The variable is __false__ if the white point 7500k is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of white point 7500k is successfully returned, __ADLX_OK__ is returned.
- * If the state of white point 7500k is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * - *@copydoc IADLXDisplayGamut_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupported7500kWhitePoint (adlx_bool* supported) const = 0; - - /** - *@page DOX_IADLXDisplayGamut_IsSupported9300kWhitePoint IsSupported9300kWhitePoint - *@ENG_START_DOX @brief Checks if the standard white point 9300k is supported on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupported9300kWhitePoint (adlx_bool* supported) - *@codeEnd - * - *@params - * @paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of white point 9300k is returned. The variable is __true__ if the white point 9300k is supported. The variable is __false__ if the white point 9300k is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of white point 9300k is successfully returned, __ADLX_OK__ is returned.
- * If the state of white point 9300k is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * - *@copydoc IADLXDisplayGamut_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupported9300kWhitePoint (adlx_bool* supported) const = 0; - - /** - *@page DOX_IADLXDisplayGamut_IsSupportedCustomWhitePoint IsSupportedCustomWhitePoint - *@ENG_START_DOX @brief Checks if custom white point is supported on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupportedCustomWhitePoint (adlx_bool* supported) - *@codeEnd - * - *@params - * @paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of custom white point is returned.The variable is __true__ if custom white point is supported. The variable is __false__ if custom white point is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of custom white point is successfully returned, __ADLX_OK__ is returned.
- * If the state of custom white point is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * - *@copydoc IADLXDisplayGamut_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupportedCustomWhitePoint (adlx_bool* supported) const = 0; - - /** - *@page DOX_IADLXDisplayGamut_IsCurrent5000kWhitePoint IsCurrent5000kWhitePoint - *@ENG_START_DOX @brief Checks if the standard white point 5000k is used by a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsCurrent5000kWhitePoint (adlx_bool* isSet) - *@codeEnd - * - *@params - * @paramrow{1.,[out],isSet,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of white point 5000k is returned. The variable is __true__ if white point 5000k is used. The variable is __false__ if white point 5000k is not used. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of white point 5000k is successfully returned, __ADLX_OK__ is returned.
- * If the state of white point 5000k is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * - *@copydoc IADLXDisplayGamut_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsCurrent5000kWhitePoint (adlx_bool* isSet) const = 0; - - /** - *@page DOX_IADLXDisplayGamut_IsCurrent6500kWhitePoint IsCurrent6500kWhitePoint - *@ENG_START_DOX @brief Checks if the standard white point 6500k is used by a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsCurrent6500kWhitePoint (adlx_bool* isSet) - *@codeEnd - * - *@params - * @paramrow{1.,[out],isSet,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of white point 6500k is returned.The variable is __true__ if white point 6500k is used. The variable is __false__ if white point 6500k is not used. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of white point 6500k is successfully returned, __ADLX_OK__ is returned.
- * If the state of white point 6500k is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * - *@copydoc IADLXDisplayGamut_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsCurrent6500kWhitePoint (adlx_bool* isSet) const = 0; - - /** - *@page DOX_IADLXDisplayGamut_IsCurrent7500kWhitePoint IsCurrent7500kWhitePoint - *@ENG_START_DOX @brief Checks if the standard white point 7500k is used by a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsCurrent7500kWhitePoint (adlx_bool* isSet) - *@codeEnd - * - *@params - * @paramrow{1.,[out],isSet,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of white point 7500k is returned. The variable is __true__ if white point 7500k is used. The variable is __false__ if white point 7500k is not used. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of white point 7500k is successfully returned, __ADLX_OK__ is returned.
- * If the state of white point 7500k is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * - *@copydoc IADLXDisplayGamut_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsCurrent7500kWhitePoint (adlx_bool* isSet) const = 0; - - /** - *@page DOX_IADLXDisplayGamut_IsCurrent9300kWhitePoint IsCurrent9300kWhitePoint - *@ENG_START_DOX @brief Checks if the standard white point 9300k is used by a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsCurrent9300kWhitePoint (adlx_bool* isSet) - *@codeEnd - * - *@params - * @paramrow{1.,[out],isSet,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of white point 9300k is returned. The variable is __true__ if white point 9300k is used. The variable is __false__ if white point 9300k is not used. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of white point 9300k is successfully returned, __ADLX_OK__ is returned.
- * If the state of white point 9300k is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * - *@copydoc IADLXDisplayGamut_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsCurrent9300kWhitePoint (adlx_bool* isSet) const = 0; - - /** - *@page DOX_IADLXDisplayGamut_IsCurrentCustomWhitePoint IsCurrentCustomWhitePoint - *@ENG_START_DOX @brief Checks if a custom white point is used by a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsCurrentCustomWhitePoint (adlx_bool* isSet) - *@codeEnd - * - *@params - * @paramrow{1.,[out],isSet,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of custom white point is returned. The variable is __true__ if a custom white point is used. The variable is __false__ if a custom white point is not used. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of custom white point is successfully returned, __ADLX_OK__ is returned.
- * If the state of custom white point is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * - *@copydoc IADLXDisplayGamut_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsCurrentCustomWhitePoint (adlx_bool* isSet) const = 0; - - /** - *@page DOX_IADLXDisplayGamut_GetWhitePoint GetWhitePoint - *@ENG_START_DOX @brief Gets the white point coordinates (x, y) of a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetWhitePoint (@ref ADLX_Point* point) - *@codeEnd - * - * @params - * @paramrow{1.,[out] ,point,@ref ADLX_Point* ,@ENG_START_DOX The pointer to a variable where the white point coordinates are returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the white point coordinates are successfully returned, __ADLX_OK__ is returned.
- * If the white point coordinates are not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * - *@copydoc IADLXDisplayGamut_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetWhitePoint (ADLX_Point* point) const = 0; - - /** - *@page DOX_IADLXDisplayGamut_IsCurrentCCIR709ColorSpace IsCurrentCCIR709ColorSpace - *@ENG_START_DOX @brief Checks if the standard color space CCIR709 is used by a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsCurrentCCIR709ColorSpace (adlx_bool* isSet) - *@codeEnd - * - *@params - * @paramrow{1.,[out],isSet,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of color space CCIR709 is returned. The variable is __true__ if color space CCIR709 is used. The variable is __false__ if color space CCIR709 is not used. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of color space CCIR709 is successfully returned, __ADLX_OK__ is returned.
- * If the state of color space CCIR709 is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * - *@copydoc IADLXDisplayGamut_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsCurrentCCIR709ColorSpace (adlx_bool* isSet) const = 0; - - /** - *@page DOX_IADLXDisplayGamut_IsCurrentCCIR601ColorSpace IsCurrentCCIR601ColorSpace - *@ENG_START_DOX @brief Checks if the standard color space CCIR601 is used by a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsCurrentCCIR601ColorSpace (adlx_bool* isSet) - *@codeEnd - * - *@params - * @paramrow{1.,[out],isSet,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of color space CCIR601 is returned. The variable is __true__ if color space CCIR601 is used. The variable is __false__ if color space CCIR601 is not used. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of color space CCIR601 is successfully returned, __ADLX_OK__ is returned.
- * If the state of color space CCIR601 is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * - *@copydoc IADLXDisplayGamut_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsCurrentCCIR601ColorSpace (adlx_bool* isSet) const = 0; - - /** - *@page DOX_IADLXDisplayGamut_IsCurrentAdobeRgbColorSpace IsCurrentAdobeRgbColorSpace - *@ENG_START_DOX @brief Checks if the standard color space Adobe RGB is used by a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsCurrentAdobeRgbColorSpace (adlx_bool* isSet) - *@codeEnd - * - *@params - * @paramrow{1.,[out],isSet,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of color space Adobe RGB is returned. The variable is __true__ if color space Adobe RGB is used. The variable is __false__ if color space Adobe RGB is not used. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of color space Adobe RGB is successfully returned, __ADLX_OK__ is returned.
- * If the state of color space Adobe RGB is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * - *@copydoc IADLXDisplayGamut_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsCurrentAdobeRgbColorSpace (adlx_bool* isSet) const = 0; - - /** - *@page DOX_IADLXDisplayGamut_IsCurrentCIERgbColorSpace IsCurrentCIERgbColorSpace - *@ENG_START_DOX @brief Checks if the standard color space sRGB is used by a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsCurrentCIERgbColorSpace (adlx_bool* isSet) - *@codeEnd - * - *@params - * @paramrow{1.,[out],isSet,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of color space sRGB is returned. The variable is __true__ if color space sRGB is used. The variable is __false__ if color space sRGB is not used. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of color space sRGB is successfully returned, __ADLX_OK__ is returned.
- * If the state of color space sRGB is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * - *@copydoc IADLXDisplayGamut_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsCurrentCIERgbColorSpace (adlx_bool* isSet) const = 0; - - /** - *@page DOX_IADLXDisplayGamut_IsCurrentCCIR2020ColorSpace IsCurrentCCIR2020ColorSpace - *@ENG_START_DOX @brief Checks if the standard color space CCIR2020 is used by a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsCurrentCCIR2020ColorSpace (adlx_bool* isSet) - *@codeEnd - * - *@params - * @paramrow{1.,[out],isSet,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of color space CCIR709 is returned. The variable is __true__ if color space CCIR2020 is used. The variable is __false__ if color space CCIR2020 is not used. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of color space CCIR709 is successfully returned, __ADLX_OK__ is returned.
- * If the state of color space CCIR709 is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * - *@copydoc IADLXDisplayGamut_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsCurrentCCIR2020ColorSpace (adlx_bool* isSet) const = 0; - - /** - *@page DOX_IADLXDisplayGamut_IsCurrentCustomColorSpace IsCurrentCustomColorSpace - *@ENG_START_DOX @brief Checks if a custom color space is used by a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsCurrentCustomColorSpace (adlx_bool* isSet) - *@codeEnd - * - *@params - * @paramrow{1.,[out],isSet,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of custom color space is returned. The variable is __true__ if a custom color space is used. The variable is __false__ if a custom color space is not used. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of custom color space is successfully returned, __ADLX_OK__ is returned.
- * If the state of custom color space is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details For more information on color coordinates, refer to @ref ADLX_GamutColorSpace. @ENG_END_DOX - * - *@copydoc IADLXDisplayGamut_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsCurrentCustomColorSpace (adlx_bool* isSet) const = 0; - - /** - *@page DOX_IADLXDisplayGamut_GetGamutColorSpace GetGamutColorSpace - *@ENG_START_DOX @brief Gets the color space coordinates of a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetGamutColorSpace (@ref ADLX_GamutColorSpace* gamutColorSpace) - *@codeEnd - * - * @params - * @paramrow{1.,[out] ,gamutColorSpace,@ref ADLX_GamutColorSpace* ,@ENG_START_DOX The pointer to a variable where the gamut color space are returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the color space coordinates are successfully returned, __ADLX_OK__ is returned.
- * If the color space coordinates are not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The gamut color space coordinates consist of (y, x) chromaticity coordinates for the red, green, and blue channels. @ENG_END_DOX - * - *@copydoc IADLXDisplayGamut_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetGamutColorSpace (ADLX_GamutColorSpace* gamutColorSpace) const = 0; - - /** - *@page DOX_IADLXDisplayGamut_SetGamut_PW_PG SetGamut - *@ENG_START_DOX @brief Sets a predefined white point for a predefined color space on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetGamut (@ref ADLX_WHITE_POINT predefinedWhitePoint, @ref ADLX_GAMUT_SPACE predefinedGamutSpace) - *@codeEnd - * - * @params - * @paramrow{1.,[in] ,predefinedWhitePoint,@ref ADLX_WHITE_POINT ,@ENG_START_DOX The predefined white point. @ENG_END_DOX} - * @paramrow{2.,[in] ,predefinedGamutSpace,@ref ADLX_GAMUT_SPACE ,@ENG_START_DOX The predefined color space. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the gamut settings are successfully set, __ADLX_OK__ is returned.
- * If the gamut settings are not successfully set, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details For more information on white point coordinates, Refer to @ref ADLX_Point.
- * For more information on color space coordinates, refer to @ref ADLX_GamutColorSpace. @ENG_END_DOX - * - *@copydoc IADLXDisplayGamut_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetGamut (ADLX_WHITE_POINT predefinedWhitePoint, ADLX_GAMUT_SPACE predefinedGamutSpace) = 0; - - /** - *@page DOX_IADLXDisplayGamut_SetGamut_CW_PG SetGamut - *@ENG_START_DOX @brief Sets a custom white point for a predefined color space on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetGamut (@ref ADLX_RGB customWhitePoint, @ref ADLX_GAMUT_SPACE predefinedGamutSpace) - *@codeEnd - * - * @params - * @paramrow{1.,[in] ,customWhitePoint,@ref ADLX_RGB ,@ENG_START_DOX The custom white point. @ENG_END_DOX} - * @paramrow{2.,[in] ,predefinedGamutSpace,@ref ADLX_GAMUT_SPACE ,@ENG_START_DOX The predefined color space. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the gamut settings are successfully set, __ADLX_OK__ is returned.
- * If the gamut settings are not successfully set, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details For more information on white point coordinates, refer to @ref ADLX_Point.
- * For more information on color space coordinates, refer to @ref ADLX_GamutColorSpace. @ENG_END_DOX - * - *@copydoc IADLXDisplayGamut_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetGamut (ADLX_RGB customWhitePoint, ADLX_GAMUT_SPACE predefinedGamutSpace) = 0; - - /** - *@page DOX_IADLXDisplayGamut_SetGamut_PW_CG SetGamut - *@ENG_START_DOX @brief Sets a predefined white point for a custom color space on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetGamut (@ref ADLX_WHITE_POINT predefinedWhitePoint, @ref ADLX_GamutColorSpace customGamut) - *@codeEnd - * - * @params - * @paramrow{1.,[in] ,predefinedWhitePoint,@ref ADLX_WHITE_POINT ,@ENG_START_DOX The predefined white point. @ENG_END_DOX} - * @paramrow{2.,[in] ,customGamut,@ref ADLX_GamutColorSpace ,@ENG_START_DOX The custom color space. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the gamut settings are successfully set, __ADLX_OK__ is returned.
- * If the gamut settings are not successfully set, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details For more information on white point coordinates, refer to @ref ADLX_Point.
- * For more information on color space coordinates, refer to @ref ADLX_GamutColorSpace. @ENG_END_DOX - * - *@copydoc IADLXDisplayGamut_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetGamut (ADLX_WHITE_POINT predefinedWhitePoint, ADLX_GamutColorSpace customGamut) = 0; - - /** - *@page DOX_IADLXDisplayGamut_SetGamut_CW_CG SetGamut - *@ENG_START_DOX @brief Sets a custom white point, for a custom color space on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetGamut (@ref ADLX_RGB customWhitePoint, @ref ADLX_GamutColorSpace customGamut) - *@codeEnd - * - * @params - * @paramrow{1.,[in] ,customWhitePoint,@ref ADLX_RGB ,@ENG_START_DOX The custom white point. @ENG_END_DOX} - * @paramrow{2.,[in] ,customGamut,@ref ADLX_GamutColorSpace ,@ENG_START_DOX The custom color space. @ENG_END_DOX} - * - * @retvalues - *@ENG_START_DOX If the gamut settings are successfully set, __ADLX_OK__ is returned.
- * If the gamut settings are not successfully set, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details For more information on white point coordinates, Refer to @ref ADLX_Point.
- * For more information on color space coordinates, refer to @ref ADLX_GamutColorSpace. @ENG_END_DOX - * - *@copydoc IADLXDisplayGamut_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetGamut (ADLX_RGB customWhitePoint, ADLX_GamutColorSpace customGamut) = 0; - }; //IADLXDisplayGamut - //---------------------------------------------------------------------------------------------- - typedef IADLXInterfacePtr_T IADLXDisplayGamutPtr; -} -#else - -ADLX_DECLARE_IID (IADLXDisplayGamut, L"IADLXDisplayGamut") -typedef struct IADLXDisplayGamut IADLXDisplayGamut; - -typedef struct IADLXDisplayGamutVtbl -{ - //IADLXInterface - adlx_long (ADLX_STD_CALL* Acquire)(IADLXDisplayGamut* pThis); - adlx_long (ADLX_STD_CALL* Release)(IADLXDisplayGamut* pThis); - ADLX_RESULT (ADLX_STD_CALL* QueryInterface)(IADLXDisplayGamut* pThis, const wchar_t* interfaceId, void** ppInterface); - - //IADLXDisplayGamut - ADLX_RESULT (ADLX_STD_CALL* IsSupportedCCIR709ColorSpace)(IADLXDisplayGamut* pThis, adlx_bool* supported); - ADLX_RESULT (ADLX_STD_CALL* IsSupportedCCIR601ColorSpace)(IADLXDisplayGamut* pThis, adlx_bool* supported); - ADLX_RESULT (ADLX_STD_CALL* IsSupportedAdobeRgbColorSpace)(IADLXDisplayGamut* pThis, adlx_bool* supported); - ADLX_RESULT (ADLX_STD_CALL* IsSupportedCIERgbColorSpace)(IADLXDisplayGamut* pThis, adlx_bool* supported); - ADLX_RESULT (ADLX_STD_CALL* IsSupportedCCIR2020ColorSpace)(IADLXDisplayGamut* pThis, adlx_bool* supported); - ADLX_RESULT (ADLX_STD_CALL* IsSupportedCustomColorSpace)(IADLXDisplayGamut* pThis, adlx_bool* supported); - - ADLX_RESULT (ADLX_STD_CALL* IsSupported5000kWhitePoint)(IADLXDisplayGamut* pThis, adlx_bool* supported); - ADLX_RESULT (ADLX_STD_CALL* IsSupported6500kWhitePoint)(IADLXDisplayGamut* pThis, adlx_bool* supported); - ADLX_RESULT (ADLX_STD_CALL* IsSupported7500kWhitePoint)(IADLXDisplayGamut* pThis, adlx_bool* supported); - ADLX_RESULT (ADLX_STD_CALL* IsSupported9300kWhitePoint)(IADLXDisplayGamut* pThis, adlx_bool* supported); - ADLX_RESULT (ADLX_STD_CALL* IsSupportedCustomWhitePoint)(IADLXDisplayGamut* pThis, adlx_bool* supported); - - ADLX_RESULT (ADLX_STD_CALL* IsCurrent5000kWhitePoint)(IADLXDisplayGamut* pThis, adlx_bool* isSet); - ADLX_RESULT (ADLX_STD_CALL* IsCurrent6500kWhitePoint)(IADLXDisplayGamut* pThis, adlx_bool* isSet); - ADLX_RESULT (ADLX_STD_CALL* IsCurrent7500kWhitePoint)(IADLXDisplayGamut* pThis, adlx_bool* isSet); - ADLX_RESULT (ADLX_STD_CALL* IsCurrent9300kWhitePoint)(IADLXDisplayGamut* pThis, adlx_bool* isSet); - ADLX_RESULT (ADLX_STD_CALL* IsCurrentCustomWhitePoint)(IADLXDisplayGamut* pThis, adlx_bool* isSet); - ADLX_RESULT (ADLX_STD_CALL* GetWhitePoint)(IADLXDisplayGamut* pThis, ADLX_Point* point); - - ADLX_RESULT (ADLX_STD_CALL* IsCurrentCCIR709ColorSpace)(IADLXDisplayGamut* pThis, adlx_bool* isSet); - ADLX_RESULT (ADLX_STD_CALL* IsCurrentCCIR601ColorSpace)(IADLXDisplayGamut* pThis, adlx_bool* isSet); - ADLX_RESULT (ADLX_STD_CALL* IsCurrentAdobeRgbColorSpace)(IADLXDisplayGamut* pThis, adlx_bool* isSet); - ADLX_RESULT (ADLX_STD_CALL* IsCurrentCIERgbColorSpace)(IADLXDisplayGamut* pThis, adlx_bool* isSet); - ADLX_RESULT (ADLX_STD_CALL* IsCurrentCCIR2020ColorSpace)(IADLXDisplayGamut* pThis, adlx_bool* isSet); - ADLX_RESULT (ADLX_STD_CALL* IsCurrentCustomColorSpace)(IADLXDisplayGamut* pThis, adlx_bool* isSet); - ADLX_RESULT (ADLX_STD_CALL* GetGamutColorSpace)(IADLXDisplayGamut* pThis, ADLX_GamutColorSpace* gamutColorSpace); - - ADLX_RESULT (ADLX_STD_CALL* SetGamut_CW_CG)(IADLXDisplayGamut* pThis, ADLX_RGB customWhitePoint, ADLX_GamutColorSpace customGamut); - ADLX_RESULT (ADLX_STD_CALL* SetGamut_PW_CG)(IADLXDisplayGamut* pThis, ADLX_WHITE_POINT predefinedWhitePoint, ADLX_GamutColorSpace customGamut); - ADLX_RESULT (ADLX_STD_CALL* SetGamut_CW_PG)(IADLXDisplayGamut* pThis, ADLX_RGB customWhitePoint, ADLX_GAMUT_SPACE predefinedGamutSpace); - ADLX_RESULT (ADLX_STD_CALL* SetGamut_PW_PG)(IADLXDisplayGamut* pThis, ADLX_WHITE_POINT predefinedWhitePoint, ADLX_GAMUT_SPACE predefinedGamutSpace); - -} IADLXDisplayGamutVtbl; - -struct IADLXDisplayGamut -{ - const IADLXDisplayGamutVtbl* pVtbl; -}; -#endif -#pragma endregion IADLXDisplayGamut interface - -#endif//ADLX_IDISPLAYGAMUT_H diff --git a/src/adlx/sdk/Include/IDisplaySettings.h b/src/adlx/sdk/Include/IDisplaySettings.h deleted file mode 100644 index 43323f6..0000000 --- a/src/adlx/sdk/Include/IDisplaySettings.h +++ /dev/null @@ -1,2900 +0,0 @@ -// -// Copyright (c) 2023 Advanced Micro Devices, Inc. All rights reserved. -// -//------------------------------------------------------------------------------------------------- - -#ifndef ADLX_IDISPLAYSETTING_H -#define ADLX_IDISPLAYSETTING_H - -#pragma once - -#include "ADLXStructures.h" -#include "ICollections.h" - -#pragma region IADLXDisplayFreeSync interface - -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLXDisplayFreeSync : public IADLXInterface - { - public: - ADLX_DECLARE_IID (L"IADLXDisplayFreeSync") - /** - *@page DOX_IADLXDisplayFreeSync_IsSupported IsSupported - *@ENG_START_DOX @brief Checks if the AMD FreeSyncâ„¢ is supported on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupported (adlx_bool* supported) - *@codeEnd - * - *@params - * @paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of AMD FreeSync is returned. The variable is __true__ if AMD FreeSync is supported. The variable is __false__ if AMD FreeSync is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of AMD FreeSync is successfully returned, __ADLX_OK__ is returned.
- * If the state of AMD FreeSync is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@addinfo - *@ENG_START_DOX AMD FreeSync technology synchronizes the refresh rate of a display with the framerate of AMD FreeSync compatible graphics card to deliver dynamic refresh rate.
- * - * AMD FreeSync technology reduces or eliminates visual artifacts, input latency, screen tearing and stuttering during gaming and video playback. AMD FreeSync technology can be delivered through DisplayPort and HDMI® connections. @ENG_END_DOX - * - *@copydoc IADLXDisplayFreeSync_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupported (adlx_bool* supported) = 0; - /** - *@page DOX_IADLXDisplayFreeSync_IsEnabled IsEnabled - *@ENG_START_DOX @brief Checks if the AMD FreeSync™ is enabled on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsEnabled (adlx_bool* enabled) - *@codeEnd - * - *@params - * @paramrow{1.,[out],enabled,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of AMD FreeSync is returned. The variable is __true__ if AMD FreeSync is enabled. The variable is __false__ if AMD FreeSync is not enabled. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of AMD FreeSync is successfully returned, __ADLX_OK__ is returned.
- * If the state of AMD FreeSync is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@addinfo - *@ENG_START_DOX AMD FreeSync technology synchronizes the refresh rate of a display with the framerate of AMD FreeSync compatible graphics card to deliver dynamic refresh rate.
- * - * AMD FreeSync technology reduces or eliminates visual artifacts, input latency, screen tearing and stuttering during gaming and video playback. AMD FreeSync technology can be delivered through DisplayPort and HDMI® connections. @ENG_END_DOX - * - *@copydoc IADLXDisplayFreeSync_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsEnabled (adlx_bool* enabled) = 0; - /** - *@page DOX_IADLXDisplayFreeSync_SetEnabled SetEnabled - *@ENG_START_DOX @brief Sets the AMD FreeSync™ to enabled or disabled state on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetEnabled (adlx_bool enable) - *@codeEnd - * - *@params - * @paramrow{1.,[in],enable,adlx_bool,@ENG_START_DOX The new AMD FreeSync state. Set __true__ to enable AMD FreeSync. Set __false__ to disable AMD FreeSync. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the AMD FreeSync enabled status is successfully returned, __ADLX_OK__ is returned.
- * If the AMD FreeSync enabled status is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@addinfo - *@ENG_START_DOX AMD FreeSync technology synchronizes the refresh rate of a display with the framerate of AMD FreeSync compatible graphics card to deliver dynamic refresh rate.
- * - * AMD FreeSync technology reduces or eliminates visual artifacts, input latency, screen tearing and stuttering during gaming and video playback. AMD FreeSync technology can be delivered through DisplayPort and HDMI® connections. @ENG_END_DOX - * - * - *@copydoc IADLXDisplayFreeSync_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetEnabled (adlx_bool enabled) = 0; - }; - typedef IADLXInterfacePtr_T IADLXDisplayFreeSyncPtr; -} - -#else -ADLX_DECLARE_IID (IADLXDisplayFreeSync, L"IADLXDisplayFreeSync") -typedef struct IADLXDisplayFreeSync IADLXDisplayFreeSync; - -typedef struct IADLXFreeSyncVtbl -{ - //IADLXInterface - adlx_long (ADLX_STD_CALL *Acquire)(IADLXDisplayFreeSync* pThis); - adlx_long (ADLX_STD_CALL *Release)(IADLXDisplayFreeSync* pThis); - ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLXDisplayFreeSync* pThis, const wchar_t* interfaceId, void** ppInterface); - - //IADLXDisplayFreeSync - ADLX_RESULT (ADLX_STD_CALL *IsSupported)(IADLXDisplayFreeSync* pThis, adlx_bool* supported); - ADLX_RESULT (ADLX_STD_CALL *IsEnabled)(IADLXDisplayFreeSync* pThis, adlx_bool* enabled); - ADLX_RESULT (ADLX_STD_CALL *SetEnabled)(IADLXDisplayFreeSync* pThis, adlx_bool enabled); -} IADLXFreeSyncVtbl; - -struct IADLXDisplayFreeSync -{ - const IADLXFreeSyncVtbl *pVtbl; -}; - -#endif - -#pragma endregion IADLXDisplayFreeSync interface - -#pragma region IADLXDisplayVSR interface - -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLXDisplayVSR : public IADLXInterface - { - public: - ADLX_DECLARE_IID (L"IADLXDisplayVSR") - /** - *@page DOX_IADLXDisplayVSR_IsSupported IsSupported - *@ENG_START_DOX @brief Checks if AMD Virtual Super Resolution is supported on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupported (adlx_bool* supported) - *@codeEnd - * - *@params - * @paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of Virtual Super Resolution is returned. The variable is __true__ if Virtual Super Resolution is supported. The variable is __false__ if Virtual Super Resolution is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of AMD Virtual Super Resolution is successfully returned, __ADLX_OK__ is returned.
- * If the state of AMD Virtual Super Resolution is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * Virtual Super Resolution allows applications to render at resolutions higher than the display's native pixel grid and then scales images down to fit the display, producing higher quality visuals at the expense of performance. - * @ENG_END_DOX - * - *@copydoc IADLXDisplayVSR_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupported (adlx_bool* supported) = 0; - /** - *@page DOX_IADLXDisplayVSR_IsEnabled IsEnabled - *@ENG_START_DOX @brief Checks if AMD Virtual Super Resolution is enabled on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsEnabled (adlx_bool* enabled) - *@codeEnd - * - *@params - * @paramrow{1.,[out],enabled,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of Virtual Super Resolution is returned. The variable is __true__ if Virtual Super Resolution is enabled. The variable is __false__ if Virtual Super Resolution is not enabled. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of AMD Virtual Super Resolution is successfully returned, __ADLX_OK__ is returned.
- * If the state of AMD Virtual Super Resolution is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * Virtual Super Resolution allows applications to render at resolutions higher than the display's native pixel grid and then scales images down to fit the display, producing higher quality visuals at the expense of performance. - * @ENG_END_DOX - * - *@copydoc IADLXDisplayVSR_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsEnabled (adlx_bool* enabled) = 0; - /** - *@page DOX_IADLXDisplayVSR_SetEnabled SetEnabled - *@ENG_START_DOX @brief Sets the AMD Virtual Super Resolution to enabled or disabled on this display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetEnabled (adlx_bool enable) - *@codeEnd - * - *@params - * @paramrow{1.,[in],enable,adlx_bool,@ENG_START_DOX The new AMD Virtual Super Resolution state. Set __true__ to enable Virtual Super Resolution. Set __false__ to disable Virtual Super Resolution. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of AMD Virtual Super Resolution is successfully set, __ADLX_OK__ is returned.
- * If the state of AMD Virtual Super Resolution is not successfully set, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * Virtual Super Resolution allows applications to render at resolutions higher than the display's native pixel grid and then scales images down to fit the display, producing higher quality visuals at the expense of performance. - * @ENG_END_DOX - * - *@copydoc IADLXDisplayVSR_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetEnabled (adlx_bool enabled) = 0; - }; - typedef IADLXInterfacePtr_T IADLXDisplayVSRPtr; -} - -#else -ADLX_DECLARE_IID (IADLXDisplayVSR, L"IADLXDisplayVSR") -typedef struct IADLXDisplayVSR IADLXDisplayVSR; - -typedef struct IADLXVSRVtbl -{ - //IADLXInterface - adlx_long (ADLX_STD_CALL *Acquire)(IADLXDisplayVSR* pThis); - adlx_long (ADLX_STD_CALL *Release)(IADLXDisplayVSR* pThis); - ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLXDisplayVSR* pThis, const wchar_t* interfaceId, void** ppInterface); - - //IADLXDisplayVSR - ADLX_RESULT (ADLX_STD_CALL *IsSupported)(IADLXDisplayVSR* pThis, adlx_bool* supported); - ADLX_RESULT (ADLX_STD_CALL *IsEnabled)(IADLXDisplayVSR* pThis, adlx_bool* enabled); - ADLX_RESULT (ADLX_STD_CALL *SetEnabled)(IADLXDisplayVSR* pThis, adlx_bool enabled); -} IADLXVSRVtbl; - -struct IADLXDisplayVSR -{ - const IADLXVSRVtbl *pVtbl; -}; - -#endif - -#pragma endregion IADLXDisplayVSR interface - -#pragma region IADLXDisplayGPUScaling interface - -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLXDisplayGPUScaling : public IADLXInterface - { - public: - ADLX_DECLARE_IID (L"IADLXDisplayGPUScaling") - /** - *@page DOX_IADLXDisplayGPUScaling_IsSupported IsSupported - *@ENG_START_DOX @brief Checks if the GPU scaling is supported on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupported (adlx_bool* supported) - *@codeEnd - * - *@params - * @paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of GPU scaling is returned. The variable is __true__ if GPU scaling is supported. The variable is __false__ if GPU scaling is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of GPU scaling is successfully returned, __ADLX_OK__ is returned.
- * If the state of GPU scaling is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@addinfo - *@ENG_START_DOX GPU scaling uses the GPU to scale up lower resolutions to fit the display.
- * GPU scaling requires a digital connection (DVI, HDMI or DisplayPortâ„¢) from the display to the GPU. @ENG_END_DOX - * - * - *@copydoc IADLXDisplayGPUScaling_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupported (adlx_bool* supported) = 0; - /** - *@page DOX_IADLXDisplayGPUScaling_IsEnabled IsEnabled - *@ENG_START_DOX @brief Checks if the GPU scaling is enabled on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsEnabled (adlx_bool* enabled) - *@codeEnd - * - *@params - * @paramrow{1.,[out],enabled,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of GPU scaling is returned. The variable is __true__ if GPU scaling is enabled. The variable is __false__ if GPU scaling is not enabled. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of GPU scaling is successfully returned, __ADLX_OK__ is returned.
- * If the state of GPU scaling is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * - *@addinfo - *@ENG_START_DOX GPU scaling uses the GPU to scale up lower resolutions to fit the display.
- * GPU scaling requires a digital connection (DVI, HDMI or DisplayPortâ„¢) from the display to the GPU.
- * __Note__: @ref DOX_IADLXDisplayIntegerScaling "Integer Display Scaling" is not supported when GPU scaling is disabled.
- * GPU scaling is required for @ref DOX_IADLX3DRadeonSuperResolution "Radeonâ„¢ Super Resolution". GPU scaling is automatically enabled when Radeon Super Resolution is enabled. @ENG_END_DOX - * - *@copydoc IADLXDisplayGPUScaling_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsEnabled (adlx_bool* enabled) = 0; - /** - *@page DOX_IADLXDisplayGPUScaling_SetEnabled SetEnabled - *@ENG_START_DOX @brief Sets the GPU scaling to enabled or disabled state on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetEnabled (adlx_bool enable) - *@codeEnd - * - *@params - * @paramrow{1.,[in],enable,adlx_bool,@ENG_START_DOX The new GPU scaling state. Set __true__ to enable GPU scaling. Set __false__ to disable GPU scaling. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of GPU scaling is successfully set, __ADLX_OK__ is returned.
- * If the state of GPU scaling is not successfully set, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * - *@addinfo - *@ENG_START_DOX GPU scaling uses the GPU to scale up lower resolutions to fit the display.
- * GPU scaling requires a digital connection (DVI, HDMI or DisplayPortâ„¢) from the display to the GPU.
- * __Note:__ @ref DOX_IADLXDisplayIntegerScaling "Integer Display Scaling" is not supported when GPU scaling is disabled.
- * GPU scaling is required for @ref DOX_IADLX3DRadeonSuperResolution "Radeonâ„¢ Super Resolution". By disabling GPU scaling when Radeon Super Resolution is enabled, Radeon Super Resolution is automatically disabled.@ENG_END_DOX - * - *@copydoc IADLXDisplayGPUScaling_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetEnabled (adlx_bool enabled) = 0; - }; - - typedef IADLXInterfacePtr_T IADLXDisplayGPUScalingPtr; -} - -#else -ADLX_DECLARE_IID (IADLXDisplayGPUScaling, L"IADLXDisplayGPUScaling") -typedef struct IADLXDisplayGPUScaling IADLXDisplayGPUScaling; - -typedef struct IADLXGPUScalingVtbl -{ - //IADLXInterface - adlx_long (ADLX_STD_CALL *Acquire)(IADLXDisplayGPUScaling* pThis); - adlx_long (ADLX_STD_CALL *Release)(IADLXDisplayGPUScaling* pThis); - ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLXDisplayGPUScaling* pThis, const wchar_t* interfaceId, void** ppInterface); - - // GPU Scaling - ADLX_RESULT (ADLX_STD_CALL *IsSupported)(IADLXDisplayGPUScaling* pThis, adlx_bool* supported); - ADLX_RESULT (ADLX_STD_CALL *IsEnabled)(IADLXDisplayGPUScaling* pThis, adlx_bool* enabled); - ADLX_RESULT (ADLX_STD_CALL *SetEnabled)(IADLXDisplayGPUScaling* pThis, adlx_bool enabled); -} IADLXGPUScalingVtbl; - -struct IADLXDisplayGPUScaling -{ - const IADLXGPUScalingVtbl *pVtbl; -}; - -#endif - -#pragma endregion IADLXDisplayGPUScaling interface - -#pragma region IADLXDisplayScalingMode interface -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLXDisplayScalingMode : public IADLXInterface - { - public: - ADLX_DECLARE_IID (L"IADLXDisplayScalingMode") - /** - *@page DOX_IADLXDisplayScalingMode_IsSupported IsSupported - *@ENG_START_DOX @brief Checks if the scaling mode is supported on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupported (adlx_bool* supported) - *@codeEnd - * - *@params - * @paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of scaling mode is returned. The variable is __true__ if scaling mode is supported. The variable is __false__ if scaling mode is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of scaling mode is successfully returned, __ADLX_OK__ is returned.
- * If the state of scaling mode is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@addinfo - *@ENG_START_DOX GPU scaling determines the method used to stretch and position images to fit the display. @ENG_END_DOX - * - * - *@copydoc IADLXDisplayScalingMode_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupported (adlx_bool* supported) = 0; - /** - *@page DOX_IADLXDisplayScalingMode_GetMode GetMode - *@ENG_START_DOX @brief Gets the current scaling mode of a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetMode(@ref ADLX_SCALE_MODE* currentMode) - *@codeEnd - * - *@params - * @paramrow{1.,[out],currentMode,@ref ADLX_SCALE_MODE*,@ENG_START_DOX The pointer to a variable where the current scaling mode of a display is returned.@ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the current scaling mode is successfully returned, __ADLX_OK__ is returned.
- * If the current scaling mode is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@addinfo - *@ENG_START_DOX GPU scaling determines the method used to stretch and position images to fit the display.
- * __Note:__ On some AMD GPUs, center scaling and @ref DOX_IADLX3DRadeonSuperResolution "Radeon Super Resolution" cannot be enabled simultaneously. If Radeon Super Resolution is enabled when the scaling mode is __CENTERED__, the scaling mode is automatically set to __FULL_PANEL__.@ENG_END_DOX - * - * - *@copydoc IADLXDisplayScalingMode_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetMode (ADLX_SCALE_MODE* currentMode) = 0; - /** - *@page DOX_IADLXDisplayScalingMode_SetMode SetMode - *@ENG_START_DOX @brief Sets the scaling mode of a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetMode(@ref ADLX_SCALE_MODE mode) - *@codeEnd - * - *@params - * @paramrow{1.,[in],mode,@ref ADLX_SCALE_MODE,@ENG_START_DOX The new scaling mode.0@ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the scaling mode is successfully set, __ADLX_OK__ is returned.
- * If the scaling mode is not successfully set, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@addinfo - *@ENG_START_DOX GPU scaling determines the method used to stretch and position images to fit the display.
- * __Note:__ On some AMD GPUs, center scaling and @ref DOX_IADLX3DRadeonSuperResolution "Radeon Super Resolution" cannot be enabled simultaneously. If the scaling mode is set to __CENTERED__, Radeon Super Resolution is automatically disabled.@ENG_END_DOX - * - * - *@copydoc IADLXDisplayScalingMode_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetMode (ADLX_SCALE_MODE mode) = 0; - }; - - typedef IADLXInterfacePtr_T IADLXDisplayScalingModePtr; -} -#else -ADLX_DECLARE_IID (IADLXDisplayScalingMode, L"IADLXDisplayScalingMode") - -typedef struct IADLXDisplayScalingMode IADLXDisplayScalingMode; -typedef struct IADLXDisplayScalingModeVtbl -{ - // IADLXInterface - adlx_long (ADLX_STD_CALL *Acquire)(IADLXDisplayScalingMode* pThis); - adlx_long (ADLX_STD_CALL *Release)(IADLXDisplayScalingMode* pThis); - ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLXDisplayScalingMode* pThis, const wchar_t* interfaceId, void** ppInterface); - - // Scaling mode - ADLX_RESULT (ADLX_STD_CALL *IsSupported)(IADLXDisplayScalingMode* pThis, adlx_bool* supported); - ADLX_RESULT (ADLX_STD_CALL *GetMode)(IADLXDisplayScalingMode* pThis, ADLX_SCALE_MODE* currentMode); - ADLX_RESULT (ADLX_STD_CALL *SetMode)(IADLXDisplayScalingMode* pThis, ADLX_SCALE_MODE mode); -} IADLXDisplayScalingModeVtbl; - -struct IADLXDisplayScalingMode -{ - const IADLXDisplayScalingModeVtbl *pVtbl; -}; - -#endif -#pragma endregion IADLXDisplayScalingMode interface - -#pragma region IADLXDisplayIntegerScaling interface - -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLXDisplayIntegerScaling : public IADLXInterface - { - public: - ADLX_DECLARE_IID (L"IADLXDisplayIntegerScaling") - /** - *@page DOX_IADLXDisplayIntegerScaling_IsSupported IsSupported - *@ENG_START_DOX @brief Checks if the Integer Display Scaling is supported on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupported (adlx_bool* supported) - *@codeEnd - * - *@params - * @paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of Integer Display Scaling is returned. The variable is __true__ if Integer Display Scaling is supported. The variable is __false__ if Integer Display Scaling is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of Integer Display Scaling is successfully returned, __ADLX_OK__ is returned.
- * If the state of Integer Display Scaling is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * - *@addinfo - *@ENG_START_DOX Integer Display Scaling gives a sharp, pixelated look to images scaled up to fit the display. Images that can't be scaled to match the display's exact size and shape will be centered on screen. Integer Display Scaling enhances visuals in old games to revive vintage gaming experiences on a modern display.
- * __Note__: Integer Display Scaling is not supported when @ref DOX_IADLXDisplayGPUScaling "GPU scaling" is disabled. @ENG_END_DOX - * - * - *@copydoc IADLXDisplayIntegerScaling_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupported (adlx_bool* supported) = 0; - /** - *@page DOX_IADLXDisplayIntegerScaling_IsEnabled IsEnabled - *@ENG_START_DOX @brief Checks if the Integer Display Scaling is enabled on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsEnabled (adlx_bool* enabled) - *@codeEnd - * - *@params - * @paramrow{1.,[out],enabled,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of Integer Display Scaling is returned. The variable is __true__ if Integer Display Scaling is enabled. The variable is __false__ if Integer Display Scaling is not enabled. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of Integer Display Scaling is successfully returned, __ADLX_OK__ is returned.
- * If the state of Integer Display Scaling is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@addinfo - *@ENG_START_DOX Integer Display Scaling gives a sharp, pixelated look to images scaled up to fit the display. Images that can't be scaled to match the display's exact size and shape will be centered on screen. Integer Display Scaling enhances visuals in old games to revive vintage gaming experiences on a modern display.
- * __Note:__ On some AMD GPUs, Integer Display Scaling and @ref DOX_IADLX3DRadeonSuperResolution "Radeon Super Resolution" cannot be enabled simultaneously. If Radeon Super Resolution is enabled, Integer Display Scaling is automatically disabled.@ENG_END_DOX - * - * - *@copydoc IADLXDisplayIntegerScaling_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsEnabled (adlx_bool* enabled) = 0; - /** - *@page DOX_IADLXDisplayIntegerScaling_SetEnabled SetEnabled - *@ENG_START_DOX @brief Sets the AMD integer scaling to enabled or disabled state on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetEnabled (adlx_bool enable) - *@codeEnd - * - *@params - * @paramrow{1.,[in],enable,adlx_bool,@ENG_START_DOX The new Integer Display Scaling state. Set __true__ to enable Integer Display Scaling. Set __false__ to disable Integer Display Scaling. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of Integer Display Scaling is successfully set, __ADLX_OK__ is returned.
- * If the state of Integer Display Scaling is not successfully set, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@addinfo - *@ENG_START_DOX Integer Display Scaling gives a sharp, pixelated look to images scaled up to fit the display. Images that can't be scaled to match the display's exact size and shape will be centered on screen. Integer Display Scaling enhances visuals in old games to revive vintage gaming experiences on a modern display.
- * __Note:__ On some AMD GPUs, Integer Display Scaling and @ref DOX_IADLX3DRadeonSuperResolution "Radeon Super Resolution" cannot be enabled simultaneously. If Integer Display Scaling is enabled, Radeon Super Resolution is automatically disabled.@ENG_END_DOX - * - * - *@copydoc IADLXDisplayIntegerScaling_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetEnabled (adlx_bool enabled) = 0; - }; - typedef IADLXInterfacePtr_T IADLXDisplayIntegerScalingPtr; -} -#else -ADLX_DECLARE_IID (IADLXDisplayIntegerScaling, L"IADLXDisplayIntegerScaling") - -typedef struct IADLXDisplayIntegerScaling IADLXDisplayIntegerScaling; -typedef struct IADLXIntegerScalingVtbl -{ - //IADLXInterface - adlx_long (ADLX_STD_CALL *Acquire)(IADLXDisplayIntegerScaling* pThis); - adlx_long (ADLX_STD_CALL *Release)(IADLXDisplayIntegerScaling* pThis); - ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLXDisplayIntegerScaling* pThis, const wchar_t* interfaceId, void** ppInterface); - - // Integer scaling - ADLX_RESULT (ADLX_STD_CALL *IsSupported)(IADLXDisplayIntegerScaling* pThis, adlx_bool* supported); - ADLX_RESULT (ADLX_STD_CALL *IsEnabled)(IADLXDisplayIntegerScaling* pThis, adlx_bool* enabled); - ADLX_RESULT (ADLX_STD_CALL *SetEnabled)(IADLXDisplayIntegerScaling* pThis, adlx_bool enabled); -} IADLXIntegerScalingVtbl; - -struct IADLXDisplayIntegerScaling -{ - const IADLXIntegerScalingVtbl *pVtbl; -}; - -#endif - -#pragma endregion IADLXDisplayIntegerScaling interface - -#pragma region IADLXDisplayColorDepth interface - -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLXDisplayColorDepth : public IADLXInterface - { - public: - ADLX_DECLARE_IID (L"IADLXDisplayColorDepth") - /** - *@page DOX_IADLXDisplayColorDepth_IsSupported IsSupported - *@ENG_START_DOX @brief Checks if the color format can be configured on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupported (adlx_bool* supported) - *@codeEnd - * - *@params - * @paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of color format configuration is returned. The variable is __true__ if color format configuration is supported. The variable is __false__ if color format configuration is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of the color format configuration is successfully returned, __ADLX_OK__ is returned.
- * If the state of the color format configuration is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@addinfo - *@ENG_START_DOX Color format configuration is supported on some AMD GPUs if the display is connected to the GPU using Dual-Link DVI or DisplayPort cable. @ENG_END_DOX - * - * - *@copydoc IADLXDisplayColorDepth_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupported (adlx_bool* supported) = 0; - /** - *@page DOX_IADLXDisplayColorDepth_GetValue GetValue - *@ENG_START_DOX @brief Gets the current color format of a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetValue(@ref ADLX_COLOR_DEPTH* currentColorDepth) - *@codeEnd - * - *@params - * @paramrow{1.,[out],currentColorDepth,@ref ADLX_COLOR_DEPTH*,@ENG_START_DOX The pointer to a variable where the color format is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the current color format is successfully returned, __ADLX_OK__ is returned.
- * If the current color format is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@addinfo - *@ENG_START_DOX Color format configuration is supported on some AMD GPUs if the display is connected to the GPU using Dual-Link DVI or DisplayPort cable. @ENG_END_DOX - * - * - *@copydoc IADLXDisplayColorDepth_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetValue (ADLX_COLOR_DEPTH* currentColorDepth) = 0; - /** - *@page DOX_IADLXDisplayColorDepth_SetValue SetValue - *@ENG_START_DOX @brief Sets the color format on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetValue(@ref ADLX_COLOR_DEPTH colorDepth) - *@codeEnd - * - *@params - * @paramrow{1.,[in],colorDepth,@ref ADLX_COLOR_DEPTH,@ENG_START_DOX The new color format. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the color format is successfully set, __ADLX_OK__ is returned.
- * If the color format is not successfully set, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@addinfo - *@ENG_START_DOX Color format configuration is supported on some AMD GPUs if the display is connected to the GPU using Dual-Link DVI or DisplayPort cable. @ENG_END_DOX - * - * - *@copydoc IADLXDisplayColorDepth_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetValue (ADLX_COLOR_DEPTH colorDepth) = 0; - /** - *@page DOX_IADLXDisplayColorDepth_IsSupportedColorDepth IsSupportedColorDepth - *@ENG_START_DOX @brief Checks if a color format is supported on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupportedColorDepth (@ref ADLX_COLOR_DEPTH colorDepth, adlx_bool* supported) - *@codeEnd - * - *@params - * @paramrow{1.,[in],colorDepth,@ref ADLX_COLOR_DEPTH,@ENG_START_DOX The color format. @ENG_END_DOX} - * @paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the support state of the color format is returned. The variable is __true__ if the color format is supported. The variable is __false__ if color format is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the support state of the color format is successfully returned, __ADLX_OK__ is returned.
- * If the support state of the color format is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@copydoc IADLXDisplayColorDepth_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupportedColorDepth (ADLX_COLOR_DEPTH colorDepth, adlx_bool* supported) = 0; - /** - *@page DOX_IADLXDisplayColorDepth_IsSupportedBPC_6 IsSupportedBPC_6 - *@ENG_START_DOX @brief Checks if color component/pixel with 6 bits is supported on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupportedBPC_6 (adlx_bool* supported) - *@codeEnd - * - *@params - *@paramrow{1.,[out] ,supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of color component/pixel with 6 bits is returned. The variable is __true__ if color component/pixel with 6 bits is supported. The variable is __false__ if color component/pixel with 6 bits is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of color component/pixel with 6 bits is successfully returned, __ADLX_OK__ is returned.
- * If the state of color component/pixel with 6 bits is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@copydoc IADLXDisplayColorDepth_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupportedBPC_6 (adlx_bool* supported) = 0; - /** - *@page DOX_IADLXDisplayColorDepth_IsSupportedBPC_8 IsSupportedBPC_8 - *@ENG_START_DOX @brief Checks if color component/pixel with 8 bits is supported on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupportedBPC_8 (adlx_bool* supported) - *@codeEnd - * - *@params - *@paramrow{1.,[out] ,supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of color component/pixel with 8 bits is returned. The variable is __true__ if color component/pixel with 8 bits is supported. The variable is __false__ if color component/pixel with 8 bits is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of color component/pixel with 8 bits is successfully returned, __ADLX_OK__ is returned.
- * If the state of color component/pixel with 8 bits is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@copydoc IADLXDisplayColorDepth_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupportedBPC_8 (adlx_bool* supported) = 0; - /** - *@page DOX_IADLXDisplayColorDepth_IsSupportedBPC_10 IsSupportedBPC_10 - *@ENG_START_DOX @brief Checks if color component/pixel with 10 bits is supported on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupportedBPC_10 (adlx_bool* supported) - *@codeEnd - * - *@params - *@paramrow{1.,[out] ,supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of color component/pixel with 10 bits is returned. The variable is __true__ if color component/pixel with 10 bits is supported. The variable is __false__ if color component/pixel with 10 bits is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of color component/pixel with 10 bits is successfully returned, __ADLX_OK__ is returned.
- * If the state of color component/pixel with 10 bits is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@copydoc IADLXDisplayColorDepth_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupportedBPC_10 (adlx_bool* supported) = 0; - /** - *@page DOX_IADLXDisplayColorDepth_IsSupportedBPC_12 IsSupportedBPC_12 - *@ENG_START_DOX @brief Checks if color component/pixel with 12 bits is supported on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupportedBPC_12 (adlx_bool* supported) - *@codeEnd - * - *@params - *@paramrow{1.,[out] ,supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of color component/pixel with 12 bits is returned. The variable is __true__ if color component/pixel with 12 bits is supported. The variable is __false__ if color component/pixel with 12 bits is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of color component/pixel with 12 bits is successfully returned, __ADLX_OK__ is returned.
- * If the state of color component/pixel with 12 bits is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@copydoc IADLXDisplayColorDepth_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupportedBPC_12 (adlx_bool* supported) = 0; - /** - *@page DOX_IADLXDisplayColorDepth_IsSupportedBPC_14 IsSupportedBPC_14 - *@ENG_START_DOX @brief Checks if color component/pixel with 14 bits is supported on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupportedBPC_14 (adlx_bool* supported) - *@codeEnd - * - *@params - *@paramrow{1.,[out] ,supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of color component/pixel with 14 bits is returned. The variable is __true__ if color component/pixel with 14 bits is supported. The variable is __false__ if color component/pixel with 14 bits is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of color component/pixel with 14 bits is successfully returned, __ADLX_OK__ is returned.
- * If the state of color component/pixel with 14 bits is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@copydoc IADLXDisplayColorDepth_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupportedBPC_14 (adlx_bool* supported) = 0; - /** - *@page DOX_IADLXDisplayColorDepth_IsSupportedBPC_16 IsSupportedBPC_16 - *@ENG_START_DOX @brief Checks if color component/pixel with 16 bits is supported on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupportedBPC_16 (adlx_bool* supported) - *@codeEnd - * - *@params - *@paramrow{1.,[out] ,supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of color component/pixel with 16 bits is returned. The variable is __true__ if color component/pixel with 16 bits is supported. The variable is __false__ if color component/pixel with 16 bits is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of color component/pixel with 16 bits is successfully returned, __ADLX_OK__ is returned.
- * If the state of color component/pixel with 16 bits is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@copydoc IADLXDisplayColorDepth_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupportedBPC_16 (adlx_bool* supported) = 0; - }; - - typedef IADLXInterfacePtr_T IADLXDisplayColorDepthPtr; -} -#else -ADLX_DECLARE_IID (IADLXDisplayColorDepth, L"IADLXDisplayColorDepth") -typedef struct IADLXDisplayColorDepth IADLXDisplayColorDepth; - -typedef struct IADLX_COLOR_DEPTHVtbl -{ - //IADLXInterface - adlx_long (ADLX_STD_CALL* Acquire)(IADLXDisplayColorDepth* pThis); - adlx_long (ADLX_STD_CALL* Release)(IADLXDisplayColorDepth* pThis); - ADLX_RESULT (ADLX_STD_CALL* QueryInterface)(IADLXDisplayColorDepth* pThis, const wchar_t* interfaceId, void** ppInterface); - - // Color depth - ADLX_RESULT (ADLX_STD_CALL* IsSupported)(IADLXDisplayColorDepth* pThis, adlx_bool* supported); - ADLX_RESULT (ADLX_STD_CALL* GetValue)(IADLXDisplayColorDepth* pThis, ADLX_COLOR_DEPTH* currentColorDepth); - ADLX_RESULT (ADLX_STD_CALL* SetValue)(IADLXDisplayColorDepth* pThis, ADLX_COLOR_DEPTH colorDepth); - ADLX_RESULT (ADLX_STD_CALL* IsSupportedColorDepth)(IADLXDisplayColorDepth* pThis, ADLX_COLOR_DEPTH colorDepth, adlx_bool* supported); - ADLX_RESULT (ADLX_STD_CALL* IsSupportedBPC_6)(IADLXDisplayColorDepth* pThis, adlx_bool* supported); - ADLX_RESULT (ADLX_STD_CALL* IsSupportedBPC_8)(IADLXDisplayColorDepth* pThis, adlx_bool* supported); - ADLX_RESULT (ADLX_STD_CALL* IsSupportedBPC_10)(IADLXDisplayColorDepth* pThis, adlx_bool* supported); - ADLX_RESULT (ADLX_STD_CALL* IsSupportedBPC_12)(IADLXDisplayColorDepth* pThis, adlx_bool* supported); - ADLX_RESULT (ADLX_STD_CALL* IsSupportedBPC_14)(IADLXDisplayColorDepth* pThis, adlx_bool* supported); - ADLX_RESULT (ADLX_STD_CALL* IsSupportedBPC_16)(IADLXDisplayColorDepth* pThis, adlx_bool* supported); -} IADLX_COLOR_DEPTHVtbl; - -struct IADLXDisplayColorDepth -{ - const IADLX_COLOR_DEPTHVtbl *pVtbl; -}; - -#endif - -#pragma endregion IADLXDisplayColorDepth interface - -#pragma region IADLXDisplayPixelFormat interface - -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLXDisplayPixelFormat : public IADLXInterface - { - public: - ADLX_DECLARE_IID (L"IADLXDisplayPixelFormat") - /** - *@page DOX_IADLXDisplayPixelFormat_IsSupported IsSupported - *@ENG_START_DOX @brief Checks if the pixel format can be configured on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupported (adlx_bool* supported) - *@codeEnd - * - *@params - * @paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of pixel format configuration is returned. The variable is __true__ if pixel format configuration is supported. The variable is __false__ if pixel format configuration is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of pixel format configuration is successfully returned, __ADLX_OK__ is returned.
- * If the state of pixel format configuration is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@addinfo - *@ENG_START_DOX The pixel format is configurable if the display is connected to the GPU using direct HDMIâ„¢-HDMI.
- * Pixel format configuration is not supported for DVI-HDMI and DisplayPort-HDMI connections. @ENG_END_DOX - * - * - *@copydoc IADLXDisplayPixelFormat_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupported (adlx_bool* supported) = 0; - /** - *@page DOX_IADLXDisplayPixelFormat_GetValue GetValue - *@ENG_START_DOX @brief Gets the current pixel format of a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetValue(@ref ADLX_PIXEL_FORMAT* pixelFormat) - *@codeEnd - * - *@params - * @paramrow{1.,[out],pixelFormat,@ref ADLX_PIXEL_FORMAT*,@ENG_START_DOX The pointer to a variable where the pixel format is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the pixel format is successfully returned, __ADLX_OK__ is returned.
- * If the pixel format is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@addinfo - *@ENG_START_DOX The pixel format is configurable if the display is connected to the GPU using direct HDMIâ„¢-HDMI.
- * Pixel format configuration is not supported for DVI-HDMI and DisplayPort-HDMI connections. @ENG_END_DOX - * - * - *@copydoc IADLXDisplayPixelFormat_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetValue (ADLX_PIXEL_FORMAT* pixelFormat) = 0; - /** - *@page DOX_IADLXDisplayPixelFormat_SetValue SetValue - *@ENG_START_DOX @brief Sets the pixel format on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetValue(@ref ADLX_PIXEL_FORMAT pixelFormat) - *@codeEnd - * - *@params - * @paramrow{1.,[in],pixelFormat,@ref ADLX_PIXEL_FORMAT,@ENG_START_DOX The new pixel format. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the pixel format is successfully set, __ADLX_OK__ is returned.
- * If the pixel format is not successfully set, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@addinfo - *@ENG_START_DOX The pixel format is configurable if the display is connected to the GPU using direct HDMIâ„¢-HDMI.
- * Pixel format configuration is not supported for DVI-HDMI and DisplayPort-HDMI connections. @ENG_END_DOX - * - * - *@copydoc IADLXDisplayPixelFormat_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetValue (ADLX_PIXEL_FORMAT pixelFormat) = 0; - /** - *@page DOX_IADLXDisplayPixelFormat_IsSupportedPixelFormat IsSupportedPixelFormat - *@ENG_START_DOX @brief Checks if the given pixel format is supported on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupportedPixelFormat (@ref ADLX_PIXEL_FORMAT pixelFormat, adlx_bool* supported) - *@codeEnd - * - *@params - * @paramrow{1.,[in],pixelFormat,@ref ADLX_PIXEL_FORMAT,@ENG_START_DOX The pixel format. @ENG_END_DOX} - * @paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the support state of the pixel format is returned. The variable is __true__ if the pixel format is supported. The variable is __false__ if pixel format is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the support state of the pixel format is successfully returned, __ADLX_OK__ is returned.
- * If the support state of the pixel format is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@copydoc IADLXDisplayPixelFormat_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupportedPixelFormat (ADLX_PIXEL_FORMAT pixelFormat, adlx_bool* supportd) = 0; - /** - *@page DOX_IADLXDisplayPixelFormat_IsSupportedRGB444Full IsSupportedRGB444Full - *@ENG_START_DOX @brief Checks if the RGB 4:4:4 PC Standard (Full RGB) pixel format is supported on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupportedRGB444Full (adlx_bool* supported) - *@codeEnd - * - *@params - * @paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the support state of the RGB 4:4:4 PC Standard (Full RGB) pixel format is returned. The variable is __true__ if the RGB 4:4:4 PC Standard (Full RGB) pixel format is supported. The variable is __false__ if the RGB 4:4:4 PC Standard (Full RGB) pixel format is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the support state of the RGB 4:4:4 PC Standard (Full RGB) pixel format is successfully returned, __ADLX_OK__ is returned.
- * If the support state of the RGB 4:4:4 PC Standard (Full RGB) pixel format is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@copydoc IADLXDisplayPixelFormat_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupportedRGB444Full (adlx_bool* supportd) = 0; - /** - *@page DOX_IADLXDisplayPixelFormat_IsSupportedYCbCr444 IsSupportedYCbCr444 - *@ENG_START_DOX @brief Checks if the YCbCr 4:4:4 pixel format is supported on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupportedYCbCr444 (adlx_bool* supported) - *@codeEnd - * - *@params - * @paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the support state of the YCbCr 4:4:4 pixel format is returned. The variable is __true__ if the YCbCr 4:4:4 pixel format is supported. The variable is __false__ if the YCbCr 4:4:4 pixel format is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the support state of the YCbCr 4:4:4 pixel format is successfully returned, __ADLX_OK__ is returned.
- * If the support state of the YCbCr 4:4:4 pixel format is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@copydoc IADLXDisplayPixelFormat_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupportedYCbCr444 (adlx_bool* supportd) = 0; - /** - *@page DOX_IADLXDisplayPixelFormat_IsSupportedYCbCr422 IsSupportedYCbCr422 - *@ENG_START_DOX @brief Checks if the YCbCr 4:2:2 pixel format is supported on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupportedYCbCr422 (adlx_bool* supported) - *@codeEnd - * - *@params - * @paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the support state of the YCbCr 4:2:2 pixel format is returned. The variable is __true__ if the YCbCr 4:2:2 pixel format is supported. The variable is __false__ if the YCbCr 4:2:2 pixel format is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the support state of the YCbCr 4:2:2 pixel format is successfully returned, __ADLX_OK__ is returned.
- * If the support state of the YCbCr 4:2:2 pixel format is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@copydoc IADLXDisplayPixelFormat_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupportedYCbCr422 (adlx_bool* supportd) = 0; - /** - *@page DOX_IADLXDisplayPixelFormat_IsSupportedRGB444Limited IsSupportedRGB444Limited - *@ENG_START_DOX @brief Checks if the RGB 4:4:4 Studio (Limited RGB) pixel format is supported on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupportedRGB444Limited (adlx_bool* supported) - *@codeEnd - * - *@params - * @paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the support state of the RGB 4:4:4 Studio (Limited RGB) pixel format is returned. The variable is __true__ if the RGB 4:4:4 Studio (Limited RGB) pixel format is supported. The variable is __false__ if the RGB 4:4:4 Studio (Limited RGB) pixel format is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the support state of the RGB 4:4:4 Studio (Limited RGB) pixel format is successfully returned, __ADLX_OK__ is returned.
- * If the support state of the RGB 4:4:4 Studio (Limited RGB) pixel format is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@copydoc IADLXDisplayPixelFormat_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupportedRGB444Limited (adlx_bool* supportd) = 0; - /** - *@page DOX_IADLXDisplayPixelFormat_IsSupportedYCbCr420 IsSupportedYCbCr420 - *@ENG_START_DOX @brief Checks if the YCbCr 4:2:0 pixel format is supported on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupportedYCbCr420 (adlx_bool* supported) - *@codeEnd - * - *@params - * @paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the support state of the YCbCr 4:2:0 pixel format is returned. The variable is __true__ if the YCbCr 4:2:0 pixel format is supported. The variable is __false__ if the YCbCr 4:2:0 pixel format is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the support state of the YCbCr 4:2:0 pixel format is successfully returned, __ADLX_OK__ is returned.
- * If the support state of the YCbCr 4:2:0 pixel format is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@copydoc IADLXDisplayPixelFormat_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupportedYCbCr420 (adlx_bool* supportd) = 0; - }; - - typedef IADLXInterfacePtr_T IADLXDisplayPixelFormatPtr; -} -#else -ADLX_DECLARE_IID (IADLXDisplayPixelFormat, L"IADLXDisplayPixelFormat") -typedef struct IADLXDisplayPixelFormat IADLXDisplayPixelFormat; - -typedef struct IADLX_PIXEL_FORMATVtbl -{ - //IADLXInterface - adlx_long (ADLX_STD_CALL *Acquire)(IADLXDisplayPixelFormat* pThis); - adlx_long (ADLX_STD_CALL *Release)(IADLXDisplayPixelFormat* pThis); - ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLXDisplayPixelFormat* pThis, const wchar_t* interfaceId, void** ppInterface); - - // Pixel format - ADLX_RESULT (ADLX_STD_CALL *IsSupported)(IADLXDisplayPixelFormat* pThis, adlx_bool* supported); - ADLX_RESULT (ADLX_STD_CALL *GetValue)(IADLXDisplayPixelFormat* pThis, ADLX_PIXEL_FORMAT* pixelFormat); - ADLX_RESULT (ADLX_STD_CALL *SetValue)(IADLXDisplayPixelFormat* pThis, ADLX_PIXEL_FORMAT pixelFormat); - ADLX_RESULT (ADLX_STD_CALL *IsSupportedPixelFormat)(IADLXDisplayPixelFormat* pThis, ADLX_PIXEL_FORMAT pixelFormat, adlx_bool* supportd); - ADLX_RESULT (ADLX_STD_CALL *IsSupportedRGB444Full)(IADLXDisplayPixelFormat* pThis, adlx_bool* supportd); - ADLX_RESULT (ADLX_STD_CALL *IsSupportedYCbCr444)(IADLXDisplayPixelFormat* pThis, adlx_bool* supportd); - ADLX_RESULT (ADLX_STD_CALL *IsSupportedYCbCr422)(IADLXDisplayPixelFormat* pThis, adlx_bool* supportd); - ADLX_RESULT (ADLX_STD_CALL *IsSupportedRGB444Limited)(IADLXDisplayPixelFormat* pThis, adlx_bool* supportd); - ADLX_RESULT (ADLX_STD_CALL *IsSupportedYCbCr420)(IADLXDisplayPixelFormat* pThis, adlx_bool* supportd); -} IADLX_PIXEL_FORMATVtbl; - -struct IADLXDisplayPixelFormat -{ - const IADLX_PIXEL_FORMATVtbl *pVtbl; -}; - -#endif - -#pragma endregion IADLXDisplayPixelFormat interface - -#pragma region IADLXDisplayCustomColor interface - -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLXDisplayCustomColor : public IADLXInterface - { - public: - ADLX_DECLARE_IID (L"IADLXDisplayCustomColor") - /** - *@page DOX_IADLXDisplayCustomColor_IsHueSupported IsHueSupported - *@ENG_START_DOX @brief Checks if customization of hue is supported on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsHueSupported (adlx_bool* supported) - *@codeEnd - * - *@params - * @paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of hue is returned. The variable is __true__ if customization of hue is supported. The variable is __false__ if customization of hue is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of hue is successfully returned, __ADLX_OK__ is returned.
- * If the state of hue is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@copydoc IADLXDisplayCustomColor_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsHueSupported (adlx_bool* supported) = 0; - /** - *@page DOX_IADLXDisplayCustomColor_GetHueRange GetHueRange - *@ENG_START_DOX @brief Gets the maximum hue, minimum hue, and step hue of a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetHueRange (@ref ADLX_IntRange* range) - *@codeEnd - * - *@params - *@paramrow{1.,[out],range,@ref ADLX_IntRange*,@ENG_START_DOX The pointer to a variable where the hue range of the display is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the hue range is successfully returned, __ADLX_OK__ is returned.
- * If the hue range is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * - *@copydoc IADLXDisplayCustomColor_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetHueRange (ADLX_IntRange* range) = 0; - /** - *@page DOX_IADLXDisplayCustomColor_GetHue GetHue - *@ENG_START_DOX @brief Gets the current hue of a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetHue(adlx_int* currentHue) - *@codeEnd - * - *@params - * @paramrow{1.,[out],currentHue,adlx_int*,@ENG_START_DOX The pointer to a variable where the current hue of the display is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the current hue is successfully returned, __ADLX_OK__ is returned.
- * If the current hue is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * - *@copydoc IADLXDisplayCustomColor_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetHue (adlx_int* currentHue) = 0; - /** - *@page DOX_IADLXDisplayCustomColor_SetHue SetHue - *@ENG_START_DOX @brief Sets the hue on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetHue(adlx_int value) - *@codeEnd - * - *@params - * @paramrow{1.,[out],hue,adlx_int,@ENG_START_DOX The new hue value. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the hue is successfully set, __ADLX_OK__ is returned.
- * If the hue is not successfully set, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * - *@copydoc IADLXDisplayCustomColor_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetHue (adlx_int hue) = 0; - /** - *@page DOX_IADLXDisplayCustomColor_IsSaturationSupported IsSaturationSupported - *@ENG_START_DOX @brief Checks if customization of saturation is supported on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSaturationSupported (adlx_bool* supported) - *@codeEnd - * - *@params - * @paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of saturation is returned. The variable is __true__ if customization of saturation is supported. The variable is __false__ if customization of saturation is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of saturation is successfully returned, __ADLX_OK__ is returned.
- * If the state of saturation is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * - *@copydoc IADLXDisplayCustomColor_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSaturationSupported (adlx_bool* supported) = 0; - /** - *@page DOX_IADLXDisplayCustomColor_GetSaturationRange GetSaturationRange - *@ENG_START_DOX @brief Gets the maximum saturation, minimum saturation, and step saturation of a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetSaturationRange (@ref ADLX_IntRange* range) - *@codeEnd - * - *@params - * @paramrow{1.,[out],range,@ref ADLX_IntRange*,@ENG_START_DOX The pointer to a variable where the saturation range of the display is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the saturation range is successfully returned, __ADLX_OK__ is returned.
- * If the saturation range is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * - *@copydoc IADLXDisplayCustomColor_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetSaturationRange (ADLX_IntRange* range) = 0; - /** - *@page DOX_IADLXDisplayCustomColor_GetSaturation GetSaturation - *@ENG_START_DOX @brief Gets the current saturation of a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetSaturation(adlx_int* currentSaturation) - *@codeEnd - * - *@params - * @paramrow{1.,[out],currentSaturation,adlx_int*,@ENG_START_DOX The pointer to a variable where the current saturation of the display is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the current saturation is successfully returned, __ADLX_OK__ is returned.
- * If the current saturation is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * - *@copydoc IADLXDisplayCustomColor_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetSaturation (adlx_int* currentSaturation) = 0; - /** - *@page DOX_IADLXDisplayCustomColor_SetSaturation SetSaturation - *@ENG_START_DOX @brief Sets the saturation on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetSaturation(adlx_int saturation) - *@codeEnd - * - *@params - * @paramrow{1.,[out],saturation,adlx_int,@ENG_START_DOX The new saturation value. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the saturation is successfully set, __ADLX_OK__ is returned.
- * If the saturation is not successfully set, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * - *@copydoc IADLXDisplayCustomColor_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetSaturation (adlx_int saturation) = 0; - /** - *@page DOX_IADLXDisplayCustomColor_IsBrightnessSupported IsBrightnessSupported - *@ENG_START_DOX @brief Checks if customization of brightness is supported on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsBrightnessSupported (adlx_bool* supported) - *@codeEnd - * - *@params - * @paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of brightness is returned. The variable is __true__ if customization of brightness is supported. The variable is __false__ if customization of brightness is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of brightness is successfully returned, __ADLX_OK__ is returned.
- * If the state of brightness is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * - *@copydoc IADLXDisplayCustomColor_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsBrightnessSupported (adlx_bool* supported) = 0; - /** - *@page DOX_IADLXDisplayCustomColor_GetBrightnessRange GetBrightnessRange - *@ENG_START_DOX @brief Gets the maximum brightness, minimum brightness, and step brightness of a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetBrightnessRange (@ref ADLX_IntRange* range) - *@codeEnd - * - *@params - * @paramrow{1.,[out],range,@ref ADLX_IntRange*,@ENG_START_DOX The pointer to a variable where the brightness range of the display is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the brightness range is successfully returned, __ADLX_OK__ is returned.
- * If the brightness range is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * - *@copydoc IADLXDisplayCustomColor_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetBrightnessRange (ADLX_IntRange* range) = 0; - /** - *@page DOX_IADLXDisplayCustomColor_GetBrightness GetBrightness - *@ENG_START_DOX @brief Gets the current brightness of a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetBrightness(adlx_int* currentBrightness) - *@codeEnd - * - *@params - * @paramrow{1.,[out],currentBrightness,adlx_int*,@ENG_START_DOX The pointer to a variable where the current brightness of the display is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the current brightness is successfully returned, __ADLX_OK__ is returned.
- * If the current brightness is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * - *@copydoc IADLXDisplayCustomColor_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetBrightness (adlx_int* currentBrightness) = 0; - /** - *@page DOX_IADLXDisplayCustomColor_SetBrightness SetBrightness - *@ENG_START_DOX @brief Sets the brightness on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetBrightness(adlx_int brightness) - *@codeEnd - * - *@params - * @paramrow{1.,[out],brightness,adlx_int,@ENG_START_DOX The new brightness value. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the brightness is successfully set, __ADLX_OK__ is returned.
- * If the brightness is not successfully set, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * - *@copydoc IADLXDisplayCustomColor_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetBrightness (adlx_int brightness) = 0; - /** - *@page DOX_IADLXDisplayCustomColor_IsContrastSupported IsContrastSupported - *@ENG_START_DOX @brief Checks if customization of color contrast is supported on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsContrastSupported (adlx_bool* supported) - *@codeEnd - * - *@params - * @paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of color contrast is returned. The variable is __true__ if customization of color contrast is supported. The variable is __false__ if customization of color contrast is not supported @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of color contrast is successfully returned, __ADLX_OK__ is returned.
- * If the state of color contrast is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * - *@copydoc IADLXDisplayCustomColor_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsContrastSupported (adlx_bool* supported) = 0; - /** - *@page DOX_IADLXDisplayCustomColor_GetContrastRange GetContrastRange - *@ENG_START_DOX @brief Gets the maximum color contrast, minimum contrast contrast, and step color contrast of a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetContrastRange (@ref ADLX_IntRange* range) - *@codeEnd - * - *@params - * @paramrow{1.,[out],range,@ref ADLX_IntRange*,@ENG_START_DOX The pointer to a variable where the color contrast range of the display is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the color contrast range is successfully returned, __ADLX_OK__ is returned.
- * If the color contrast range is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * - *@copydoc IADLXDisplayCustomColor_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetContrastRange (ADLX_IntRange* range) = 0; - /** - *@page DOX_IADLXDisplayCustomColor_GetContrast GetContrast - *@ENG_START_DOX @brief Gets the current color contrast of a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetContrast(adlx_int* currentContrast) - *@codeEnd - * - *@params - * @paramrow{1.,[out],currentContrast,adlx_int*,@ENG_START_DOX The pointer to a variable where the current color contrast of the display is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the current color contrast is successfully returned, __ADLX_OK__ is returned.
- * If the current color contrast is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * - *@copydoc IADLXDisplayCustomColor_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetContrast (adlx_int* currentContrast) = 0; - /** - *@page DOX_IADLXDisplayCustomColor_SetContrast SetContrast - *@ENG_START_DOX @brief Sets the color contrast on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetContrast(adlx_int contrast) - *@codeEnd - * - *@params - * @paramrow{1.,[out],contrast,adlx_int,@ENG_START_DOX The new color contrast value. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the color contrast value is successfully set, __ADLX_OK__ is returned.
- * If the color contrast value is not successfully set, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * - *@copydoc IADLXDisplayCustomColor_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetContrast (adlx_int contrast) = 0; - /** - *@page DOX_IADLXDisplayCustomColor_IsTemperatureSupported IsTemperatureSupported - *@ENG_START_DOX @brief Checks if customization of color temperature is supported on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsTemperatureSupported (adlx_bool* supported) - *@codeEnd - * - *@params - * @paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of color temperature is returned. The variable is __true__ if customization of color temperature is supported. The variable is __false__ if customization of color temperature is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of color temperature is successfully returned, __ADLX_OK__ is returned.
- * If the state of color temperature is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * - *@copydoc IADLXDisplayCustomColor_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsTemperatureSupported (adlx_bool* supported) = 0; - /** - *@page DOX_IADLXDisplayCustomColor_GetTemperatureRange GetTemperatureRange - *@ENG_START_DOX @brief Gets the maximum color temperature, minimum color temperature, and step color temperature of a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetTemperatureRange (@ref ADLX_IntRange* range) - *@codeEnd - * - *@params - * @paramrow{1.,[out],range,@ref ADLX_IntRange*,@ENG_START_DOX The pointer to a variable where the color temperature range is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the color temperature range is successfully returned, __ADLX_OK__ is returned.
- * If the color temperature range is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * - *@copydoc IADLXDisplayCustomColor_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetTemperatureRange (ADLX_IntRange* range) = 0; - /** - *@page DOX_IADLXDisplayCustomColor_GetTemperature GetTemperature - *@ENG_START_DOX @brief Gets the current color temperature of a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetTemperature(adlx_int* currentTemperature) - *@codeEnd - * - *@params - * @paramrow{1.,[out],currentTemperature,adlx_int*,@ENG_START_DOX The pointer to a variable where the current color temperature of the display is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the current color temperature is successfully returned, __ADLX_OK__ is returned.
- * If the current color temperature is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * - *@copydoc IADLXDisplayCustomColor_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetTemperature (adlx_int* currentTemperature) = 0; - /** - *@page DOX_IADLXDisplayCustomColor_SetTemperature SetTemperature - *@ENG_START_DOX @brief Sets the color temperature on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetTemperature(adlx_int value) - *@codeEnd - * - *@params - * @paramrow{1.,[out],temperature,adlx_int,@ENG_START_DOX The new color temperature value. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the color temperature is successfully set, __ADLX_OK__ is returned.
- * If the color temperature is not successfully set, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * - *@copydoc IADLXDisplayCustomColor_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetTemperature (adlx_int temperature) = 0; - }; - - typedef IADLXInterfacePtr_T IADLXDisplayCustomColorPtr; -} -#else -ADLX_DECLARE_IID (IADLXDisplayCustomColor, L"IADLXDisplayCustomColor") -typedef struct IADLXDisplayCustomColor IADLXDisplayCustomColor; - -typedef struct IADLXCustomColorVtbl -{ - //IADLXInterface - adlx_long (ADLX_STD_CALL *Acquire)(IADLXDisplayCustomColor* pThis); - adlx_long (ADLX_STD_CALL *Release)(IADLXDisplayCustomColor* pThis); - ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLXDisplayCustomColor* pThis, const wchar_t* interfaceId, void** ppInterface); - - // Custom color - ADLX_RESULT (ADLX_STD_CALL *IsHueSupported)(IADLXDisplayCustomColor* pThis, adlx_bool* supported); - ADLX_RESULT (ADLX_STD_CALL *GetHueRange)(IADLXDisplayCustomColor* pThis, ADLX_IntRange* range); - ADLX_RESULT (ADLX_STD_CALL *GetHue)(IADLXDisplayCustomColor* pThis, adlx_int* currentHue); - ADLX_RESULT (ADLX_STD_CALL *SetHue)(IADLXDisplayCustomColor* pThis, adlx_int hue); - - ADLX_RESULT (ADLX_STD_CALL *IsSaturationSupported)(IADLXDisplayCustomColor* pThis, adlx_bool* supported); - ADLX_RESULT (ADLX_STD_CALL *GetSaturationRange)(IADLXDisplayCustomColor* pThis, ADLX_IntRange* range); - ADLX_RESULT (ADLX_STD_CALL *GetSaturation)(IADLXDisplayCustomColor* pThis, adlx_int* currentSaturation); - ADLX_RESULT (ADLX_STD_CALL *SetSaturation)(IADLXDisplayCustomColor* pThis, adlx_int saturation); - - ADLX_RESULT (ADLX_STD_CALL *IsBrightnessSupported)(IADLXDisplayCustomColor* pThis, adlx_bool* supported); - ADLX_RESULT (ADLX_STD_CALL *GetBrightnessRange)(IADLXDisplayCustomColor* pThis, ADLX_IntRange* range); - ADLX_RESULT (ADLX_STD_CALL *GetBrightness)(IADLXDisplayCustomColor* pThis, adlx_int* currentBrightness); - ADLX_RESULT (ADLX_STD_CALL *SetBrightness)(IADLXDisplayCustomColor* pThis, adlx_int brightness); - - ADLX_RESULT (ADLX_STD_CALL *IsContrastSupported)(IADLXDisplayCustomColor* pThis, adlx_bool* supported); - ADLX_RESULT (ADLX_STD_CALL *GetContrastRange)(IADLXDisplayCustomColor* pThis, ADLX_IntRange* range); - ADLX_RESULT (ADLX_STD_CALL *GetContrast)(IADLXDisplayCustomColor* pThis, adlx_int* currentContrast); - ADLX_RESULT (ADLX_STD_CALL *SetContrast)(IADLXDisplayCustomColor* pThis, adlx_int contrast); - - ADLX_RESULT (ADLX_STD_CALL *IsTemperatureSupported)(IADLXDisplayCustomColor* pThis, adlx_bool* supported); - ADLX_RESULT (ADLX_STD_CALL *GetTemperatureRange)(IADLXDisplayCustomColor* pThis, ADLX_IntRange* range); - ADLX_RESULT (ADLX_STD_CALL *GetTemperature)(IADLXDisplayCustomColor* pThis, adlx_int* currentTemperature); - ADLX_RESULT (ADLX_STD_CALL *SetTemperature)(IADLXDisplayCustomColor* pThis, adlx_int temperature); - - -} IADLXCustomColorVtbl; - -struct IADLXDisplayCustomColor -{ - const IADLXCustomColorVtbl *pVtbl; -}; - -#endif - -#pragma endregion IADLXDisplayCustomColor interface - -#pragma region IADLXDisplayHDCP interface - -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLXDisplayHDCP : public IADLXInterface - { - public: - ADLX_DECLARE_IID (L"IADLXDisplayHDCP") - /** - *@page DOX_IADLXDisplayHDCP_IsSupported IsSupported - *@ENG_START_DOX @brief Checks if the HDCP can be configured on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupported (adlx_bool* supported) - *@codeEnd - * - *@params - * @paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of the HDCP configuration is returned. The variable is __true__ if HDCP configuration is supported. The variable is __false__ if HDCP configuration is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of HDCP configuration is successfully returned, __ADLX_OK__ is returned.
- * If the state of HDCP configuration is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * If the HDCP is disabled on this display, digitally protected content may be unplayable, or played at a lower resolution. - * @ENG_END_DOX - * - *@copydoc IADLXDisplayHDCP_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupported (adlx_bool* supported) = 0; - /** - *@page DOX_IADLXDisplayHDCP_IsEnabled IsEnabled - *@ENG_START_DOX @brief Checks if the HDCP is enabled on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsEnabled (adlx_bool* enabled) - *@codeEnd - * - *@params - * @paramrow{1.,[out],enabled,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of HDCP is returned. The variable is __true__ if HDCP is enabled. The variable is __false__ if HDCP is not enabled. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of HDCP configuration is successfully returned, __ADLX_OK__ is returned.
- * If the state of HDCP configuration is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * If the HDCP is disabled on this display, digitally protected content may be unplayable, or played at a lower resolution. - * @ENG_END_DOX - * - *@copydoc IADLXDisplayHDCP_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsEnabled (adlx_bool* enabled) = 0; - /** - *@page DOX_IADLXDisplayHDCP_SetEnabled SetEnabled - *@ENG_START_DOX @brief Sets the HDCP to enabled or disabled on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetEnabled (adlx_bool enable) - *@codeEnd - * - *@params - * @paramrow{1.,[in],enable,adlx_bool,@ENG_START_DOX The new HDCP configuration state. Set __true__ to enable HDCP. Set __false__ to disable HDCP. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of HDCP configuration is successfully set, __ADLX_OK__ is returned.
- * If the state of HDCP configuration is not successfully set, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * If the HDCP is disabled on this display, digitally protected content may be unplayable, or played at a lower resolution. - * @ENG_END_DOX - * - *@copydoc IADLXDisplayHDCP_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetEnabled (adlx_bool enabled) = 0; - }; - - typedef IADLXInterfacePtr_T IADLXDisplayHDCPPtr; -} -#else -ADLX_DECLARE_IID (IADLXDisplayHDCP, L"IADLXDisplayHDCP") -typedef struct IADLXDisplayHDCP IADLXDisplayHDCP; - -typedef struct IADLXHDCPVtbl -{ - //IADLXInterface - adlx_long (ADLX_STD_CALL *Acquire)(IADLXDisplayHDCP* pThis); - adlx_long (ADLX_STD_CALL *Release)(IADLXDisplayHDCP* pThis); - ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLXDisplayHDCP* pThis, const wchar_t* interfaceId, void** ppInterface); - - // HDCP - ADLX_RESULT (ADLX_STD_CALL *IsSupported)(IADLXDisplayHDCP* pThis, adlx_bool* supported); - ADLX_RESULT (ADLX_STD_CALL *IsEnabled)(IADLXDisplayHDCP* pThis, adlx_bool* enabled); - ADLX_RESULT (ADLX_STD_CALL *SetEnabled)(IADLXDisplayHDCP* pThis, adlx_bool enabled); -} IADLXHDCPVtbl; - -struct IADLXDisplayHDCP -{ - const IADLXHDCPVtbl *pVtbl; -}; - -#endif - -#pragma endregion IADLXDisplayHDCP interface - -#pragma region IADLXDisplayResolution interface -#if defined (__cplusplus) - -namespace adlx -{ - class ADLX_NO_VTABLE IADLXDisplayResolution : public IADLXInterface - { - public: - ADLX_DECLARE_IID (L"IADLXDisplayResolution") - /** - *@page DOX_IADLXDisplayResolution_GetValue GetValue - *@ENG_START_DOX @brief Gets the properties of a custom display resolution. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetValue(@ref ADLX_CustomResolution* customResolution) - *@codeEnd - * - *@params - * @paramrow{1.,[out],customResolution,@ref ADLX_CustomResolution*,@ENG_START_DOX The pointer to a variable where the properties of a custom display resolution are returned.@ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the properties of a custom display resolution are successfully returned, __ADLX_OK__ is returned.
- * If the properties of a custom display resolution are not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@copydoc IADLXDisplayResolution_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetValue (ADLX_CustomResolution* customResolution) = 0; - /** - *@page DOX_IADLXDisplayResolution_SetValue SetValue - *@ENG_START_DOX @brief Sets the properties of a custom display resolution. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetValue(@ref ADLX_CustomResolution customResolution) - *@codeEnd - * - *@params - * @paramrow{1.,[in],customResolution,@ref ADLX_CustomResolution,@ENG_START_DOX The properties of a custom display resolution.@ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the properties of a custom display resolution are successfully set, __ADLX_OK__ is returned.
- * If the properties of a custom display resolution are not successfully set, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@copydoc IADLXDisplayResolution_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetValue (ADLX_CustomResolution customResolution) = 0; - }; - //---------------------------------------------------------------------------------------------- - typedef IADLXInterfacePtr_T IADLXDisplayResolutionPtr; -} - -#else - -ADLX_DECLARE_IID (IADLXDisplayResolution, L"IADLXDisplayResolution") - -typedef struct IADLXDisplayResolution IADLXDisplayResolution; - -typedef struct IADLXDisplayResolutionVtbl -{ - // IADLXInterface - adlx_long (ADLX_STD_CALL *Acquire)(IADLXDisplayResolution* pThis); - adlx_long (ADLX_STD_CALL *Release)(IADLXDisplayResolution* pThis); - ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLXDisplayResolution* pThis, const wchar_t* interfaceId, void** ppInterface); - - // IADLXDisplayResolution - ADLX_RESULT (ADLX_STD_CALL *GetValue)(IADLXDisplayResolution* pThis, ADLX_CustomResolution* cr); - ADLX_RESULT (ADLX_STD_CALL *SetValue)(IADLXDisplayResolution* pThis, ADLX_CustomResolution cr); -} IADLXDisplayResolutionVtbl; - -struct IADLXDisplayResolution { const IADLXDisplayResolutionVtbl *pVtbl; }; - -#endif -#pragma endregion IADLXDisplayResolution interface - -#pragma region IADLXDisplayResolutionList interface -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLXDisplayResolutionList : public IADLXList - { - public: - ADLX_DECLARE_IID (L"IADLXDisplayResolutionList") - ADLX_DECLARE_ITEM_IID (IADLXDisplayResolution::IID ()) - /** - * @page DOX_IADLXDisplayResolutionList_At At - * @ENG_START_DOX - * @brief Returns the item at the asked location. - * @ENG_END_DOX - * @syntax - * @codeStart - * @ref ADLX_RESULT At (const adlx_uint location, @ref DOX_IADLXDisplayResolution** ppItem) - * @codeEnd - * - * @params - * @paramrow{1.,[in] ,location,const adlx_uint ,@ENG_START_DOX Location index to retrieve the resolution item from the list. @ENG_END_DOX} - * @paramrow{2.,[out] ,ppItem,@ref DOX_IADLXDisplayResolution** ,@ENG_START_DOX The address of a pointer variable that receives a pointer to the @ref DOX_IADLXDisplayResolution interface. @ENG_END_DOX} - * - * @retvalues - * @ENG_START_DOX - * Returns __ADLX_OK__ for success and ADLX error code @ref ADLX_RESULT for failure. - * @ENG_END_DOX - * - * @detaileddesc - * @ENG_START_DOX - * @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. - * @ENG_END_DOX - * - * @addinfo - * @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 - * - * @copydoc IADLXDisplayResolutionList_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL At (const adlx_uint location, IADLXDisplayResolution** ppItem) = 0; - /** - * @page DOX_IADLXDisplayResolutionList_Add_Back Add_Back - * @ENG_START_DOX - * @brief Adds an element to the back. - * @ENG_END_DOX - * @syntax - * @codeStart - * @ref ADLX_RESULT Add_Back (@ref DOX_IADLXDisplayResolution* pItem) - * @codeEnd - * - * @params - * @paramrow{1.,[in] ,pItem,@ref DOX_IADLXDisplayResolution* ,@ENG_START_DOX The address of a pointer variable that receives the @ref DOX_IADLXDisplayResolution interface. @ENG_END_DOX} - * - * @retvalues - * @ENG_START_DOX - * Returns __ADLX_OK__ for success and ADLX error code @ref ADLX_RESULT for failure. - * @ENG_END_DOX - * - * @detaileddesc - * @ENG_START_DOX - * @details Adds an element to the back. - * - * You should call this method whenever you need to add the resolution item to the end of the list. - * @ENG_END_DOX - * - * - * @copydoc IADLXDisplayResolutionList_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL Add_Back (IADLXDisplayResolution* pItem) = 0; - }; //IADLXDisplayResolutionList - //---------------------------------------------------------------------------------------------- - typedef IADLXInterfacePtr_T IADLXDisplayResolutionListPtr; -} //namespace adlx -#else //__cplusplus -ADLX_DECLARE_IID (IADLXDisplayResolutionList, L"IADLXDisplayResolutionList") -ADLX_DECLARE_ITEM_IID (IADLXDisplayResolution, IID_IADLXDisplayResolution ()) - -typedef struct IADLXDisplayResolutionList IADLXDisplayResolutionList; - -typedef struct IADLXDisplayResolutionListVtbl -{ - //IADLXInterface - adlx_long (ADLX_STD_CALL *Acquire)(IADLXDisplayResolutionList* pThis); - adlx_long (ADLX_STD_CALL *Release)(IADLXDisplayResolutionList* pThis); - ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLXDisplayResolutionList* pThis, const wchar_t* interfaceId, void** ppInterface); - - //IADLXList - adlx_uint (ADLX_STD_CALL *Size)(IADLXDisplayResolutionList* pThis); - adlx_bool (ADLX_STD_CALL *Empty)(IADLXDisplayResolutionList* pThis); - adlx_uint (ADLX_STD_CALL *Begin)(IADLXDisplayResolutionList* pThis); - adlx_uint (ADLX_STD_CALL *End)(IADLXDisplayResolutionList* pThis); - ADLX_RESULT (ADLX_STD_CALL *At)(IADLXDisplayResolutionList* pThis, const adlx_uint location, IADLXInterface** ppItem); - ADLX_RESULT (ADLX_STD_CALL *Clear)(IADLXDisplayResolutionList* pThis); - ADLX_RESULT (ADLX_STD_CALL *Remove_Back)(IADLXDisplayResolutionList* pThis); - ADLX_RESULT (ADLX_STD_CALL *Add_Back)(IADLXDisplayResolutionList* pThis, IADLXInterface* pItem); - - //IADLXDisplayResolutionList - ADLX_RESULT (ADLX_STD_CALL *At_DisplayResolutionList)(IADLXDisplayResolutionList* pThis, const adlx_uint location, IADLXDisplayResolution** ppItem); - ADLX_RESULT (ADLX_STD_CALL *Add_Back_DisplayResolutionList)(IADLXDisplayResolutionList* pThis, IADLXDisplayResolution* pItem); - -} IADLXDisplayResolutionListVtbl; - -struct IADLXDisplayResolutionList { const IADLXDisplayResolutionListVtbl *pVtbl; }; -#endif //__cplusplus -#pragma endregion IADLXDisplayResolutionList interface - -#pragma region IADLXDisplayCustomResolution interface - -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLXDisplayCustomResolution : public IADLXInterface - { - public: - ADLX_DECLARE_IID (L"IADLXDisplayCustomResolution") - /** - *@page DOX_IADLXDisplayCustomResolution_IsSupported IsSupported - *@ENG_START_DOX @brief Checks if custom resolution is supported on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupported (adlx_bool* supported) - *@codeEnd - * - *@params - * @paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the custom resolution support status is returned. The variable is __true__ if custom resolution is supported. The variable is __false__ if custom resolution is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the custom resolution status is successfully returned, __ADLX_OK__ is returned.
- * If the custom resolution status is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * Applying custom resolution in certain games and applications may provide a better user experience. Consult the display user manual for specifications and compatibility information before use.
- * __Note__: Displays running in duplicate or Eyefinity mode do not support custom resolutions. - * @ENG_END_DOX - * - *@copydoc IADLXDisplayCustomResolution_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupported (adlx_bool* supported) = 0; - /** - *@page DOX_IADLXDisplayCustomResolution_GetResolutionList GetResolutionList - *@ENG_START_DOX @brief Gets the reference counted list of available resolutions of a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetResolutionList(@ref DOX_IADLXDisplayResolutionList** ppResolutionList) - *@codeEnd - * - *@params - * @paramrow{1.,[out],cr,@ref DOX_IADLXDisplayResolutionList*,@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 __ppResolutionList__ to __nullptr__.@ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the resolution list is successfully returned, __ADLX_OK__ is returned.
- * If the resolution list is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * @detaileddesc - * @ENG_START_DOX - * @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. - * @ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - *In C++ when using a smart pointer for the returned interface there is no need to call @ref DOX_IADLXInterface_Release because the smart pointer calls it internally.
- * - * Applying custom resolution in certain games and applications may provide a better user experience. Consult the display user manual for specifications and compatibility information before use.
- * __Note__: Displays running in duplicate or Eyefinity mode do not support custom resolutions. - * @ENG_END_DOX - * - *@copydoc IADLXDisplayCustomResolution_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetResolutionList (IADLXDisplayResolutionList** ppResolutionList) = 0; - /** - *@page DOX_IADLXDisplayCustomResolution_GetCurrentAppliedResolution GetCurrentAppliedResolution - *@ENG_START_DOX @brief Gets the reference counted current resolution interface of a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetCurrentAppliedResolution(@ref DOX_IADLXDisplayResolution** ppResolution) - *@codeEnd - * - *@params - * @paramrow{1.,[out],ppResolution,@ref DOX_IADLXDisplayResolution**,@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 __ppResolution__ to __nullptr__.@ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the current resolution is successfully returned, __ADLX_OK__ is returned.
- * If the current resolution is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * @detaileddesc - * @ENG_START_DOX - * @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. - * @ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * In C++ when using a smart pointer for the returned interface there is no need to call @ref DOX_IADLXInterface_Release because the smart pointer calls it internally.
- * - * Applying custom resolution in certain games and applications may provide a better user experience. Consult the display user manual for specifications and compatibility information before use.
- * __Note__: Displays running in duplicate or Eyefinity mode do not support custom resolutions. - * @ENG_END_DOX - * - *@copydoc IADLXDisplayCustomResolution_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetCurrentAppliedResolution (IADLXDisplayResolution** ppResolution) = 0; - /** - *@page DOX_IADLXDisplayCustomResolution_CreateNewResolution CreateNewResolution - *@ENG_START_DOX @brief Creates a custom resolution on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT CreateNewResolution(@ref DOX_IADLXDisplayResolution* pResolution) - *@codeEnd - * - *@params - * @paramrow{1.,[out],pResolution,@ref DOX_IADLXDisplayResolution*,@ENG_START_DOX The pointer to the custom resolution interface.@ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the custom resolution is successfully created, __ADLX_OK__ is returned.
- * If the custom resolution is not successfully created, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * Applying custom resolution in certain games and applications may provide a better user experience. Consult the display user manual for specifications and compatibility information before use.
- * __Note__: Displays running in duplicate or Eyefinity mode do not support custom resolutions. - * @ENG_END_DOX - * - *@copydoc IADLXDisplayCustomResolution_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL CreateNewResolution (IADLXDisplayResolution* pResolution) = 0; - /** - *@page DOX_IADLXDisplayCustomResolution_DeleteResolution DeleteResolution - *@ENG_START_DOX @brief Deletes a custom resolution from a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT DeleteResolution(@ref DOX_IADLXDisplayResolution* pResolution) - *@codeEnd - * - *@params - * @paramrow{1.,[out],pResolution,@ref DOX_IADLXDisplayResolution*,@ENG_START_DOX The pointer to a variable where the display resolution @ref DOX_IADLXDisplayResolution is returned.@ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the custom resolution is successfully deleted, __ADLX_OK__ is returned.
- * If the custom resolution is not successfully deleted, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * Applying custom resolution in certain games and applications may provide a better user experience. Consult the display user manual for specifications and compatibility information before use.
- * __Note__: Displays running in duplicate or Eyefinity mode do not support custom resolutions. - * @ENG_END_DOX - * - *@copydoc IADLXDisplayCustomResolution_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL DeleteResolution (IADLXDisplayResolution* pResolution) = 0; - }; - - typedef IADLXInterfacePtr_T IADLXDisplayCustomResolutionPtr; -} -#else -ADLX_DECLARE_IID (IADLXDisplayCustomResolution, L"IADLXDisplayCustomResolution") -typedef struct IADLXDisplayCustomResolution IADLXDisplayCustomResolution; - -typedef struct IADLXDisplayCustomResolutionVtbl -{ - //IADLXInterface - adlx_long (ADLX_STD_CALL *Acquire)(IADLXDisplayCustomResolution* pThis); - adlx_long (ADLX_STD_CALL *Release)(IADLXDisplayCustomResolution* pThis); - ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLXDisplayCustomResolution* pThis, const wchar_t* interfaceId, void** ppInterface); - - // Custom resolution - ADLX_RESULT (ADLX_STD_CALL *IsSupported)(IADLXDisplayCustomResolution* pThis, adlx_bool* supported); - ADLX_RESULT (ADLX_STD_CALL *GetResolutionList)(IADLXDisplayCustomResolution* pThis, IADLXDisplayResolutionList** ppResolutionList); - ADLX_RESULT (ADLX_STD_CALL *GetCurrentAppliedResolution)(IADLXDisplayCustomResolution* pThis, IADLXDisplayResolution** ppResolution); - ADLX_RESULT (ADLX_STD_CALL *CreateNewResolution)(IADLXDisplayCustomResolution* pThis, IADLXDisplayResolution* pResolution); - ADLX_RESULT (ADLX_STD_CALL *DeleteResolution)(IADLXDisplayCustomResolution* pThis, IADLXDisplayResolution* pResolution); -} IADLXDisplayCustomResolutionVtbl; - -struct IADLXDisplayCustomResolution -{ - const IADLXDisplayCustomResolutionVtbl *pVtbl; -}; -#endif - -#pragma endregion IADLXDisplayCustomResolution interface - -#pragma region IADLXDisplayVariBright interface - -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLXDisplayVariBright : public IADLXInterface - { - public: - ADLX_DECLARE_IID (L"IADLXDisplayVariBright") - /** - *@page DOX_IADLXDisplayVariBright_IsSupported IsSupported - *@ENG_START_DOX @brief Checks if Vari-Bright can be configured on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupported (adlx_bool* supported) - *@codeEnd - * - *@params - * @paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of Vari-Bright is returned. The variable is __true__ if Vari-Bright is supported. The variable is __false__ if Vari-Bright is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of Vari-Bright is successfully returned, __ADLX_OK__ is returned.
- * If the state of Vari-Bright is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * - *@copydoc IADLXDisplayVariBright_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupported (adlx_bool* supported) = 0; - /** - *@page DOX_IADLXDisplayVariBright_IsEnabled IsEnabled - *@ENG_START_DOX @brief Checks if Vari-Bright is enabled on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsEnabled (adlx_bool* enabled) - *@codeEnd - * - *@params - * @paramrow{1.,[out],enabled,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of Vari-Bright is returned. The variable is __true__ if Vari-Bright is enabled. The variable is __false__ if Vari-Bright is not enabled. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of Vari-Bright is successfully returned, __ADLX_OK__ is returned.
- * If the state of Vari-Bright is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * - *@copydoc IADLXDisplayVariBright_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsEnabled (adlx_bool* enabled) = 0; - /** - *@page DOX_IADLXDisplayVariBright_SetEnabled SetEnabled - *@ENG_START_DOX @brief Sets the Vari-Bright to enabled or disabled on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetEnabled (adlx_bool enable) - *@codeEnd - * - *@params - * @paramrow{1.,[in],enable,adlx_bool,@ENG_START_DOX The new Vari-Bright state. Set __true__ to enable Vari-Bright. Set __false__ to disable Vari-Bright. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of Vari-Bright is successfully set, __ADLX_OK__ is returned.
- * If the state of Vari-Bright is not successfully set, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * - *@copydoc IADLXDisplayVariBright_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetEnabled (adlx_bool enabled) = 0; - /** - *@page DOX_IADLXDisplayVariBright_IsCurrentMaximizeBrightness IsCurrentMaximizeBrightness - *@ENG_START_DOX @brief Checks if the maximized brightness Vari-Bright preset is used on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsCurrentMaximizeBrightness (adlx_bool* maximizeBrightness) - *@codeEnd - * - *@params - *@paramrow{1.,[out],maximizeBrightness,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of the maximize brightness preset is returned. The variable is __true__ if the maximize brightness preset is used. The variable is __false__ if the maximize brightness preset is not used. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of maximize brightness preset is successfully returned, __ADLX_OK__ is returned.
- * If the state of maximize brightness preset is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * - *@copydoc IADLXDisplayVariBright_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsCurrentMaximizeBrightness (adlx_bool* maximizeBrightness) = 0; - /** - *@page DOX_IADLXDisplayVariBright_IsCurrentOptimizeBrightness IsCurrentOptimizeBrightness - *@ENG_START_DOX @brief Checks if the optimized brightness Vari-Bright preset is used on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsCurrentOptimizeBrightness (adlx_bool* optimizeBrightness) - *@codeEnd - * - *@params - *@paramrow{1.,[out],optimizeBrightness,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of the optimized brightness preset is returned. The variable is __true__ if the optimized brightness preset is used. The variable is __false__ if the optimized brightness preset is not used. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of optimized brightness preset is successfully returned, __ADLX_OK__ is returned.
- * If the state of optimized brightness preset is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * - *@copydoc IADLXDisplayVariBright_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsCurrentOptimizeBrightness (adlx_bool* optimizeBrightness) = 0; - /** - *@page DOX_IADLXDisplayVariBright_IsCurrentBalanced IsCurrentBalanced - *@ENG_START_DOX @brief Checks if the balanced Vari-Bright preset is used on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsCurrentBalanced (adlx_bool* balanced) - *@codeEnd - * - *@params - *@paramrow{1.,[out],balanced,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of the Vari-Bright preset is returned. The variable is __true__ if the balanced preset is used. The variable is __false__ if the balanced preset is not used. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of balanced preset is successfully returned, __ADLX_OK__ is returned.
- * If the state of balanced preset is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * - *@copydoc IADLXDisplayVariBright_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsCurrentBalanced (adlx_bool* balanced) = 0; - /** - *@page DOX_IADLXDisplayVariBright_IsCurrentOptimizeBattery IsCurrentOptimizeBattery - *@ENG_START_DOX @brief Checks if the optimized battery Vari-Bright preset is used on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsCurrentOptimizeBattery (adlx_bool* optimizeBattery) - *@codeEnd - * - *@params - *@paramrow{1.,[out],optimizeBattery,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of the optimized battery preset is returned. The variable is __true__ if the optimized battery preset is used. The variable is __false__ if the optimized battery preset is not used. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of optimized battery preset is successfully returned, __ADLX_OK__ is returned.
- * If the state of optimized battery preset is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * - *@copydoc IADLXDisplayVariBright_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsCurrentOptimizeBattery (adlx_bool* optimizeBattery) = 0; - /** - *@page DOX_IADLXDisplayVariBright_IsCurrentMaximizeBattery IsCurrentMaximizeBattery - *@ENG_START_DOX @brief Checks if the maximize battery Vari-Bright preset is used on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsCurrentMaximizeBattery (adlx_bool* maximizeBattery) - *@codeEnd - * - *@params - *@paramrow{1.,[out],maximizeBattery,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of the maximize battery preset is returned. The variable is __true__ if the maximize battery preset is used. The variable is __false__ if the maximize battery preset is not used. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of maximize battery preset is successfully returned, __ADLX_OK__ is returned.
- * If the state of maximize battery preset is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * - *@copydoc IADLXDisplayVariBright_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsCurrentMaximizeBattery (adlx_bool* maximizeBattery) = 0; - /** - *@page DOX_IADLXDisplayVariBright_SetMaximizeBrightness SetMaximizeBrightness - *@ENG_START_DOX @brief Sets the maximize brightness Vari-Bright preset on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetMaximizeBrightness () - *@codeEnd - * - *@params - * N/A - * - *@retvalues - *@ENG_START_DOX If the maximized brightness preset is successfully set, __ADLX_OK__ is returned.
- * If the maximized brightness preset is not successfully set, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * - *@copydoc IADLXDisplayVariBright_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetMaximizeBrightness () = 0; - /** - *@page DOX_IADLXDisplayVariBright_SetOptimizeBrightness SetOptimizeBrightness - *@ENG_START_DOX @brief Sets the optimize brightness Vari-Bright preset on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetOptimizeBrightness () - *@codeEnd - * - *@params - * N/A - * - *@retvalues - *@ENG_START_DOX If the optimize brightness preset is successfully set, __ADLX_OK__ is returned.
- * If the optimize brightness preset is not successfully set, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * - *@copydoc IADLXDisplayVariBright_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetOptimizeBrightness () = 0; - /** - *@page DOX_IADLXDisplayVariBright_SetBalanced SetBalanced - *@ENG_START_DOX @brief Sets the balanced Vari-Bright preset on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetBalanced () - *@codeEnd - * - *@params - * N/A - * - *@retvalues - *@ENG_START_DOX If the balanced preset is successfully set, __ADLX_OK__ is returned.
- * If the balanced preset is not successfully set, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * - *@copydoc IADLXDisplayVariBright_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetBalanced () = 0; - /** - *@page DOX_IADLXDisplayVariBright_SetOptimizeBattery SetOptimizeBattery - *@ENG_START_DOX @brief Sets the optimize battery Vari-Bright preset on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetOptimizeBattery () - *@codeEnd - * - *@params - * N/A - * - *@retvalues - *@ENG_START_DOX If the optimize battery preset is successfully set, __ADLX_OK__ is returned.
- * If the optimize battery preset is not successfully set, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * - *@copydoc IADLXDisplayVariBright_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetOptimizeBattery () = 0; - /** - *@page DOX_IADLXDisplayVariBright_SetMaximizeBattery SetMaximizeBattery - *@ENG_START_DOX @brief Sets the maximize battery Vari-Bright preset on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetMaximizeBattery () - *@codeEnd - * - *@params - * N/A - * - *@retvalues - *@ENG_START_DOX If the maximize battery preset is successfully set, __ADLX_OK__ is returned.
- * If the maximize battery preset is not successfully set, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@detaileddesc - * - *@ENG_START_DOX @details The maximized battery preset maximizes battery time. @ENG_END_DOX - * - *@copydoc IADLXDisplayVariBright_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetMaximizeBattery () = 0; - }; - - typedef IADLXInterfacePtr_T IADLXDisplayVariBrightPtr; -} -#else -ADLX_DECLARE_IID (IADLXDisplayVariBright, L"IADLXDisplayVariBright") -typedef struct IADLXDisplayVariBright IADLXDisplayVariBright; - -typedef struct IADLXDisplayVariBrightVtbl -{ - //IADLXInterface - adlx_long (ADLX_STD_CALL* Acquire)(IADLXDisplayVariBright* pThis); - adlx_long (ADLX_STD_CALL* Release)(IADLXDisplayVariBright* pThis); - ADLX_RESULT (ADLX_STD_CALL* QueryInterface)(IADLXDisplayVariBright* pThis, const wchar_t* interfaceId, void** ppInterface); - - // Vari-Bright interface - ADLX_RESULT (ADLX_STD_CALL* IsSupported)(IADLXDisplayVariBright* pThis, adlx_bool* supported); - ADLX_RESULT (ADLX_STD_CALL* IsEnabled)(IADLXDisplayVariBright* pThis, adlx_bool* enabled); - ADLX_RESULT (ADLX_STD_CALL* SetEnabled)(IADLXDisplayVariBright* pThis, adlx_bool enabled); - ADLX_RESULT (ADLX_STD_CALL* IsCurrentMaximizeBrightness)(IADLXDisplayVariBright* pThis, adlx_bool* maximizeBrightness); - ADLX_RESULT (ADLX_STD_CALL* IsCurrentOptimizeBrightness)(IADLXDisplayVariBright* pThis, adlx_bool* optimizeBrightness); - ADLX_RESULT (ADLX_STD_CALL* IsCurrentBalanced)(IADLXDisplayVariBright* pThis, adlx_bool* balanced); - ADLX_RESULT (ADLX_STD_CALL* IsCurrentOptimizeBattery)(IADLXDisplayVariBright* pThis, adlx_bool* optimizeBattery); - ADLX_RESULT (ADLX_STD_CALL* IsCurrentMaximizeBattery)(IADLXDisplayVariBright* pThis, adlx_bool* maximizeBattery); - ADLX_RESULT (ADLX_STD_CALL* SetMaximizeBrightness)(IADLXDisplayVariBright* pThis); - ADLX_RESULT (ADLX_STD_CALL* SetOptimizeBrightness)(IADLXDisplayVariBright* pThis); - ADLX_RESULT (ADLX_STD_CALL* SetBalanced)(IADLXDisplayVariBright* pThis); - ADLX_RESULT (ADLX_STD_CALL* SetOptimizeBattery)(IADLXDisplayVariBright* pThis); - ADLX_RESULT (ADLX_STD_CALL* SetMaximizeBattery)(IADLXDisplayVariBright* pThis); -} IADLXDisplayVariBrightVtbl; - -struct IADLXDisplayVariBright -{ - const IADLXDisplayVariBrightVtbl* pVtbl; -}; -#endif - -#pragma endregion IADLXDisplayVariBright interface - -#pragma region IADLXDisplayConnectivtyExperience interface - -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLXDisplayConnectivityExperience : public IADLXInterface - { - public: - ADLX_DECLARE_IID(L"IADLXDisplayConnectivityExperience") - /** - *@page DOX_IADLXDisplayConnectivityExperience_IsSupportedHDMIQualityDetection IsSupportedHDMIQualityDetection - *@ENG_START_DOX @brief Checks if HDMI quality detection is supported on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupportedHDMIQualityDetection (adlx_bool* supported) - *@codeEnd - * - *@params - * @paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of HDMI quality detection is returned. The variable is __true__ if HDMI quality detection is supported. The variable is __false__ if HDMI quality detection is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of HDMI quality detection is successfully returned, __ADLX_OK__ is returned.
- * If the state of HDMI quality detection is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@copydoc IADLXDisplayConnectivityExperience_REQ_TABLE - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupportedHDMIQualityDetection(adlx_bool* supported) = 0; - /** - *@page DOX_IADLXDisplayConnectivityExperience_IsSupportedDPLink IsSupportedDPLink - *@ENG_START_DOX @brief Checks if DP link is supported on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupportedDPLink (adlx_bool* supported) - *@codeEnd - * - *@params - * @paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the DP link state is returned. The variable is __true__ if DP link is supported. The variable is __false__ if DP link is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the DP link state is successfully returned, __ADLX_OK__ is returned.
- * If the DP link state is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@copydoc IADLXDisplayConnectivityExperience_REQ_TABLE - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupportedDPLink(adlx_bool* supported) = 0; - /** - *@page DOX_IADLXDisplayConnectivityExperience_IsEnabledHDMIQualityDetection IsEnabledHDMIQualityDetection - *@ENG_START_DOX @brief Checks if HDMI quality detection is enabled on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsEnabledHDMIQualityDetection (adlx_bool* enabled) - *@codeEnd - * - *@params - * @paramrow{1.,[out],enabled,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of HDMI quality detection is returned. The variable is __true__ if HDMI quality detection is enabled. The variable is __false__ if HDMI quality detection is not enabled. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of HDMI quality detection is successfully returned, __ADLX_OK__ is returned.
- * If the state of HDMI quality detection is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@copydoc IADLXDisplayConnectivityExperience_REQ_TABLE - */ - virtual ADLX_RESULT ADLX_STD_CALL IsEnabledHDMIQualityDetection(adlx_bool* enabled) = 0; - /** - *@page DOX_IADLXDisplayConnectivityExperience_SetEnabledHDMIQualityDetection SetEnabledHDMIQualityDetection - *@ENG_START_DOX @brief Sets the enabled or disabled status for HDMI quality detection on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetEnabledHDMIQualityDetection (adlx_bool* enabled) - *@codeEnd - * - *@params - * @paramrow{1.,[in],enable,adlx_bool,@ENG_START_DOX The new HDMI quality detection state. Set __true__ to enable HDMI quality detection. Set __false__ to disable HDMI quality detection. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of HDMI quality detection is successfully set, __ADLX_OK__ is returned.
- * If the state of HDMI quality detection is not successfully set, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@copydoc IADLXDisplayConnectivityExperience_REQ_TABLE - */ - virtual ADLX_RESULT ADLX_STD_CALL SetEnabledHDMIQualityDetection(adlx_bool enabled) = 0; - /** - *@page DOX_IADLXDisplayConnectivityExperience_GetDPLinkRate GetDPLinkRate - *@ENG_START_DOX @brief Gets the Display Port (DP) link rate on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetDPLinkRate(@ref ADLX_DP_LINK_RATE* linkRate) - *@codeEnd - * - *@params - * @paramrow{1.,[out],linkRate,@ref ADLX_DP_LINK_RATE*,@ENG_START_DOX The pointer to a type where the current DP link rate is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the type of DP link rate is successfully returned, __ADLX_OK__ is returned.
- * If the type of DP link rate is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@copydoc IADLXDisplayConnectivityExperience_REQ_TABLE - */ - virtual ADLX_RESULT ADLX_STD_CALL GetDPLinkRate(ADLX_DP_LINK_RATE* linkRate) = 0; - /** - *@page DOX_IADLXDisplayConnectivityExperience_GetNumberOfActiveLanes GetNumberOfActiveLanes - *@ENG_START_DOX @brief Gets the number of active lanes on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetNumberOfActiveLanes(adlx_uint* numActiveLanes) - *@codeEnd - * - *@params - * @paramrow{1.,[out],numActiveLanes,ADLX_DP_LINK_RATE*,@ENG_START_DOX The pointer to the number of current active lanes is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the number of active lanes is successfully returned, __ADLX_OK__ is returned.
- * If the number of active lanes is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@copydoc IADLXDisplayConnectivityExperience_REQ_TABLE - */ - virtual ADLX_RESULT ADLX_STD_CALL GetNumberOfActiveLanes(adlx_uint* numActiveLanes) = 0; - /** - *@page DOX_IADLXDisplayConnectivityExperience_GetNumberOfTotalLanes GetNumberOfTotalLanes - *@ENG_START_DOX @brief Gets the total number of lanes on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetNumberOfTotalLanes(adlx_uint* numTotalLanes) - *@codeEnd - * - *@params - * @paramrow{1.,[out],numTotalLanes,ADLX_DP_LINK_RATE*,@ENG_START_DOX The pointer to the number of current total lanes is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the number of total lanes is successfully returned, __ADLX_OK__ is returned.
- * If the number of total lanes is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@copydoc IADLXDisplayConnectivityExperience_REQ_TABLE - */ - virtual ADLX_RESULT ADLX_STD_CALL GetNumberOfTotalLanes(adlx_uint* numTotalLanes) = 0; - /** - *@page DOX_IADLXDisplayConnectivityExperience_GetRelativePreEmphasis GetRelativePreEmphasis - *@ENG_START_DOX @brief Gets the relative preset emphasis on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetRelativePreEmphasis(adlx_uint* relativePreEmphasis) - *@codeEnd - * - *@params - * @paramrow{1.,[out],relativePreEmphasis,ADLX_DP_LINK_RATE*,@ENG_START_DOX The pointer to the number of current relative preset emphasis is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the relative preset emphasis is successfully returned, __ADLX_OK__ is returned.
- * If the relative preset emphasis is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@copydoc IADLXDisplayConnectivityExperience_REQ_TABLE - */ - virtual ADLX_RESULT ADLX_STD_CALL GetRelativePreEmphasis(adlx_int* relativePreEmphasis) = 0; - /** - *@page DOX_IADLXDisplayConnectivityExperience_SetRelativePreEmphasis SetRelativePreEmphasis - *@ENG_START_DOX @brief Sets the relative preset emphasis on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetRelativePreEmphasis(adlx_uint relativePreEmphasis) - *@codeEnd - * - *@params - * @paramrow{1.,[in],relativePreEmphasis,ADLX_DP_LINK_RATE*,@ENG_START_DOX The new relative preset emphasis. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the relative preset emphasis is successfully set, __ADLX_OK__ is returned.
- * If the relative preset emphasis is not successfully set, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * Note that relative preset emphasis allowed values range between -2 to +2. - * @ENG_END_DOX - * - *@copydoc IADLXDisplayConnectivityExperience_REQ_TABLE - */ - virtual ADLX_RESULT ADLX_STD_CALL SetRelativePreEmphasis(adlx_int relativePreEmphasis) = 0; - /** - *@page DOX_IADLXDisplayConnectivityExperience_GetRelativeVoltageSwing GetRelativeVoltageSwing - *@ENG_START_DOX @brief Gets the relative voltage swing on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetRelativeVoltageSwing(adlx_uint* relativeVoltageSwing) - *@codeEnd - * - *@params - * @paramrow{1.,[out],relativeVoltageSwing,ADLX_DP_LINK_RATE*,@ENG_START_DOX The pointer to the number of current relative voltage swing is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the relative voltage swing is successfully returned, __ADLX_OK__ is returned.
- * If the relative voltage swing is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@copydoc IADLXDisplayConnectivityExperience_REQ_TABLE - */ - virtual ADLX_RESULT ADLX_STD_CALL GetRelativeVoltageSwing(adlx_int* relativeVoltageSwing) = 0; - /** - *@page DOX_IADLXDisplayConnectivityExperience_SetRelativeVoltageSwing SetRelativeVoltageSwing - *@ENG_START_DOX @brief Sets the relative voltage swing on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetRelativeVoltageSwing(adlx_uint relativeVoltageSwing) - *@codeEnd - * - *@params - * @paramrow{1.,[in],relativeVoltageSwing,ADLX_DP_LINK_RATE*,@ENG_START_DOX The new relative voltage swing. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the relative voltage swing is successfully set, __ADLX_OK__ is returned.
- * If the relative voltage swing is not successfully set, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * Note that relative voltage swing allowed values range between -2 to +2. - * @ENG_END_DOX - * - *@copydoc IADLXDisplayConnectivityExperience_REQ_TABLE - */ - virtual ADLX_RESULT ADLX_STD_CALL SetRelativeVoltageSwing(adlx_int relativeVoltageSwing) = 0; - /** - *@page DOX_IADLXDisplayConnectivityExperience_IsEnabledLinkProtection IsEnabledLinkProtection - *@ENG_START_DOX @brief Checks if link protection is enabled on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsEnabledLinkProtection (adlx_bool* enabled) - *@codeEnd - * - *@params - * @paramrow{1.,[out],enabled,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of link protection is returned. The variable is __true__ if link protection is enabled. The variable is __false__ if link protection is not enabled. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of link protection is successfully returned, __ADLX_OK__ is returned.
- * If the state of link protection is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@copydoc IADLXDisplayConnectivityExperience_REQ_TABLE - */ - virtual ADLX_RESULT ADLX_STD_CALL IsEnabledLinkProtection(adlx_bool* enabled) = 0; - }; - - typedef IADLXInterfacePtr_T IADLXDisplayConnectivityExperiencePtr; -} -#else -ADLX_DECLARE_IID(IADLXDisplayConnectivityExperience, L"IADLXDisplayConnectivityExperience") -typedef struct IADLXDisplayConnectivityExperience IADLXDisplayConnectivityExperience; - -typedef struct IADLXDisplayConnectivityExperienceVtbl -{ - //IADLXInterface - adlx_long(ADLX_STD_CALL* Acquire)(IADLXDisplayConnectivityExperience* pThis); - adlx_long(ADLX_STD_CALL* Release)(IADLXDisplayConnectivityExperience* pThis); - ADLX_RESULT(ADLX_STD_CALL* QueryInterface)(IADLXDisplayConnectivityExperience* pThis, const wchar_t* interfaceId, void** ppInterface); - - // Display Connectivity Experience interface - ADLX_RESULT(ADLX_STD_CALL* IsSupportedHDMIQualityDetection)(IADLXDisplayConnectivityExperience* pThis, adlx_bool* supported); - ADLX_RESULT(ADLX_STD_CALL* IsSupportedDPLink)(IADLXDisplayConnectivityExperience* pThis, adlx_bool* supported); - ADLX_RESULT(ADLX_STD_CALL* IsEnabledHDMIQualityDetection)(IADLXDisplayConnectivityExperience* pThis, adlx_bool* enabled); - ADLX_RESULT(ADLX_STD_CALL* SetEnabledHDMIQualityDetection)(IADLXDisplayConnectivityExperience* pThis, adlx_bool enabled); - ADLX_RESULT(ADLX_STD_CALL* GetDPLinkRate)(IADLXDisplayConnectivityExperience* pThis, ADLX_DP_LINK_RATE* linkRate); - ADLX_RESULT(ADLX_STD_CALL* GetNumberOfActiveLanes)(IADLXDisplayConnectivityExperience* pThis, adlx_uint* numActiveLanes); - ADLX_RESULT(ADLX_STD_CALL* GetNumberOfTotalLanes)(IADLXDisplayConnectivityExperience* pThis, adlx_uint* numTotalLanes); - ADLX_RESULT(ADLX_STD_CALL* GetRelativePreEmphasis)(IADLXDisplayConnectivityExperience* pThis, adlx_int* relativePreEmphasis); - ADLX_RESULT(ADLX_STD_CALL* SetRelativePreEmphasis)(IADLXDisplayConnectivityExperience* pThis, adlx_int relativePreEmphasis); - ADLX_RESULT(ADLX_STD_CALL* GetRelativeVoltageSwing)(IADLXDisplayConnectivityExperience* pThis, adlx_int* relativeVoltageSwing); - ADLX_RESULT(ADLX_STD_CALL* SetRelativeVoltageSwing)(IADLXDisplayConnectivityExperience* pThis, adlx_int relativeVoltageSwing); - ADLX_RESULT(ADLX_STD_CALL* IsEnabledLinkProtection)(IADLXDisplayConnectivityExperience* pThis, adlx_bool* enabled); -} IADLXDisplayConnectivityExperienceVtbl; - -struct IADLXDisplayConnectivityExperience -{ - const IADLXDisplayConnectivityExperienceVtbl* pVtbl; -}; -#endif - -#pragma endregion IADLXDisplayConnectivtyExperience interface - -#pragma region IADLXDisplayBlanking interface - -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLXDisplayBlanking : public IADLXInterface - { - public: - ADLX_DECLARE_IID(L"IADLXDisplayBlanking") - - /** - *@page DOX_IADLXDisplayBlanking_IsSupported IsSupported - *@ENG_START_DOX @brief Check if display blanking is supported on a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupported (adlx_bool* supported) - *@codeEnd - * - *@params - *@paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of display blanking is returned. The variable is __true__ if display blanking is supported. The variable is __false__ if display blanking is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of display blanking is successfully returned, __ADLX_OK__ is returned.
- * If the state of display blanking is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@copydoc IADLXDisplayBlanking_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupported(adlx_bool* supported) = 0; - - /** - *@page DOX_IADLXDisplayBlanking_IsCurrentBlanked IsCurrentBlanked - *@ENG_START_DOX @brief Checks if the current display is blanked. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsCurrentBlanked (adlx_bool* blanked) - *@codeEnd - * - *@params - *@paramrow{1.,[out],blanked,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of the display blanking is returned. The variable is __true__ if display blanking is enabled. The variable is __false__ if display blanking is not enabled. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of display blanking is successfully returned, __ADLX_OK__ is returned.
- * If the state of display blanking is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@copydoc IADLXDisplayBlanking_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsCurrentBlanked(adlx_bool* blanked) = 0; - - /** - *@page DOX_IADLXDisplayBlanking_IsCurrentUnblanked IsCurrentUnblanked - *@ENG_START_DOX @brief Check if the current display is unblanked. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsCurrentUnblanked (adlx_bool* unBlanked) - *@codeEnd - * - *@params - *@paramrow{1.,[out],unBlanked,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of the display blanking is returned. The variable is __true__ if display blanking is not enabled. The variable is __false__ if display blanking is enabled. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of display blanking is successfully returned, __ADLX_OK__ is returned.
- * If the state of display blanking is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@copydoc IADLXDisplayBlanking_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsCurrentUnblanked(adlx_bool* unBlanked) = 0; - - /** - *@page DOX_IADLXDisplayBlanking_SetBlanked SetBlanked - *@ENG_START_DOX @brief Set the state of display blanking to "blanked". @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetBlanked () - *@codeEnd - * - *@params - * N/A - * - *@retvalues - *@ENG_START_DOX If the state of display blanking is successfully returned, __ADLX_OK__ is returned.
- * If the state of display blanking is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@copydoc IADLXDisplayBlanking_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetBlanked() = 0; - - /** - *@page DOX_IADLXDisplayBlanking_SetUnblanked SetUnblanked - *@ENG_START_DOX @brief Set the state of display blanking to "unblanked". @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetUnblanked () - *@codeEnd - * - *@params - * N/A - * - *@retvalues - *@ENG_START_DOX If the state of display blanking is successfully returned, __ADLX_OK__ is returned.
- * If the state of display blanking is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@copydoc IADLXDisplayBlanking_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetUnblanked() = 0; - }; - - typedef IADLXInterfacePtr_T IADLXDisplayBlankingPtr; -} -#else -ADLX_DECLARE_IID(IADLXDisplayBlanking, L"IADLXDisplayBlanking") -typedef struct IADLXDisplayBlanking IADLXDisplayBlanking; - -typedef struct IADLXDisplayBlankingVtbl -{ - //IADLXInterface - adlx_long(ADLX_STD_CALL* Acquire)(IADLXDisplayBlanking* pThis); - adlx_long(ADLX_STD_CALL* Release)(IADLXDisplayBlanking* pThis); - ADLX_RESULT(ADLX_STD_CALL* QueryInterface)(IADLXDisplayBlanking* pThis, const wchar_t* interfaceId, void** ppInterface); - - //DisplayBlanking interface - ADLX_RESULT(ADLX_STD_CALL* IsSupported)(IADLXDisplayBlanking* pThis, adlx_bool* supported); - ADLX_RESULT(ADLX_STD_CALL* IsCurrentBlanked)(IADLXDisplayBlanking* pThis, adlx_bool* blanked); - ADLX_RESULT(ADLX_STD_CALL* IsCurrentUnblanked)(IADLXDisplayBlanking* pThis, adlx_bool* unBlanked); - ADLX_RESULT(ADLX_STD_CALL* SetBlanked)(IADLXDisplayBlanking* pThis); - ADLX_RESULT(ADLX_STD_CALL* SetUnblanked)(IADLXDisplayBlanking* pThis); -} IADLXDisplayBlankingVtbl; - -struct IADLXDisplayBlanking -{ - const IADLXDisplayBlankingVtbl* pVtbl; -}; -#endif - -#pragma endregion IADLXDisplayBlanking interface - -#endif // ADLX_IDISPLAYSETTING_H diff --git a/src/adlx/sdk/Include/IDisplays.h b/src/adlx/sdk/Include/IDisplays.h deleted file mode 100644 index 5a64a8d..0000000 --- a/src/adlx/sdk/Include/IDisplays.h +++ /dev/null @@ -1,2676 +0,0 @@ -// -// Copyright (c) 2021 - 2023 Advanced Micro Devices, Inc. All rights reserved. -// -//------------------------------------------------------------------------------------------------- - -#ifndef ADLX_IDISPLAYS_H -#define ADLX_IDISPLAYS_H -#pragma once - -#include "ADLXStructures.h" -#include "ICollections.h" -#include "IChangedEvent.h" - -//------------------------------------------------------------------------------------------------- -//IDisplays.h - Interfaces for ADLX Display Information functionality - -//Display interface -#pragma region IADLXDisplay -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLXGPU; - class ADLX_NO_VTABLE IADLXDisplayGamut; - class ADLX_NO_VTABLE IADLXDisplayGamma; - class ADLX_NO_VTABLE IADLXDisplay3DLUT; - class ADLX_NO_VTABLE IADLXDisplayFreeSync; - class ADLX_NO_VTABLE IADLXDisplayVSR; - class ADLX_NO_VTABLE IADLXDisplayGPUScaling; - class ADLX_NO_VTABLE IADLXDisplayScalingMode; - class ADLX_NO_VTABLE IADLXDisplayIntegerScaling; - class ADLX_NO_VTABLE IADLXDisplayColorDepth; - class ADLX_NO_VTABLE IADLXDisplayPixelFormat; - class ADLX_NO_VTABLE IADLXDisplayCustomColor; - class ADLX_NO_VTABLE IADLXDisplayHDCP; - class ADLX_NO_VTABLE IADLXDisplayCustomResolution; - class ADLX_NO_VTABLE IADLXDisplayVariBright; - class ADLX_NO_VTABLE IADLXDisplay : public IADLXInterface - { - public: - ADLX_DECLARE_IID (L"IADLXDisplay") - - /** - * @page DOX_IADLXDisplay_ManufacturerID ManufacturerID - * @ENG_START_DOX - * @brief Gets the manufacturer id of a display. - * @ENG_END_DOX - * - * @syntax - * @codeStart - * @ref ADLX_RESULT ManufacturerID (adlx_uint* manufacturerID) - * @codeEnd - * - * @params - * @paramrow{1.,[out] ,manufacturerID,adlx_uint* ,@ENG_START_DOX The pointer to a variable where the manufacturer id is returned. A valid id is greater than zero. @ENG_END_DOX} - * - * @retvalues - * @ENG_START_DOX - * If the manufacturer id is successfully returned, __ADLX_OK__ is returned.
- * If the manufacturer id is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. - * @ENG_END_DOX - * - * @detaileddesc - * @ENG_START_DOX - * @details The manufacturer id is a predetermined value programmed into the display at the time of manufacturing. A valid manufacturer id is an integer greater than zero.
- * If zero is returned this means the display manufacturer id is invalid. - * @ENG_END_DOX - * - * - * @copydoc IADLXDisplay_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL ManufacturerID (adlx_uint* manufacturerID) const = 0; - - /** - * @page DOX_IADLXDisplay_DisplayType DisplayType - * @ENG_START_DOX - * @brief Gets the type of a display. - * @ENG_END_DOX - * - * @syntax - * @codeStart - * @ref ADLX_RESULT DisplayType (@ref ADLX_DISPLAY_TYPE* displayType) - * @codeEnd - * - * @params - * @paramrow{1.,[out] ,displayType,@ref ADLX_DISPLAY_TYPE* ,@ENG_START_DOX The pointer to a variable where the display type is returned. @ENG_END_DOX} - * - * @retvalues - * @ENG_START_DOX - * If the type of this display is successfully returned, __ADLX_OK__ is returned.
- * If the type of this display is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. - - * @ENG_END_DOX - * - * @detaileddesc - * @ENG_START_DOX - * @details The display type can be used to discover if the display is a TV, a Digital Flat Panel, or any other kind of display. - * @ENG_END_DOX - * - * @copydoc IADLXDisplay_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL DisplayType (ADLX_DISPLAY_TYPE* displayType) const = 0; - - /** - * @page DOX_IADLXDisplay_ConnectorType ConnectorType - * @ENG_START_DOX - * @brief Gets the connector type of a display. - * @ENG_END_DOX - * - * @syntax - * @codeStart - * @ref ADLX_RESULT ConnectorType (@ref ADLX_DISPLAY_CONNECTOR_TYPE* connectType) - * @codeEnd - * - * @params - * @paramrow{1.,[out] ,connectType,@ref ADLX_DISPLAY_CONNECTOR_TYPE* ,@ENG_START_DOX The pointer to a variable where the connector type is returned. @ENG_END_DOX} - * - * @retvalues - * @ENG_START_DOX - * If the connector type is successfully returned, __ADLX_OK__ is returned.
- * If the connector type is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. - * @ENG_END_DOX - * - * @detaileddesc - * @ENG_START_DOX - * @details The connector type can be used to discover if the display is connected to the GPU using HDMI, DisplayPort or any other kind of display interface. - * @ENG_END_DOX - * - * @copydoc IADLXDisplay_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL ConnectorType (ADLX_DISPLAY_CONNECTOR_TYPE* connectType) const = 0; - - /** - * @page DOX_IADLXDisplay_Name Name - * @ENG_START_DOX - * @brief Gets the name of a display. - * @ENG_END_DOX - * - * @syntax - * @codeStart - * @ref ADLX_RESULT Name (const char** displayName) - * @codeEnd - * - * @params - * @paramrow{1.,[out] ,displayName,const char** ,@ENG_START_DOX The pointer to a zero-terminated string where the display name is returned. @ENG_END_DOX} - * - * @retvalues - * @ENG_START_DOX - * If the name of this display is successfully returned, __ADLX_OK__ is returned.
- * If the name of this display is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. - * @ENG_END_DOX - * - * @detaileddesc - * @ENG_START_DOX - * @details The display name is a predetermined value programmed into the display at the time of manufacturing. - * @ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * The returned memory buffer is valid within the lifetime of the @ref DOX_IADLXDisplay interface. If the application uses the display name beyond the lifetime of the IADLXDisplay @ref DOX_IADLXDisplay interface, the application must make a copy of the display name. - * @ENG_END_DOX - * - * @copydoc IADLXDisplay_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL Name (const char** displayName) const = 0; - - /** - * @page DOX_IADLXDisplay_EDID EDID - * @ENG_START_DOX - * @brief Gets the virtual EDID (Extended Display Identification Data) of a display. - * @ENG_END_DOX - * - * @syntax - * @codeStart - * @ref ADLX_RESULT EDID (const char** edid) - * @codeEnd - * - * @params - * @paramrow{1.,[out] ,edid,const char** ,@ENG_START_DOX The pointer to a zero-terminated buffer where the display EDID data is returned. @ENG_END_DOX} - * - * @retvalues - * @ENG_START_DOX - * If the virtual EDID is successfully returned, __ADLX_OK__ is returned.
- * If the virtual EDID is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. - * @ENG_END_DOX - * - * @detaileddesc - * @ENG_START_DOX - * @details EDID is a standardized metadata programmed into the display device by the manufacturer and is used for interoperability by video sources to discover the capabilities and information about the display device. VESA (Video Electronics Standards Association) defines the standard for the EDID data. - * @ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * The returned memory buffer is valid within the lifetime of the @ref DOX_IADLXDisplay interface. If the application uses the EDID beyond the lifetime of the IADLXDisplay @ref DOX_IADLXDisplay interface, the application must make a copy of the EDID. - * @ENG_END_DOX - * - * @copydoc IADLXDisplay_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL EDID (const char** edid) const = 0; - - /** - * @page DOX_IADLXDisplay_NativeResolution NativeResolution - * @ENG_START_DOX - * @brief Gets the native resolution of a display. - * @ENG_END_DOX - * - * @syntax - * @codeStart - * @ref ADLX_RESULT NativeResolution (adlx_int* maxHResolution, adlx_int* maxVResolution) - * @codeEnd - * - * @params - * @paramrow{1.,[out] ,maxHResolution,adlx_int* ,@ENG_START_DOX The pointer to a variable where the horizontal resolution of the display is returned. @ENG_END_DOX} - * @paramrow{2.,[out] ,maxVResolution,adlx_int* ,@ENG_START_DOX The pointer to a variable where the vertical resolution of the display is returned. @ENG_END_DOX} - * - * @retvalues - * @ENG_START_DOX - * If the native resolution is successfully returned, __ADLX_OK__ is returned.
- * If the resolution is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. - * @ENG_END_DOX - * - * @detaileddesc - * @ENG_START_DOX - * @details The native resolution of the display is shown in the Windows Advanced display settings as Active signal resolution. - * @ENG_END_DOX - * - * @copydoc IADLXDisplay_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL NativeResolution (adlx_int* maxHResolution, adlx_int* maxVResolution) const = 0; - - /** - * @page DOX_IADLXDisplay_RefreshRate RefreshRate - * @ENG_START_DOX - * @brief Gets the refresh rate of a display. - * @ENG_END_DOX - * - * @syntax - * @codeStart - * @ref ADLX_RESULT RefreshRate (adlx_double* refreshRate) - * @codeEnd - * - * @params - * @paramrow{1.,[out] ,refreshRate,adlx_double* ,@ENG_START_DOX The pointer to a variable where the refresh rate of the display (in Hz) is returned. @ENG_END_DOX} - * - * @retvalues - * @ENG_START_DOX - * If the refresh rate is successfully returned, __ADLX_OK__ is returned.
- * If the refresh rate is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. - * @ENG_END_DOX - * - * @detaileddesc - * @ENG_START_DOX - * @details The refresh rate returns the number of times per second the display shows a new image. - * @ENG_END_DOX - * - * @copydoc IADLXDisplay_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL RefreshRate (adlx_double* refreshRate) const = 0; - - /** - * @page DOX_IADLXDisplay_PixelClock PixelClock - * @ENG_START_DOX - * @brief Gets the pixel clock of a display. - * @ENG_END_DOX - * - * @syntax - * @codeStart - * @ref ADLX_RESULT PixelClock (adlx_uint* pixelClock) - * @codeEnd - * - * @params - * @paramrow{1.,[out] ,pixelClock,adlx_uint* ,@ENG_START_DOX The pointer to a variable where the pixel clock of the display (in KHz) is returned. @ENG_END_DOX} - * - * @retvalues - * @ENG_START_DOX - * If the pixel clock is successfully returned, __ADLX_OK__ is returned.
- * If the pixel clock is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. - * @ENG_END_DOX - * - * @detaileddesc - * @ENG_START_DOX - * @details The pixel clock rate is the speed at which pixels are transmitted over a video signal such as HDMI or DVI, to fit a full frame of pixels in one refresh cycle. - * @ENG_END_DOX - * - * @copydoc IADLXDisplay_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL PixelClock (adlx_uint* pixelClock) const = 0; - - /** - * @page DOX_IADLXDisplay_ScanType ScanType - * @ENG_START_DOX - * @brief Gets the scan type of a display. - * @ENG_END_DOX - * - * @syntax - * @codeStart - * @ref ADLX_RESULT ScanType (@ref ADLX_DISPLAY_SCAN_TYPE* scanType) - * @codeEnd - * - * @params - * @paramrow{1.,[out] ,scanType,@ref ADLX_DISPLAY_SCAN_TYPE* ,@ENG_START_DOX The pointer to a variable where the scan type of the display is returned. @ENG_END_DOX} - * - * @retvalues - * @ENG_START_DOX - * If the scan type is successfully returned, __ADLX_OK__ is returned.
- * If the scan type is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. - * @ENG_END_DOX - * - * @detaileddesc - * @ENG_START_DOX - * @details The scan type can be progressive or interlaced. - * @ENG_END_DOX - * - * @copydoc IADLXDisplay_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL ScanType (ADLX_DISPLAY_SCAN_TYPE* scanType) const = 0; - - /** - *@page DOX_IADLXDisplay_GetGPU GetGPU - *@ENG_START_DOX @brief Gets the reference counted GPU interface of a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetGPU (@ref DOX_IADLXGPU** ppGPU) - *@codeEnd - * - *@params - *@paramrow{1.,[out] ,ppGPU,@ref DOX_IADLXGPU** ,@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 __*ppGPU__ to __nullptr__. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX - * If the reference counted GPU interface is successfully returned, __ADLX_OK__ is returned.
- * If the reference counted GPU interface is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX - * - *@addinfo - *@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 - * - *@copydoc IADLXDisplay_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetGPU (IADLXGPU** ppGPU) = 0; - - /** - * @page DOX_IADLXDisplay_UniqueId UniqueId - * @ENG_START_DOX@brief Gets the unique id of a Display.@ENG_END_DOX - * @syntax - * @codeStart - * @ref ADLX_RESULT UniqueId(adlx_size* uniqueId) - * @codeEnd - * - * @params - * @paramrow{1.,[out],uniqueId,adlx_size*,@ENG_START_DOX The pointer to a variable where the unique id of the Display is returned. @ENG_END_DOX} - * - * @retvalues - * @ENG_START_DOX - * If the unique id is successfully returned, __ADLX_OK__ is returned.
- * If the unique id is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
- * @ENG_END_DOX - * - * @copydoc IADLXDisplay_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL UniqueId(adlx_size* uniqueId) = 0; - }; //IADLXDisplay - //---------------------------------------------------------------------------------------------- - typedef IADLXInterfacePtr_T IADLXDisplayPtr; -} //namespace adlx -#else //__cplusplus -ADLX_DECLARE_IID (IADLXDisplay, L"IADLXDisplay") -typedef struct IADLXDisplayGamut IADLXDisplayGamut; -typedef struct IADLXDisplayGamma IADLXDisplayGamma; -typedef struct IADLXDisplay3DLUT IADLXDisplay3DLUT; -typedef struct IADLXGPU IADLXGPU; - -typedef struct IADLXDisplay IADLXDisplay; - -typedef struct IADLXDisplayVtbl -{ - //IADLXInterface - adlx_long (ADLX_STD_CALL* Acquire)( IADLXDisplay* pThis ); - adlx_long (ADLX_STD_CALL* Release)( IADLXDisplay* pThis ); - ADLX_RESULT (ADLX_STD_CALL* QueryInterface)( IADLXDisplay* pThis, const wchar_t* interfaceId, void** ppInterface ); - - //IADLXDisplay - ADLX_RESULT (ADLX_STD_CALL* ManufacturerID)( IADLXDisplay* pThis, adlx_uint* manufacturerID ); - ADLX_RESULT (ADLX_STD_CALL* DisplayType)( IADLXDisplay* pThis, ADLX_DISPLAY_TYPE* displayType ); - ADLX_RESULT (ADLX_STD_CALL* ConnectorType)( IADLXDisplay* pThis, ADLX_DISPLAY_CONNECTOR_TYPE* connectType ); - ADLX_RESULT (ADLX_STD_CALL* Name)( IADLXDisplay* pThis, const char** displayName ); - ADLX_RESULT (ADLX_STD_CALL* EDID)( IADLXDisplay* pThis, const char** edid ); - ADLX_RESULT (ADLX_STD_CALL* NativeResolution)( IADLXDisplay* pThis, adlx_int* maxHResolution, adlx_int* maxVResolution ); - ADLX_RESULT (ADLX_STD_CALL* RefreshRate)( IADLXDisplay* pThis, adlx_double* refreshRate ); - ADLX_RESULT (ADLX_STD_CALL* PixelClock)( IADLXDisplay* pThis, adlx_uint* pixelClock ); - ADLX_RESULT (ADLX_STD_CALL* ScanType)( IADLXDisplay* pThis, ADLX_DISPLAY_SCAN_TYPE* scanType ); - ADLX_RESULT (ADLX_STD_CALL* GetGPU)( IADLXDisplay* pThis, IADLXGPU** ppGPU ); - ADLX_RESULT (ADLX_STD_CALL* UniqueId)( IADLXDisplay* pThis, adlx_size* uniqueId ); -}IADLXDisplayVtbl; - -struct IADLXDisplay { const IADLXDisplayVtbl* pVtbl; }; -#endif //__cplusplus -#pragma endregion IADLXDisplay - -//Display list interface -#pragma region IADLXDisplayList -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLXDisplayList : public IADLXList - { - public: - ADLX_DECLARE_IID (L"IADLXDisplayList") - //Lists must declare the type of items it holds - what was passed as ADLX_DECLARE_IID() in that interface - ADLX_DECLARE_ITEM_IID (IADLXDisplay::IID ()) - - /** - * @page DOX_IADLXDisplayList_At At - * @ENG_START_DOX - * @brief Returns the reference counted interface at the requested location. - * @ENG_END_DOX - * - * @syntax - * @codeStart - * @ref ADLX_RESULT At (const adlx_uint location, @ref DOX_IADLXDisplay** ppItem) - * @codeEnd - * - * @params - * @paramrow{1.,[in] ,location,const adlx_uint ,@ENG_START_DOX The location of the requested interface. @ENG_END_DOX} - * @paramrow{2.,[out] ,ppItem,@ref DOX_IADLXDisplay** ,@ENG_START_DOX The address of a pointer to the returned interface. If the interface is not successfully returned then the method sets the dereferenced address __*ppItem__ to __nullptr__. @ENG_END_DOX} - * - * @retvalues - * @ENG_START_DOX - * If the location is within the list bounds, __ADLX_OK__ is returned.
- * If the location is not within the list bounds, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
- * @ENG_END_DOX - * - * @detaileddesc - * @ENG_START_DOX - * @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. - * @ENG_END_DOX - * - * @addinfo - * @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 - * - * @copydoc IADLXDisplayList_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL At (const adlx_uint location, IADLXDisplay** ppItem) = 0; - - /** - *@page DOX_IADLXDisplayList_Add_Back Add_Back - *@ENG_START_DOX @brief Adds an interface to the end of a list. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT Add_Back (@ref DOX_IADLXDisplay* pItem) - *@codeEnd - * - *@params - *@paramrow{1.,[in] ,pItem,@ref DOX_IADLXDisplay* ,@ENG_START_DOX The pointer to the interface to be added to the list. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX - * If the interface is added successfully to the end of the list, __ADLX_OK__ is returned.
- * If the interface is not added to the end of the list, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details @ENG_END_DOX - * - *@copydoc IADLXDisplayList_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL Add_Back (IADLXDisplay* pItem) = 0; - }; //IADLXDisplayList - //---------------------------------------------------------------------------------------------- - typedef IADLXInterfacePtr_T IADLXDisplayListPtr; -} //namespace adlx -#else //__cplusplus -ADLX_DECLARE_IID (IADLXDisplayList, L"IADLXDisplayList") -ADLX_DECLARE_ITEM_IID (IADLXDisplay, IID_IADLXDisplay ()) - -typedef struct IADLXDisplayList IADLXDisplayList; - -typedef struct IADLXDisplayListVtbl -{ - //IADLXInterface - adlx_long (ADLX_STD_CALL* Acquire)( IADLXDisplayList* pThis ); - adlx_long (ADLX_STD_CALL* Release)( IADLXDisplayList* pThis ); - ADLX_RESULT (ADLX_STD_CALL* QueryInterface)( IADLXDisplayList* pThis, const wchar_t* interfaceId, void** ppInterface ); - - //IADLXList - adlx_uint (ADLX_STD_CALL* Size)( IADLXDisplayList* pThis ); - adlx_bool (ADLX_STD_CALL* Empty)( IADLXDisplayList* pThis ); - adlx_uint (ADLX_STD_CALL* Begin)( IADLXDisplayList* pThis ); - adlx_uint (ADLX_STD_CALL* End)( IADLXDisplayList* pThis ); - ADLX_RESULT (ADLX_STD_CALL* At)( IADLXDisplayList* pThis, const adlx_uint location, IADLXInterface** ppItem ); - ADLX_RESULT (ADLX_STD_CALL* Clear)( IADLXDisplayList* pThis ); - ADLX_RESULT (ADLX_STD_CALL* Remove_Back)( IADLXDisplayList* pThis ); - ADLX_RESULT (ADLX_STD_CALL* Add_Back)( IADLXDisplayList* pThis, IADLXInterface* pItem ); - - //IADLXDisplayList - ADLX_RESULT (ADLX_STD_CALL* At_DisplayList)( IADLXDisplayList* pThis, const adlx_uint location, IADLXDisplay** ppItem ); - ADLX_RESULT (ADLX_STD_CALL* Add_Back_DisplayList)( IADLXDisplayList* pThis, IADLXDisplay* pItem ); - -}IADLXDisplayListVtbl; - -struct IADLXDisplayList { const IADLXDisplayListVtbl* pVtbl; }; -#endif //__cplusplus -#pragma endregion IADLXDisplayList - -//Display List changed listener interface. To be implemented in application and passed in IADLXDisplayChangedHandling::AddDisplayListEventListener() -#pragma region IADLXDisplayListChangedListener -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLXDisplayListChangedListener - { - public: - /** - *@page DOX_IADLXDisplayListChangedListener_OnDisplayListChanged OnDisplayListChanged - *@ENG_START_DOX @brief The __OnDisplayListChanged__ method is called by ADLX when the display list changes. @ENG_END_DOX - * - *@syntax - *@codeStart - * adlx_bool OnDisplayListChanged (@ref DOX_IADLXDisplayList* pNewDisplay) - *@codeEnd - * - *@params - *@paramrow{1.,[out] ,pNewDisplay,@ref DOX_IADLXDisplayList* ,@ENG_START_DOX The pointer to the new display list. @ENG_END_DOX} - * - * - *@retvalues - *@ENG_START_DOX - * If the application requires ADLX to continue notifying the next listener, __true__ must be returned.
- * If the application requires ADLX to stop notifying the next listener, __false__ must be returned.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX - * Once the application registers to the notifications with @ref DOX_IADLXDisplayChangedHandling_AddDisplayListEventListener, ADLX will call this method until the application unregisters from the notifications with @ref DOX_IADLXDisplayChangedHandling_RemoveDisplayListEventListener.
- * The method should return quickly to not block the execution path in ADLX. If the method requires a long processing of the event notification, the application must hold onto a reference to the new display list with @ref DOX_IADLXInterface_Acquire and make it available on an asynchronous thread and return immediately. When the asynchronous thread is done processing it must discard the new display list with @ref DOX_IADLXInterface_Release. @ENG_END_DOX - * - * - *@copydoc IADLXDisplayListChangedListener_REQ_TABLE - * - */ - virtual adlx_bool ADLX_STD_CALL OnDisplayListChanged (IADLXDisplayList* pNewDisplay) = 0; - }; //IADLXDisplayListChangedListener -} //namespace adlx -#else //__cplusplus -typedef struct IADLXDisplayListChangedListener IADLXDisplayListChangedListener; - -typedef struct IADLXDisplayListChangedListenerVtbl -{ - // IDisplayEventListener interface - adlx_bool (ADLX_STD_CALL* OnDisplayListChanged)( IADLXDisplayListChangedListener* pThis, IADLXDisplayList* pNewDisplay ); - -} IADLXDisplayListChangedListenerVtbl; - -struct IADLXDisplayListChangedListener { const IADLXDisplayListChangedListenerVtbl* pVtbl; }; -#endif //__cplusplus -#pragma endregion IADLXDisplayListChangedListener - -//Interface with information on gamut changes on a display. ADLX passes this to application that registered for Gamut changed event in the IADLXDisplayGamutChangedListener::OnDisplayGamutChanged() -#pragma region IADLXDisplayGamutChangedEvent -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLXDisplayGamutChangedEvent : public IADLXChangedEvent - { - public: - ADLX_DECLARE_IID (L"IADLXDisplayGamutChangedEvent") - - /** - *@page DOX_IADLXDisplayGamutChangedEvent_GetDisplay GetDisplay - *@ENG_START_DOX @brief Gets the reference counted display interface on which the gamut setting is changed. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetDisplay (@ref DOX_IADLXDisplay** ppDisplay) - *@codeEnd - * - *@params - *@paramrow{1.,[out] ,ppDisplay,@ref DOX_IADLXDisplay** ,@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 __*ppDisplay__ to __nullptr__. @ENG_END_DOX} - * - * - *@retvalues - *@ENG_START_DOX - * If the display interface is successfully returned, __ADLX_OK__ is returned.
- * If the display inferface is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX - * - *@addinfo - *@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.
- * __Note:__ @ref DOX_IADLXDisplayGamutChangedEvent_GetDisplay returns the reference counted display used by all the methods in this interface to check if there are any changes. - *@ENG_END_DOX - * - * - *@copydoc IADLXDisplayGamutChangedEvent_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetDisplay (IADLXDisplay** ppDisplay) = 0; - - /** - *@page DOX_IADLXDisplayGamutChangedEvent_IsWhitePointChanged IsWhitePointChanged - *@ENG_START_DOX @brief Checks if the white point of the display gamut is changed. @ENG_END_DOX - * - *@syntax - *@codeStart - * adlx_bool IsWhitePointChanged () - *@codeEnd - * - *@params - *N/A - * - * - *@retvalues - *@ENG_START_DOX - * If the white point is changed, __true__ is returned.
- * If the white point is not changed, __false__ is returned.
@ENG_END_DOX - * - *@addinfo - *@ENG_START_DOX - * __Note:__ To obtain the display, use @ref DOX_IADLXDisplayGamutChangedEvent_GetDisplay. - *@ENG_END_DOX - * - *@copydoc IADLXDisplayGamutChangedEvent_REQ_TABLE - * - */ - virtual adlx_bool ADLX_STD_CALL IsWhitePointChanged () = 0; - - /** - *@page DOX_IADLXDisplayGamutChangedEvent_IsColorSpaceChanged IsColorSpaceChanged - *@ENG_START_DOX @brief Checks if the color space of the display gamut is changed. @ENG_END_DOX - * - *@syntax - *@codeStart - * adlx_bool IsColorSpaceChanged () - *@codeEnd - * - *@params - *N/A - * - * - *@retvalues - *@ENG_START_DOX - * If the color space is changed, __true__ is returned.
- * If the color space is not changed, __false__ is returned.
@ENG_END_DOX - * - *@addinfo - *@ENG_START_DOX - * __Note:__ To obtain the display, use @ref DOX_IADLXDisplayGamutChangedEvent_GetDisplay. - *@ENG_END_DOX - * - *@copydoc IADLXDisplayGamutChangedEvent_REQ_TABLE - * - */ - virtual adlx_bool ADLX_STD_CALL IsColorSpaceChanged () = 0; - }; //IADLXDisplayGamutChangedEvent - //---------------------------------------------------------------------------------------------- - typedef IADLXInterfacePtr_T IADLXDisplayGamutChangedEventPtr; -} //namespace adlx -#else //__cplusplus -ADLX_DECLARE_IID (IADLXDisplayGamutChangedEvent, L"IADLXDisplayGamutChangedEvent") -typedef struct IADLXDisplayGamutChangedEvent IADLXDisplayGamutChangedEvent; - -typedef struct IADLXDisplayGamutChangedEventVtbl -{ - //IADLXInterface - adlx_long (ADLX_STD_CALL* Acquire)( IADLXDisplayGamutChangedEvent* pThis ); - adlx_long (ADLX_STD_CALL* Release)( IADLXDisplayGamutChangedEvent* pThis ); - ADLX_RESULT (ADLX_STD_CALL* QueryInterface)( IADLXDisplayGamutChangedEvent* pThis, const wchar_t* interfaceId, void** ppInterface ); - - //IADLXChangedEvent - ADLX_SYNC_ORIGIN(ADLX_STD_CALL* GetOrigin)(IADLXDisplayGamutChangedEvent* pThis); - - // IADLXDisplayGamutChangedEvent interface - ADLX_RESULT (ADLX_STD_CALL* GetDisplay)( IADLXDisplayGamutChangedEvent* pThis, IADLXDisplay** ppDisplay ); - adlx_bool (ADLX_STD_CALL* IsWhitePointChanged)( IADLXDisplayGamutChangedEvent* pThis ); - adlx_bool (ADLX_STD_CALL* IsColorSpaceChanged)( IADLXDisplayGamutChangedEvent* pThis ); - -} IADLXDisplayGamutChangedEventVtbl; - -struct IADLXDisplayGamutChangedEvent { const IADLXDisplayGamutChangedEventVtbl* pVtbl; }; -#endif //__cplusplus -#pragma endregion IADLXDisplayGamutChangedEvent - -//Display Gamut changed listener interface. To be implemented in application and passed in IADLXDisplayChangedHandling::AddDisplayGamutEventListener() -#pragma region IADLXDisplayGamutChangedListener -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLXDisplayGamutChangedListener - { - public: - /** - *@page DOX_IADLXDisplayGamutChangedListener_OnDisplayGamutChanged OnDisplayGamutChanged - *@ENG_START_DOX @brief The __OnDisplayGamutChanged__ method is called by ADLX when the display gamut changes. @ENG_END_DOX - * - *@syntax - *@codeStart - * adlx_bool OnDisplayGamutChanged (@ref DOX_IADLXDisplayGamutChangedEvent* pDisplayGamutChangedEvent) - *@codeEnd - * - *@params - *@paramrow{1.,[in] ,pDisplayGamutChangedEvent,@ref DOX_IADLXDisplayGamutChangedEvent* ,@ENG_START_DOX The pointer to the event. @ENG_END_DOX} - * - * - *@retvalues - *@ENG_START_DOX - * If the application requires ADLX to continue notifying the next listener, __true__ must be returned.
- * If the application requires ADLX to stop notifying the next listener, __false__ must be returned.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX - * Once the application registers to the notifications with @ref DOX_IADLXDisplayChangedHandling_AddDisplayGamutEventListener, ADLX will call this method until the application unregisters from the notifications with @ref DOX_IADLXDisplayChangedHandling_RemoveDisplayGamutEventListener.
- * The method should return quickly to not block the execution path in ADLX. If the method requires a long processing of the event notification, the application must hold onto a reference to the gamut change event with @ref DOX_IADLXInterface_Acquire and make it available on an asynchronous thread and return immediately. When the asynchronous thread is done processing it must discard the gamut change event with @ref DOX_IADLXInterface_Release. @ENG_END_DOX - * - * - *@copydoc IADLXDisplayGamutChangedListener_REQ_TABLE - * - */ - virtual adlx_bool ADLX_STD_CALL OnDisplayGamutChanged (IADLXDisplayGamutChangedEvent* pDisplayGamutChangedEvent) = 0; - }; //IADLXDisplayGamutChangedListener -} //namespace adlx -#else //__cplusplus -typedef struct IADLXDisplayGamutChangedListener IADLXDisplayGamutChangedListener; - -typedef struct IADLXDisplayGamutChangedListenerVtbl -{ - // IADLXDisplayGamutChangedListener interface - adlx_bool (ADLX_STD_CALL* OnDisplayGamutChanged)( IADLXDisplayGamutChangedListener* pThis, IADLXDisplayGamutChangedEvent* pDisplayGamutChangedEvent ); - -} IADLXDisplayGamutChangedListenerVtbl; - -struct IADLXDisplayGamutChangedListener { const IADLXDisplayGamutChangedListenerVtbl* pVtbl; }; -#endif //__cplusplus -#pragma endregion IADLXDisplayGamutChangedListener - -//Interface with information on gamma changes on a display. ADLX passes this to application that registered for Gamma changed event in the IADLXDisplayGammaChangedListener::OnDisplayGammaChanged() -#pragma region IADLXDisplayGammaChangedEvent -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLXDisplayGammaChangedEvent : public IADLXChangedEvent - { - public: - ADLX_DECLARE_IID (L"IADLXDisplayGammaChangedEvent") - - /** - *@page DOX_IADLXDisplayGammaChangedEvent_GetDisplay GetDisplay - *@ENG_START_DOX @brief Gets the reference counted display interface on which the gamma setting is changed. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetDisplay (@ref DOX_IADLXDisplay** ppDisplay) - *@codeEnd - * - *@params - *@paramrow{1.,[out] ,ppDisplay,@ref DOX_IADLXDisplay** ,@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 __*ppDisplay__ to __nullptr__. @ENG_END_DOX} - * - * - *@retvalues - *@ENG_START_DOX - * If the display interface is successfully returned, __ADLX_OK__ is returned.
- * If the display inferface is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX - * - *@addinfo - *@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.
- * __Note:__ @ref DOX_IADLXDisplayGammaChangedEvent_GetDisplay returns the reference counted display used by all the methods in this interface to check if there are any changes. - *@ENG_END_DOX - * - * - *@copydoc IADLXDisplayGammaChangedEvent_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetDisplay (IADLXDisplay** ppDisplay) = 0; - - /** - *@page DOX_IADLXDisplayGammaChangedEvent_IsGammaRampChanged IsGammaRampChanged - *@ENG_START_DOX @brief Checks if the gamma ramp of a display is changed. @ENG_END_DOX - * - *@syntax - *@codeStart - * adlx_bool IsGammaRampChanged () - *@codeEnd - * - *@params - *N/A - * - * - *@retvalues - *@ENG_START_DOX - * If the gamma ramp is changed, __true__ is returned.
- * If the gamma ramp is not changed, __false__ is returned.
@ENG_END_DOX - * - *@addinfo - *@ENG_START_DOX - * __Note:__ To obtain the display, use @ref DOX_IADLXDisplayGammaChangedEvent_GetDisplay. - *@ENG_END_DOX - * - *@copydoc IADLXDisplayGammaChangedEvent_REQ_TABLE - * - */ - virtual adlx_bool ADLX_STD_CALL IsGammaRampChanged () = 0; - - /** - *@page DOX_IADLXDisplayGammaChangedEvent_IsGammaCoefficientChanged IsGammaCoefficientChanged - *@ENG_START_DOX @brief Checks if the gamma coefficient of a display is changed. @ENG_END_DOX - * - *@syntax - *@codeStart - * adlx_bool IsGammaCoefficientChanged () - *@codeEnd - * - *@params - *N/A - * - * - *@retvalues - *@ENG_START_DOX - * If the gamma coefficient is changed, __true__ is returned.
- * If the gamma coefficient is not changed, __false__ is returned.
@ENG_END_DOX - * - * - *@addinfo - *@ENG_START_DOX - * __Note:__ To obtain the display, use @ref DOX_IADLXDisplayGammaChangedEvent_GetDisplay. - *@ENG_END_DOX - * - *@copydoc IADLXDisplayGammaChangedEvent_REQ_TABLE - * - */ - virtual adlx_bool ADLX_STD_CALL IsGammaCoefficientChanged () = 0; - - /** - *@page DOX_IADLXDisplayGammaChangedEvent_IsReGammaChanged IsReGammaChanged - *@ENG_START_DOX @brief Checks if the re-gamma of a display is changed. @ENG_END_DOX - * - *@syntax - *@codeStart - * adlx_bool IsReGammaChanged () - *@codeEnd - * - *@params - *N/A - * - * - *@retvalues - *@ENG_START_DOX - * If the re-gamma is changed, __true__ is returned.
- * If the re-gamma is not changed, __false__ is returned.
@ENG_END_DOX - * - * - *@addinfo - *@ENG_START_DOX - * __Note:__ To obtain the display, use @ref DOX_IADLXDisplayGammaChangedEvent_GetDisplay. - *@ENG_END_DOX - * - *@copydoc IADLXDisplayGammaChangedEvent_REQ_TABLE - * - */ - virtual adlx_bool ADLX_STD_CALL IsReGammaChanged () = 0; - - /** - *@page DOX_IADLXDisplayGammaChangedEvent_IsDeGammaChanged IsDeGammaChanged - *@ENG_START_DOX @brief Checks if the de-gamma of a display is changed. @ENG_END_DOX - * - *@syntax - *@codeStart - * adlx_bool IsDeGammaChanged () - *@codeEnd - * - *@params - *N/A - * - * - *@retvalues - *@ENG_START_DOX - * If the de-gamma is changed, __true__ is returned.
- * If the de-gamma is not changed, __false__ is returned.
@ENG_END_DOX - * - *@addinfo - *@ENG_START_DOX - * __Note:__ To obtain the display, use @ref DOX_IADLXDisplayGammaChangedEvent_GetDisplay. - *@ENG_END_DOX - * - *@copydoc IADLXDisplayGammaChangedEvent_REQ_TABLE - * - */ - virtual adlx_bool ADLX_STD_CALL IsDeGammaChanged () = 0; - }; //IADLXDisplayGammaChangedEvent - //---------------------------------------------------------------------------------------------- - typedef IADLXInterfacePtr_T IADLXDisplayGammaChangedEventPtr; -} //namespace adlx -#else //__cplusplus -ADLX_DECLARE_IID (IADLXDisplayGammaChangedEvent, L"IADLXDisplayGammaChangedEvent") -typedef struct IADLXDisplayGammaChangedEvent IADLXDisplayGammaChangedEvent; - -typedef struct IADLXDisplayGammaChangedEventVtbl -{ - //IADLXInterface - adlx_long (ADLX_STD_CALL* Acquire)( IADLXDisplayGammaChangedEvent* pThis ); - adlx_long (ADLX_STD_CALL* Release)( IADLXDisplayGammaChangedEvent* pThis ); - ADLX_RESULT (ADLX_STD_CALL* QueryInterface)( IADLXDisplayGammaChangedEvent* pThis, const wchar_t* interfaceId, void** ppInterface ); - - //IADLXChangedEvent - ADLX_SYNC_ORIGIN(ADLX_STD_CALL* GetOrigin)(IADLXDisplayGammaChangedEvent* pThis); - - // IADLXDisplayGammaChangedEvent interface - ADLX_RESULT (ADLX_STD_CALL* GetDisplay)( IADLXDisplayGammaChangedEvent* pThis, IADLXDisplay** ppDisplay ); - adlx_bool (ADLX_STD_CALL* IsGammaRampChanged)( IADLXDisplayGammaChangedEvent* pThis ); - adlx_bool (ADLX_STD_CALL* IsGammaCoefficientChanged)( IADLXDisplayGammaChangedEvent* pThis ); - adlx_bool (ADLX_STD_CALL* IsReGammaChanged)( IADLXDisplayGammaChangedEvent* pThis ); - adlx_bool (ADLX_STD_CALL* IsDeGammaChanged)( IADLXDisplayGammaChangedEvent* pThis ); - -} IADLXDisplayGammaChangedEventVtbl; - -struct IADLXDisplayGammaChangedEvent { const IADLXDisplayGammaChangedEventVtbl* pVtbl; }; -#endif //__cplusplus -#pragma endregion IADLXDisplayGammaChangedEvent - -//Display Gamma changed listener interface. To be implemented in application and passed in IADLXDisplayChangedHandling::AddDisplayGammaEventListener() -#pragma region IADLXDisplayGammaChangedListener -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLXDisplayGammaChangedListener - { - public: - /** - *@page DOX_IADLXDisplayGammaChangedListener_OnDisplayGammaChanged OnDisplayGammaChanged - *@ENG_START_DOX @brief The __OnDisplayGammaChanged__ method is called by ADLX when the display gamma changes. @ENG_END_DOX - * - *@syntax - *@codeStart - * adlx_bool OnDisplayGammaChanged (@ref DOX_IADLXDisplayGammaChangedEvent* pDisplayGammaChangedEvent) - *@codeEnd - * - *@params - *@paramrow{1.,[in] ,pDisplayGammaChangedEvent,@ref DOX_IADLXDisplayGammaChangedEvent* ,@ENG_START_DOX The pointer to the event. @ENG_END_DOX} - * - * - *@retvalues - *@ENG_START_DOX - * If the application requires ADLX to continue notifying the next listener, __true__ must be returned.
- * If the application requires ADLX to stop notifying the next listener, __false__ must be returned.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX - * Once the application registers to the notifications with @ref DOX_IADLXDisplayChangedHandling_AddDisplayGammaEventListener, ADLX will call this method until the application unregisters from the notifications with @ref DOX_IADLXDisplayChangedHandling_RemoveDisplayGammaEventListener.
- * The method should return quickly to not block the execution path in ADLX. If the method requires a long processing of the event notification, the application must hold onto a reference to the gamma change event with @ref DOX_IADLXInterface_Acquire and make it available on an asynchronous thread and return immediately. When the asynchronous thread is done processing it must discard the gamma change event with @ref DOX_IADLXInterface_Release. @ENG_END_DOX - * - * - *@copydoc IADLXDisplayGammaChangedListener_REQ_TABLE - * - */ - virtual adlx_bool ADLX_STD_CALL OnDisplayGammaChanged (IADLXDisplayGammaChangedEvent* pDisplayGammaChangedEvent) = 0; - }; //IADLXDisplayGammaChangedListener -} //namespace adlx -#else //__cplusplus -typedef struct IADLXDisplayGammaChangedListener IADLXDisplayGammaChangedListener; - -typedef struct IADLXDisplayGammaChangedListenerVtbl -{ - // IADLXDisplayGammaChangedListener interface - adlx_bool (ADLX_STD_CALL* OnDisplayGammaChanged)( IADLXDisplayGammaChangedListener* pThis, IADLXDisplayGammaChangedEvent* pDisplayGammaChangedEvent ); - -} IADLXDisplayGammaChangedListenerVtbl; - -struct IADLXDisplayGammaChangedListener { const IADLXDisplayGammaChangedListenerVtbl* pVtbl; }; -#endif //__cplusplus -#pragma endregion IADLXDisplayGammaChangedListener - -//Interface with information on 3D LUT changes on a display. ADLX passes this to application that registered for 3D LUT changed event in the IADLXDisplay3DLUTChangedListener::OnDisplay3DLUTChanged() -#pragma region IADLXDisplay3DLUTChangedEvent -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLXDisplay3DLUTChangedEvent : public IADLXChangedEvent - { - public: - ADLX_DECLARE_IID (L"IADLXDisplay3DLUTChangedEvent") - - /** - *@page DOX_IADLXDisplay3DLUTChangedEvent_GetDisplay GetDisplay - *@ENG_START_DOX @brief Gets the reference counted display interface on which the 3D LUT is changed. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetDisplay (@ref DOX_IADLXDisplay** ppDisplay) - *@codeEnd - * - *@params - *@paramrow{1.,[in] ,ppDisplay,@ref DOX_IADLXDisplay** ,@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 __*ppDisplay__ to __nullptr__. @ENG_END_DOX} - * - * - *@retvalues - *@ENG_START_DOX - * If the display interface is successfully returned, __ADLX_OK__ is returned.
- * If the display inferface is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX - * - *@addinfo - *@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.
- * __Note:__ @ref DOX_IADLXDisplay3DLUTChangedEvent_GetDisplay returns the reference counted display used by all the methods in this interface to check if there are any changes. - *@ENG_END_DOX - * - * - *@copydoc IADLXDisplay3DLUTChangedEvent_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetDisplay (IADLXDisplay** ppDisplay) = 0; - /** - *@page DOX_IADLXDisplay3DLUTChangedEvent_IsSCEChanged IsSCEChanged - *@ENG_START_DOX @brief Checks if the color enhancement of a display is changed. @ENG_END_DOX - * - *@syntax - *@codeStart - * adlx_bool IsSCEChanged () - *@codeEnd - * - *@params - *N/A - * - * - *@retvalues - *@ENG_START_DOX - * If the color enhancement is changed, __true__ is returned.
- * If the color enhancement is not changed, __false__ is returned.
@ENG_END_DOX - * - * - *@addinfo - *@ENG_START_DOX - * __Note:__ To obtain the display, use @ref DOX_IADLXDisplay3DLUTChangedEvent_GetDisplay. - *@ENG_END_DOX - * - *@copydoc IADLXDisplay3DLUTChangedEvent_REQ_TABLE - * - */ - virtual adlx_bool ADLX_STD_CALL IsSCEChanged() = 0; - /** - *@page DOX_IADLXDisplay3DLUTChangedEvent_IsCustom3DLUTChanged IsCustom3DLUTChanged - *@ENG_START_DOX @brief Checks if the custom 3D LUT for panel calibration of a display is changed. @ENG_END_DOX - * - *@syntax - *@codeStart - * adlx_bool IsCustom3DLUTChanged () - *@codeEnd - * - *@params - *N/A - * - * - *@retvalues - *@ENG_START_DOX - * If the custom 3D LUT is changed, __true__ is returned.
- * If the custom 3D LUT is not changed, __false__ is returned.
@ENG_END_DOX - * - *@addinfo - *@ENG_START_DOX - * __Note:__ To obtain the display, use @ref DOX_IADLXDisplay3DLUTChangedEvent_GetDisplay. - *@ENG_END_DOX - * - *@copydoc IADLXDisplay3DLUTChangedEvent_REQ_TABLE - * - */ - virtual adlx_bool ADLX_STD_CALL IsCustom3DLUTChanged() = 0; - }; //IADLXDisplay3DLUTChangedEvent - //---------------------------------------------------------------------------------------------- - typedef IADLXInterfacePtr_T IADLXDisplay3DLUTChangedEventPtr; -} //namespace adlx -#else //__cplusplus -ADLX_DECLARE_IID (IADLXDisplay3DLUTChangedEvent, L"IADLXDisplay3DLUTChangedEvent") -typedef struct IADLXDisplay3DLUTChangedEvent IADLXDisplay3DLUTChangedEvent; - -typedef struct IADLXDisplay3DLUTChangedEventVtbl -{ - //IADLXInterface - adlx_long (ADLX_STD_CALL* Acquire)( IADLXDisplay3DLUTChangedEvent* pThis ); - adlx_long (ADLX_STD_CALL* Release)( IADLXDisplay3DLUTChangedEvent* pThis ); - ADLX_RESULT (ADLX_STD_CALL* QueryInterface)( IADLXDisplay3DLUTChangedEvent* pThis, const wchar_t* interfaceId, void** ppInterface ); - - //IADLXChangedEvent - ADLX_SYNC_ORIGIN(ADLX_STD_CALL* GetOrigin)(IADLXDisplay3DLUTChangedEvent* pThis); - - // IADLXDisplay3DLUTChangedEvent interface - ADLX_RESULT (ADLX_STD_CALL* GetDisplay)( IADLXDisplay3DLUTChangedEvent* pThis, IADLXDisplay** ppDisplay ); - adlx_bool (ADLX_STD_CALL* IsSCEChanged)( IADLXDisplay3DLUTChangedEvent* pThis ); - adlx_bool (ADLX_STD_CALL* IsCustom3DLUTChanged)( IADLXDisplay3DLUTChangedEvent* pThis ); -} IADLXDisplay3DLUTChangedEventVtbl; - -struct IADLXDisplay3DLUTChangedEvent { const IADLXDisplay3DLUTChangedEventVtbl* pVtbl; }; -#endif //__cplusplus -#pragma endregion IADLXDisplay3DLUTChangedEvent - -//Display 3D LUT changed listener interface. To be implemented in application and passed in IADLXDisplayChangedHandling::AddDisplay3DLUTEventListener() -#pragma region IADLXDisplay3DLUTChangedListener -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLXDisplay3DLUTChangedListener - { - public: - /** - *@page DOX_IADLXDisplay3DLUTChangedListener_OnDisplay3DLUTChanged OnDisplay3DLUTChanged - *@ENG_START_DOX @brief The __OnDisplay3DLUTChanged__ method is called by ADLX when the display 3D LUT changes. @ENG_END_DOX - * - *@syntax - *@codeStart - * adlx_bool OnDisplay3DLUTChanged (@ref DOX_IADLXDisplay3DLUTChangedEvent* pDisplay3DLUTChangedEvent) - *@codeEnd - * - *@params - *@paramrow{1.,[in] ,pDisplay3DLUTChangedEvent,@ref DOX_IADLXDisplay3DLUTChangedEvent* ,@ENG_START_DOX The pointer to the event. @ENG_END_DOX} - * - * - *@retvalues - *@ENG_START_DOX - * If the application requires ADLX to continue notifying the next listener, __true__ must be returned.
- * If the application requires ADLX to stop notifying the next listener, __false__ must be returned.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX - * Once the application registers to the notifications with @ref DOX_IADLXDisplayChangedHandling_AddDisplay3DLUTEventListener, ADLX will call this method until the application unregisters from the notifications with @ref DOX_IADLXDisplayChangedHandling_RemoveDisplay3DLUTEventListener.
- * The method should return quickly to not block the execution path in ADLX. If the method requires a long processing of the event notification, the application must hold onto a reference to the 3D LUT change event with @ref DOX_IADLXInterface_Acquire and make it available on an asynchronous thread and return immediately. When the asynchronous thread is done processing it must discard the 3D LUT change event with @ref DOX_IADLXInterface_Release.
@ENG_END_DOX - * - * - *@copydoc IADLXDisplay3DLUTChangedListener_REQ_TABLE - * - */ - virtual adlx_bool ADLX_STD_CALL OnDisplay3DLUTChanged (IADLXDisplay3DLUTChangedEvent* pDisplay3DLUTChangedEvent) = 0; - }; //IADLXDisplay3DLUTChangedListener -} //namespace adlx -#else //__cplusplus -typedef struct IADLXDisplay3DLUTChangedListener IADLXDisplay3DLUTChangedListener; - -typedef struct IADLXDisplay3DLUTChangedListenerVtbl -{ - // IADLXDisplayGammaChangedListener interface - adlx_bool (ADLX_STD_CALL* OnDisplay3DLUTChanged)( IADLXDisplay3DLUTChangedListener* pThis, IADLXDisplay3DLUTChangedEvent* pDisplay3DLUTChangedEvent ); - -} IADLXDisplay3DLUTChangedListenerVtbl; - -struct IADLXDisplay3DLUTChangedListener { const IADLXDisplay3DLUTChangedListenerVtbl* pVtbl; }; -#endif //__cplusplus -#pragma endregion IADLXDisplay3DLUTChangedListener - -#pragma region IADLXDisplaySettingsChangedEvent -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLXDisplay; - - class ADLX_NO_VTABLE IADLXDisplaySettingsChangedEvent : public IADLXChangedEvent - { - public: - ADLX_DECLARE_IID (L"IADLXDisplaySettingsChangedEvent") - - /** - *@page DOX_IADLXDisplaySettingsChangedEvent_GetDisplay GetDisplay - *@ENG_START_DOX @brief Gets the reference counted display interface on which settings are changed. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetDisplay (@ref DOX_IADLXDisplay **ppDisplay) - *@codeEnd - * - *@params - *@paramrow{1.,[out] ,ppDisplay,@ref DOX_IADLXDisplay**, @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 __*ppDisplay__ to __nullptr__. @ENG_END_DOX} - * - * - *@retvalues - *@ENG_START_DOX - * If the display interface is successfully returned, __ADLX_OK__ is returned.
- * If the display interface is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX - * - *@addinfo - *@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.
- * __Note:__ @ref DOX_IADLXDisplaySettingsChangedEvent_GetDisplay returns the reference counted display used by all the methods in this interface to check if there are any changes. - * @ENG_END_DOX - * - * - *@copydoc IADLXDisplaySettingsChangedEvent_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetDisplay (IADLXDisplay** ppDisplay) = 0; - - /** - *@page DOX_IADLXDisplaySettingsChangedEvent_IsFreeSyncChanged IsFreeSyncChanged - *@ENG_START_DOX @brief Checks if the AMD FreeSyncâ„¢ settings of the display are changed. @ENG_END_DOX - * - *@syntax - *@codeStart - * adlx_bool IsFreeSyncChanged () - *@codeEnd - * - *@params - *N/A - * - *@retvalues - *@ENG_START_DOX - * If the AMD FreeSync settings are changed, __true__ is returned.
- * If the AMD FreeSync settings are not changed, __false__ is returned. @ENG_END_DOX - * - *@addinfo - *@ENG_START_DOX - * __Note:__ To obtain the display, use @ref DOX_IADLXDisplaySettingsChangedEvent_GetDisplay. - * @ENG_END_DOX - * - *@copydoc IADLXDisplaySettingsChangedEvent_REQ_TABLE - * - */ - virtual adlx_bool ADLX_STD_CALL IsFreeSyncChanged () = 0; - - /** - *@page DOX_IADLXDisplaySettingsChangedEvent_IsVSRChanged IsVSRChanged - *@ENG_START_DOX @brief Checks if the AMD Virtual Super Resolution settings of the display are changed. @ENG_END_DOX - * - *@syntax - *@codeStart - * adlx_bool IsVSRChanged () - *@codeEnd - * - *@params - *N/A - * - *@retvalues - *@ENG_START_DOX - * If the Virtual Super Resolution settings are changed, __true__ is returned.
- * If the Virtual Super Resolution settings are not changed, __false__ is returned. @ENG_END_DOX - * - *@addinfo - *@ENG_START_DOX - * __Note:__ To obtain the display, use @ref DOX_IADLXDisplaySettingsChangedEvent_GetDisplay. - * @ENG_END_DOX - * - *@copydoc IADLXDisplaySettingsChangedEvent_REQ_TABLE - * - */ - virtual adlx_bool ADLX_STD_CALL IsVSRChanged () = 0; - - /** - *@page DOX_IADLXDisplaySettingsChangedEvent_IsGPUScalingChanged IsGPUScalingChanged - *@ENG_START_DOX @brief Checks if the GPU scaling settings of the display are changed. @ENG_END_DOX - * - *@syntax - *@codeStart - * adlx_bool IsGPUScalingChanged () - *@codeEnd - * - *@params - *N/A - * - *@retvalues - *@ENG_START_DOX - * If the GPU scaling settings are changed, __true__ is returned.
- * If the GPU scaling settings are not changed, __false__ is returned. @ENG_END_DOX - * - * - *@addinfo - *@ENG_START_DOX - * __Note:__ To obtain the display, use @ref DOX_IADLXDisplaySettingsChangedEvent_GetDisplay. - * @ENG_END_DOX - * - * - *@copydoc IADLXDisplaySettingsChangedEvent_REQ_TABLE - * - */ - virtual adlx_bool ADLX_STD_CALL IsGPUScalingChanged () = 0; - - /** - *@page DOX_IADLXDisplaySettingsChangedEvent_IsScalingModeChanged IsScalingModeChanged - *@ENG_START_DOX @brief Checks if the scaling mode settings of the display are changed. @ENG_END_DOX - * - *@syntax - *@codeStart - * adlx_bool IsScalingModeChanged () - *@codeEnd - * - *@params - *N/A - * - *@retvalues - *@ENG_START_DOX - * If the scaling mode settings are changed, __true__ is returned.
- * If the scaling mode settings are not changed, __false__ is returned. @ENG_END_DOX - * - *@addinfo - *@ENG_START_DOX - * __Note:__ To obtain the display, use @ref DOX_IADLXDisplaySettingsChangedEvent_GetDisplay. - * @ENG_END_DOX - * - *@copydoc IADLXDisplaySettingsChangedEvent_REQ_TABLE - * - */ - virtual adlx_bool ADLX_STD_CALL IsScalingModeChanged () = 0; - - /** - *@page DOX_IADLXDisplaySettingsChangedEvent_IsIntegerScalingChanged IsIntegerScalingChanged - *@ENG_START_DOX @brief Checks if the Integer Display Scaling settings of the display are changed. @ENG_END_DOX - * - *@syntax - *@codeStart - * adlx_bool IsIntegerScalingChanged () - *@codeEnd - * - *@params - *N/A - * - *@retvalues - *@ENG_START_DOX - * If the Integer Display Scaling settings are changed, __true__ is returned.
- * If the Integer Display Scaling settings are not changed, __false__ is returned. @ENG_END_DOX - * - * - *@addinfo - *@ENG_START_DOX - * __Note:__ To obtain the display, use @ref DOX_IADLXDisplaySettingsChangedEvent_GetDisplay. - *@ENG_END_DOX - * - *@copydoc IADLXDisplaySettingsChangedEvent_REQ_TABLE - * - */ - virtual adlx_bool ADLX_STD_CALL IsIntegerScalingChanged () = 0; - - /** - *@page DOX_IADLXDisplaySettingsChangedEvent_IsColorDepthChanged IsColorDepthChanged - *@ENG_START_DOX @brief Checks if the color format settings of the display are changed. @ENG_END_DOX - * - *@syntax - *@codeStart - * adlx_bool IsColorDepthChanged () - *@codeEnd - * - *@params - *N/A - * - *@retvalues - *@ENG_START_DOX - * If the color format settings are changed, __true__ is returned.
- * If the color format settings are not changed, __false__ is returned. @ENG_END_DOX - * - * - *@addinfo - *@ENG_START_DOX - * __Note:__ To obtain the display, use @ref DOX_IADLXDisplaySettingsChangedEvent_GetDisplay. - *@ENG_END_DOX - * - *@copydoc IADLXDisplaySettingsChangedEvent_REQ_TABLE - * - */ - virtual adlx_bool ADLX_STD_CALL IsColorDepthChanged () = 0; - - /** - *@page DOX_IADLXDisplaySettingsChangedEvent_IsPixelFormatChanged IsPixelFormatChanged - *@ENG_START_DOX @brief Checks if the pixel format settings of the display are changed. @ENG_END_DOX - * - *@syntax - *@codeStart - * adlx_bool IsPixelFormatChanged () - *@codeEnd - * - *@params - *N/A - * - *@retvalues - *@ENG_START_DOX - * If the pixel format settings are changed, __true__ is returned.
- * If the pixel format settings are not changed, __false__ is returned. @ENG_END_DOX - * - * - *@addinfo - *@ENG_START_DOX - * __Note:__ To obtain the display, use @ref DOX_IADLXDisplaySettingsChangedEvent_GetDisplay. - *@ENG_END_DOX - * - *@copydoc IADLXDisplaySettingsChangedEvent_REQ_TABLE - * - */ - virtual adlx_bool ADLX_STD_CALL IsPixelFormatChanged () = 0; - - /** - *@page DOX_IADLXDisplaySettingsChangedEvent_IsHDCPChanged IsHDCPChanged - *@ENG_START_DOX @brief Checks if the HDCP settings of the display are changed. @ENG_END_DOX - * - *@syntax - *@codeStart - * adlx_bool IsHDCPChanged () - *@codeEnd - * - *@params - *N/A - * - *@retvalues - *@ENG_START_DOX - * If the HDCP settings are changed, __true__ is returned.
- * If the HDCP settings are not changed, __false__ is returned. @ENG_END_DOX - * - *@addinfo - *@ENG_START_DOX - * __Note:__ To obtain the display, use @ref DOX_IADLXDisplaySettingsChangedEvent_GetDisplay. - *@ENG_END_DOX - * - *@copydoc IADLXDisplaySettingsChangedEvent_REQ_TABLE - * - */ - virtual adlx_bool ADLX_STD_CALL IsHDCPChanged () = 0; - - /** - *@page DOX_IADLXDisplaySettingsChangedEvent_IsCustomColorHueChanged IsCustomColorHueChanged - *@ENG_START_DOX @brief Checks if the hue settings of the display are changed. @ENG_END_DOX - * - *@syntax - *@codeStart - * adlx_bool IsCustomColorHueChanged () - *@codeEnd - * - *@params - *N/A - * - *@retvalues - *@ENG_START_DOX - * If the hue settings are changed, __true__ is returned.
- * If the hue settings are not changed, __false__ is returned. @ENG_END_DOX - * - * - *@addinfo - *@ENG_START_DOX - * __Note:__ To obtain the display, use @ref DOX_IADLXDisplaySettingsChangedEvent_GetDisplay. - *@ENG_END_DOX - * - *@copydoc IADLXDisplaySettingsChangedEvent_REQ_TABLE - * - */ - virtual adlx_bool ADLX_STD_CALL IsCustomColorHueChanged () = 0; - - /** - *@page DOX_IADLXDisplaySettingsChangedEvent_IsCustomColorSaturationChanged IsCustomColorSaturationChanged - *@ENG_START_DOX @brief Checks if the saturation settings of the display are changed. @ENG_END_DOX - * - *@syntax - *@codeStart - * adlx_bool IsCustomColorSaturationChanged () - *@codeEnd - * - *@params - *N/A - * - *@retvalues - *@ENG_START_DOX - * If the saturation settings are changed, __true__ is returned.
- * If the saturation settings are not changed, __false__ is returned. @ENG_END_DOX - * - * - *@addinfo - *@ENG_START_DOX - * __Note:__ To obtain the display, use @ref DOX_IADLXDisplaySettingsChangedEvent_GetDisplay. - *@ENG_END_DOX - * - *@copydoc IADLXDisplaySettingsChangedEvent_REQ_TABLE - * - */ - virtual adlx_bool ADLX_STD_CALL IsCustomColorSaturationChanged () = 0; - - /** - *@page DOX_IADLXDisplaySettingsChangedEvent_IsCustomColorBrightnessChanged IsCustomColorBrightnessChanged - *@ENG_START_DOX @brief Checks if the brightness settings of the display are changed. @ENG_END_DOX - * - *@syntax - *@codeStart - * adlx_bool IsCustomColorBrightnessChanged () - *@codeEnd - * - *@params - *N/A - * - *@retvalues - *@ENG_START_DOX - * If the brightness settings are changed, __true__ is returned.
- * If the brightness settings are not changed, __false__ is returned. @ENG_END_DOX - * - *@addinfo - *@ENG_START_DOX - * __Note:__ To obtain the display, use @ref DOX_IADLXDisplaySettingsChangedEvent_GetDisplay. - *@ENG_END_DOX - * - *@copydoc IADLXDisplaySettingsChangedEvent_REQ_TABLE - * - */ - virtual adlx_bool ADLX_STD_CALL IsCustomColorBrightnessChanged () = 0; - - /** - *@page DOX_IADLXDisplaySettingsChangedEvent_IsCustomColorTemperatureChanged IsCustomColorTemperatureChanged - *@ENG_START_DOX @brief Checks if the color temperature settings of the display are changed. @ENG_END_DOX - * - *@syntax - *@codeStart - * adlx_bool IsCustomColorTemperatureChanged () - *@codeEnd - * - *@params - *N/A - * - *@retvalues - *@ENG_START_DOX - * If the color temperature settings are changed, __true__ is returned.
- * If the color temperature settings are not changed, __false__ is returned. @ENG_END_DOX - * - * - *@addinfo - *@ENG_START_DOX - * __Note:__ To obtain the display, use @ref DOX_IADLXDisplaySettingsChangedEvent_GetDisplay. - *@ENG_END_DOX - * - *@copydoc IADLXDisplaySettingsChangedEvent_REQ_TABLE - * - */ - virtual adlx_bool ADLX_STD_CALL IsCustomColorTemperatureChanged () = 0; - - /** - *@page DOX_IADLXDisplaySettingsChangedEvent_IsCustomColorContrastChanged IsCustomColorContrastChanged - *@ENG_START_DOX @brief Checks if the color contrast settings of the display are changed. @ENG_END_DOX - * - *@syntax - *@codeStart - * adlx_bool IsCustomColorContrastChanged () - *@codeEnd - * - *@params - *N/A - * - *@retvalues - *@ENG_START_DOX - * If the color contrast settings are changed, __true__ is returned.
- * If the color contrast settings are not changed, __false__ is returned. @ENG_END_DOX - * - * - *@addinfo - *@ENG_START_DOX - * __Note:__ To obtain the display, use @ref DOX_IADLXDisplaySettingsChangedEvent_GetDisplay. - *@ENG_END_DOX - * - *@copydoc IADLXDisplaySettingsChangedEvent_REQ_TABLE - * - */ - virtual adlx_bool ADLX_STD_CALL IsCustomColorContrastChanged () = 0; - - /** - *@page DOX_IADLXDisplaySettingsChangedEvent_IsCustomResolutionChanged IsCustomResolutionChanged - *@ENG_START_DOX @brief Checks if the resolution settings of the display are changed. @ENG_END_DOX - * - *@syntax - *@codeStart - * adlx_bool IsCustomResolutionChanged () - *@codeEnd - * - *@params - *N/A - * - *@retvalues - *@ENG_START_DOX - * If the custom resolution settings are changed, __true__ is returned.
- * If the custom resolution settings are not changed, __false__ is returned. @ENG_END_DOX - * - * - *@addinfo - *@ENG_START_DOX - * __Note:__ To obtain the display, use @ref DOX_IADLXDisplaySettingsChangedEvent_GetDisplay. - *@ENG_END_DOX - * - *@copydoc IADLXDisplaySettingsChangedEvent_REQ_TABLE - * - */ - virtual adlx_bool ADLX_STD_CALL IsCustomResolutionChanged () = 0; - /** - *@page DOX_IADLXDisplaySettingsChangedEvent_IsVariBrightChanged IsVariBrightChanged - *@ENG_START_DOX @brief Checks if the Vari-Bright settings of the display are changed. @ENG_END_DOX - * - *@syntax - *@codeStart - * adlx_bool IsVariBrightChanged () - *@codeEnd - * - *@params - *N/A - * - *@retvalues - *@ENG_START_DOX - * If the Vari-Bright settings are changed, __true__ is returned.
- * If the Vari-Bright settings are not changed, __false__ is returned. @ENG_END_DOX - * - * - *@addinfo - *@ENG_START_DOX - * __Note:__ To obtain the display, use @ref DOX_IADLXDisplaySettingsChangedEvent_GetDisplay. - *@ENG_END_DOX - * - *@copydoc IADLXDisplaySettingsChangedEvent_REQ_TABLE - * - */ - virtual adlx_bool ADLX_STD_CALL IsVariBrightChanged () = 0; - }; //IADLXDisplaySettingsChangedEvent - //---------------------------------------------------------------------------------------------- - typedef IADLXInterfacePtr_T IADLXDisplaySettingsChangedEventPtr; -} //namespace adlx -#else //__cplusplus -ADLX_DECLARE_IID (IADLXDisplaySettingsChangedEvent, L"IADLXDisplaySettingsChangedEvent") -typedef struct IADLXDisplaySettingsChangedEvent IADLXDisplaySettingsChangedEvent; - -typedef struct IADLXDisplaySettingsChangedEventVtbl -{ - //IADLXInterface - adlx_long (ADLX_STD_CALL* Acquire)(IADLXDisplaySettingsChangedEvent* pThis); - adlx_long (ADLX_STD_CALL* Release)(IADLXDisplaySettingsChangedEvent* pThis); - ADLX_RESULT (ADLX_STD_CALL* QueryInterface)(IADLXDisplaySettingsChangedEvent* pThis, const wchar_t* interfaceId, void** ppInterface); - - //IADLXChangedEvent - ADLX_SYNC_ORIGIN(ADLX_STD_CALL* GetOrigin)(IADLXDisplaySettingsChangedEvent* pThis); - - // IADLXDisplaySettingsChangedEvent interface - ADLX_RESULT (ADLX_STD_CALL* GetDisplay)(IADLXDisplaySettingsChangedEvent* pThis, IADLXDisplay** ppDisplay); - adlx_bool (ADLX_STD_CALL* IsFreeSyncChanged)(IADLXDisplaySettingsChangedEvent* pThis); - adlx_bool (ADLX_STD_CALL* IsVSRChanged)(IADLXDisplaySettingsChangedEvent* pThis); - adlx_bool (ADLX_STD_CALL* IsGPUScalingChanged)(IADLXDisplaySettingsChangedEvent* pThis); - adlx_bool (ADLX_STD_CALL* IsScalingModeChanged)(IADLXDisplaySettingsChangedEvent* pThis); - adlx_bool (ADLX_STD_CALL* IsIntegerScalingChanged)(IADLXDisplaySettingsChangedEvent* pThis); - adlx_bool (ADLX_STD_CALL* IsColorDepthChanged)(IADLXDisplaySettingsChangedEvent* pThis); - adlx_bool (ADLX_STD_CALL* IsPixelFormatChanged)(IADLXDisplaySettingsChangedEvent* pThis); - adlx_bool (ADLX_STD_CALL* IsHDCPChanged)(IADLXDisplaySettingsChangedEvent* pThis); - adlx_bool (ADLX_STD_CALL* IsCustomColorHueChanged)(IADLXDisplaySettingsChangedEvent* pThis); - adlx_bool (ADLX_STD_CALL* IsCustomColorSaturationChanged)(IADLXDisplaySettingsChangedEvent* pThis); - adlx_bool (ADLX_STD_CALL* IsCustomColorBrightnessChanged)(IADLXDisplaySettingsChangedEvent* pThis); - adlx_bool (ADLX_STD_CALL* IsCustomColorTemperatureChanged)(IADLXDisplaySettingsChangedEvent* pThis); - adlx_bool (ADLX_STD_CALL* IsCustomColorContrastChanged)(IADLXDisplaySettingsChangedEvent* pThis); - adlx_bool (ADLX_STD_CALL* IsCustomResolutionChanged)(IADLXDisplaySettingsChangedEvent* pThis); - adlx_bool (ADLX_STD_CALL* IsVariBrightChanged)(IADLXDisplaySettingsChangedEvent* pThis); - -} IADLXDisplaySettingsChangedEventVtbl; - -struct IADLXDisplaySettingsChangedEvent { const IADLXDisplaySettingsChangedEventVtbl* pVtbl; }; -#endif //__cplusplus -#pragma endregion IADLXDisplaySettingsChangedEvent - -#pragma region IADLXDisplaySettingsChangedListener -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLXDisplaySettingsChangedListener - { - public: - /** - *@page DOX_IADLXDisplaySettingsChangedListener_OnDisplaySettingsChanged OnDisplaySettingsChanged - *@ENG_START_DOX @brief The __OnDisplaySettingsChanged__ method is called by ADLX when the display settings change. @ENG_END_DOX - * - *@syntax - *@codeStart - * adlx_bool OnDisplaySettingsChanged (@ref DOX_IADLXDisplaySettingsChangedEvent* pDisplaySettingChangedEvent) - *@codeEnd - * - *@params - *@paramrow{1.,[in],pDisplaySettingChangedEvent,@ref DOX_IADLXDisplaySettingsChangedEvent* ,@ENG_START_DOX The pointer to the display settings change event. @ENG_END_DOX} - * - * - *@retvalues - *@ENG_START_DOX - * If the application requires ADLX to continue notifying the next listener, __true__ must be returned.
- * If the application requires ADLX to stop notifying the next listener, __false__ must be returned.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX - * Once the application registers to the notifications with @ref DOX_IADLXDisplayChangedHandling_AddDisplaySettingsEventListener, ADLX will call this method until the application unregisters from the notifications with @ref DOX_IADLXDisplayChangedHandling_RemoveDisplaySettingsEventListener. - * The method should return quickly to not block the execution path in ADLX. If the method requires a long processing of the event notification, the application must hold onto a reference to the display settings change event with @ref DOX_IADLXInterface_Acquire and make it available on an asynchronous thread and return immediately. When the asynchronous thread is done processing it must discard the display settings change event with @ref DOX_IADLXInterface_Release. @ENG_END_DOX - * - * - *@copydoc IADLXDisplaySettingsChangedListener_REQ_TABLE - * - */ - virtual adlx_bool ADLX_STD_CALL OnDisplaySettingsChanged (IADLXDisplaySettingsChangedEvent* pDisplaySettingChangedEvent) = 0; - }; //IADLXDisplaySettingsChangedListener -} //namespace adlx -#else //__cplusplus -typedef struct IADLXDisplaySettingsChangedListener IADLXDisplaySettingsChangedListener; - -typedef struct IADLXDisplaySettingsChangedListenerVtbl -{ - // IADLXDisplaySettingsChangedListener interface - adlx_bool (ADLX_STD_CALL* OnDisplaySettingsChanged)(IADLXDisplaySettingsChangedListener* pThis, IADLXDisplaySettingsChangedEvent* pDisplaySettingChangedEvent); - -} IADLXDisplaySettingsChangedListenerVtbl; - -struct IADLXDisplaySettingsChangedListener { const IADLXDisplaySettingsChangedListenerVtbl* pVtbl; }; -#endif //__cplusplus -#pragma endregion IADLXDisplaySettingsChangedListener - - -//Interface that allows registration to display-related events: Display List changed, Display Gamut changed, Display Gamma changed and Display 3D LUT changed -#pragma region IADLXDisplayChangedHandling -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLXDisplayChangedHandling : public IADLXInterface - { - public: - ADLX_DECLARE_IID (L"IADLXDisplayChangedHandling") - - /** - *@page DOX_IADLXDisplayChangedHandling_AddDisplayListEventListener AddDisplayListEventListener - *@ENG_START_DOX @brief Registers an event listener for notifications when the display list changes. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT AddDisplayListEventListener (@ref DOX_IADLXDisplayListChangedListener* pDisplayListChangedListener); - *@codeEnd - * - *@params - *@paramrow{1.,[in] ,pDisplayListChangedListener,@ref DOX_IADLXDisplayListChangedListener* ,@ENG_START_DOX The pointer to the event listener interface to register for receiving the display list change notifications. @ENG_END_DOX} - * - * - *@retvalues - *@ENG_START_DOX - * If the event listener is successfully registered, __ADLX_OK__ is returned.
- * If the event listener is not successfully registered, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX - * After the event listener is successfully registered, ADLX will call @ref DOX_IADLXDisplayListChangedListener_OnDisplayListChanged method of the listener when the display list changes. - * The event listener instance must exist until the application unregisters the event listener with @ref DOX_IADLXDisplayChangedHandling_RemoveDisplayListEventListener. @ENG_END_DOX - * - * - *@copydoc IADLXDisplayChangedHandling_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL AddDisplayListEventListener (IADLXDisplayListChangedListener* pDisplayListChangedListener) = 0; - - /** - *@page DOX_IADLXDisplayChangedHandling_RemoveDisplayListEventListener RemoveDisplayListEventListener - *@ENG_START_DOX @brief Unregisters an event listener from notifications when the display list changes. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT RemoveDisplayListEventListener (@ref DOX_IADLXDisplayListChangedListener* pDisplayListChangedListener) - *@codeEnd - * - *@params - *@paramrow{1.,[in] ,pDisplayListChangedListener,@ref DOX_IADLXDisplayListChangedListener* ,@ENG_START_DOX The pointer to the event listener interface to unregister from receiving the display list change notifications. @ENG_END_DOX} - * - * - *@retvalues - *@ENG_START_DOX - * If the event listener is successfully unregistered, __ADLX_OK__ is returned.
- * If the event listener is not successfully unregistered, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX - * After the event listener is successfully unregistered, ADLX will no longer call @ref DOX_IADLXDisplayListChangedListener_OnDisplayListChanged method of the listener when the display list changes. The application can discard the event listener instance. @ENG_END_DOX - * - * - *@copydoc IADLXDisplayChangedHandling_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL RemoveDisplayListEventListener (IADLXDisplayListChangedListener* pDisplayListChangedListener) = 0; - - /** - *@page DOX_IADLXDisplayChangedHandling_AddDisplayGamutEventListener AddDisplayGamutEventListener - *@ENG_START_DOX @brief Registers an event listener for notifications when the display gamut changes. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT AddDisplayGamutEventListener (@ref DOX_IADLXDisplayGamutChangedListener* pDisplayGamutChangedListener) - *@codeEnd - * - *@params - *@paramrow{1.,[in] ,pDisplayGamutChangedListener,@ref DOX_IADLXDisplayGamutChangedListener* ,@ENG_START_DOX The pointer to the event listener interface to register for receiving the display gamut change notifications. @ENG_END_DOX} - * - * - *@retvalues - *@ENG_START_DOX - * If the event listener is successfully registered, __ADLX_OK__ is returned.
- * If the event listener is not successfully registered, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX - * After the event listener is successfully registered, ADLX will call @ref DOX_IADLXDisplayGamutChangedListener_OnDisplayGamutChanged method of the listener when the display gamut changes. - * The event listener instance must exist until the application unregisters the event listener with @ref DOX_IADLXDisplayChangedHandling_RemoveDisplayGamutEventListener. @ENG_END_DOX - * - * - *@copydoc IADLXDisplayChangedHandling_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL AddDisplayGamutEventListener (IADLXDisplayGamutChangedListener* pDisplayGamutChangedListener) = 0; - - /** - *@page DOX_IADLXDisplayChangedHandling_RemoveDisplayGamutEventListener RemoveDisplayGamutEventListener - *@ENG_START_DOX @brief Unregisters an event listener from notifications when the display gamut changes. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT RemoveDisplayGamutEventListener (@ref DOX_IADLXDisplayGamutChangedListener* pDisplayGamutChangedListener) - *@codeEnd - * - *@params - *@paramrow{1.,[in] ,pDisplayGamutChangedListener,@ref DOX_IADLXDisplayGamutChangedListener* ,@ENG_START_DOX The pointer to the event listener interface to unregister from receiving the display gamut change notifications. @ENG_END_DOX} - * - * - *@retvalues - *@ENG_START_DOX - * If the event listener is successfully unregistered, __ADLX_OK__ is returned.
- * If the event listener is not successfully unregistered, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX - * After the event listener is successfully unregistered, ADLX will no longer call @ref DOX_IADLXDisplayGamutChangedListener_OnDisplayGamutChanged method of the listener when the display gamut changes. The application can discard the event listener instance. @ENG_END_DOX - * - * - *@copydoc IADLXDisplayChangedHandling_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL RemoveDisplayGamutEventListener (IADLXDisplayGamutChangedListener* pDisplayGamutChangedListener) = 0; - - /** - *@page DOX_IADLXDisplayChangedHandling_AddDisplayGammaEventListener AddDisplayGammaEventListener - *@ENG_START_DOX @brief Registers an event listener for notifications when the display gamma changes. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT AddDisplayGammaEventListener (@ref DOX_IADLXDisplayGammaChangedListener* pDisplayGammaChangedListener) - *@codeEnd - * - *@params - *@paramrow{1.,[in] ,pDisplayGammaChangedListener,@ref DOX_IADLXDisplayGammaChangedListener* ,@ENG_START_DOX The pointer to the event listener interface to register for receiving the display gamma change notifications. @ENG_END_DOX} - * - * - *@retvalues - *@ENG_START_DOX - * If the event listener is successfully registered, __ADLX_OK__ is returned.
- * If the event listener is not successfully registered, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX - * After the event listener is successfully registered, ADLX will call @ref DOX_IADLXDisplayGammaChangedListener_OnDisplayGammaChanged method of the listener when the display gamma changes. - * The event listener instance must exist until the application unregisters the event listener with @ref DOX_IADLXDisplayChangedHandling_RemoveDisplayGammaEventListener. @ENG_END_DOX - * - * - *@copydoc IADLXDisplayChangedHandling_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL AddDisplayGammaEventListener (IADLXDisplayGammaChangedListener* pDisplayGammaChangedListener) = 0; - - /** - *@page DOX_IADLXDisplayChangedHandling_RemoveDisplayGammaEventListener RemoveDisplayGammaEventListener - *@ENG_START_DOX @brief Unregisters an event listener from notifications when the display gamma changes. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT RemoveDisplayGammaEventListener (@ref DOX_IADLXDisplayGammaChangedListener* pDisplayGammaChangedListener) - *@codeEnd - * - *@params - *@paramrow{1.,[in] ,pDisplayGammaChangedListener,@ref DOX_IADLXDisplayGammaChangedListener* ,@ENG_START_DOX The pointer to the event listener interface to unregister from receiving the display gamma change notifications. @ENG_END_DOX} - * - * - *@retvalues - *@ENG_START_DOX - * If the event listener is successfully unregistered, __ADLX_OK__ is returned.
- * If the event listener is not successfully unregistered, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX - * After the event listener is successfully unregistered, ADLX will no longer call @ref DOX_IADLXDisplayGammaChangedListener_OnDisplayGammaChanged method of the listener when the display gamma changes. The application can discard the event listener instance. @ENG_END_DOX - * - * - *@copydoc IADLXDisplayChangedHandling_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL RemoveDisplayGammaEventListener (IADLXDisplayGammaChangedListener* pDisplayGammaChangedListener) = 0; - - /** - *@page DOX_IADLXDisplayChangedHandling_AddDisplay3DLUTEventListener AddDisplay3DLUTEventListener - *@ENG_START_DOX @brief Registers an event listener for notifications when the display 3D LUT changes. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT AddDisplay3DLUTEventListener (@ref DOX_IADLXDisplay3DLUTChangedListener* pDisplay3DLUTChangedListener) - *@codeEnd - * - *@params - *@paramrow{1.,[in] ,pDisplay3DLUTChangedListener,@ref DOX_IADLXDisplay3DLUTChangedListener* ,@ENG_START_DOX The pointer to the event listener interface to register for receiving the display 3D LUT change notifications. @ENG_END_DOX} - * - * - *@retvalues - *@ENG_START_DOX - * If the event listener is successfully registered, __ADLX_OK__ is returned.
- * If the event listener is not successfully registered, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX - * After the event listener is successfully registered, ADLX will call @ref DOX_IADLXDisplay3DLUTChangedListener_OnDisplay3DLUTChanged method of the listener when the display 3D LUT changes. - * The event listener instance must exist until the application unregisters the event listener with @ref DOX_IADLXDisplayChangedHandling_RemoveDisplay3DLUTEventListener. @ENG_END_DOX - * - * - *@copydoc IADLXDisplayChangedHandling_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL AddDisplay3DLUTEventListener (IADLXDisplay3DLUTChangedListener* pDisplay3DLUTChangedListener) = 0; - - /** - *@page DOX_IADLXDisplayChangedHandling_RemoveDisplay3DLUTEventListener RemoveDisplay3DLUTEventListener - *@ENG_START_DOX @brief Unregisters an event listener from notifications when the display 3D LUT changes. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT RemoveDisplay3DLUTEventListener (@ref DOX_IADLXDisplay3DLUTChangedListener* pDisplay3DLUTChangedListener) - *@codeEnd - * - *@params - *@paramrow{1.,[in] ,pDisplay3DLUTChangedListener,@ref DOX_IADLXDisplay3DLUTChangedListener* ,@ENG_START_DOX The pointer to the event listener interface to unregister from receiving the display 3D LUT change notifications. @ENG_END_DOX} - * - * - *@retvalues - *@ENG_START_DOX - * If the event listener is successfully unregistered, __ADLX_OK__ is returned.
- * If the event listener is not successfully unregistered, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX - * After the event listener is successfully unregistered, ADLX will no longer call @ref DOX_IADLXDisplay3DLUTChangedListener_OnDisplay3DLUTChanged method of the listener when the display 3D LUT changes. The application can discard the event listener instance. @ENG_END_DOX - * - * - *@copydoc IADLXDisplayChangedHandling_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL RemoveDisplay3DLUTEventListener (IADLXDisplay3DLUTChangedListener* pDisplay3DLUTChangedListener) = 0; - /** - *@page DOX_IADLXDisplayChangedHandling_AddDisplaySettingsEventListener AddDisplaySettingsEventListener - *@ENG_START_DOX @brief Registers an event listener for notifications when the display settings change. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT AddDisplaySettingsEventListener (@ref DOX_IADLXDisplaySettingsChangedListener* pDisplaySettingsChangedListener) - *@codeEnd - * - *@params - *@paramrow{1.,[in], pDisplaySettingsChangedListener,@ref DOX_IADLXDisplaySettingsChangedListener*, @ENG_START_DOX The pointer to the event listener interface to register for receiving display settings change notifications. @ENG_END_DOX} - * - * - *@retvalues - *@ENG_START_DOX - * If the event listener is successfully registered, __ADLX_OK__ is returned.
- * If the event listener is not successfully registered, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX - * After the event listener is successfully registered, ADLX will call @ref DOX_IADLXDisplaySettingsChangedListener_OnDisplaySettingsChanged method of the listener when display settings change.
- * The event listener instance must exist until the application unregisters the event listener with @ref DOX_IADLXDisplayChangedHandling_RemoveDisplaySettingsEventListener.
@ENG_END_DOX - * - * - *@copydoc IADLXDisplayChangedHandling_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL AddDisplaySettingsEventListener (IADLXDisplaySettingsChangedListener* pDisplaySettingsChangedListener) = 0; - - /** - *@page DOX_IADLXDisplayChangedHandling_RemoveDisplaySettingsEventListener RemoveDisplaySettingsEventListener - *@ENG_START_DOX @brief Unregisters an event listener from notifications when the display settings change. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT RemoveDisplaySettingsEventListener (@ref DOX_IADLXDisplaySettingsChangedListener* pDisplaySettingsChangedListener) - *@codeEnd - * - *@params - *@paramrow{1.,[in] ,pDisplaySettingsChangedListener,@ref DOX_IADLXDisplaySettingsChangedListener* ,@ENG_START_DOX The pointer to the event listener interface to unregister from receiving display settings change notifications. @ENG_END_DOX} - * - * - *@retvalues - *@ENG_START_DOX - * If the event listener is successfully unregistered, __ADLX_OK__ is returned.
- * If the event listener is not successfully unregistered, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX - * After the event listener is successfully unregistered, ADLX will no longer call @ref DOX_IADLXDisplaySettingsChangedListener_OnDisplaySettingsChanged method of the listener when display settings change. - * The application can discard the event listener instance. @ENG_END_DOX - * - * - *@copydoc IADLXDisplayChangedHandling_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL RemoveDisplaySettingsEventListener (IADLXDisplaySettingsChangedListener* pDisplaySettingsChangedListener) = 0; - }; //IADLXDisplayChangedHandling - //---------------------------------------------------------------------------------------------- - typedef IADLXInterfacePtr_T IADLXDisplayChangedHandlingPtr; -} //namespace adlx -#else //__cplusplus -ADLX_DECLARE_IID (IADLXDisplayChangedHandling, L"IADLXDisplayChangedHandling") -typedef struct IADLXDisplayChangedHandling IADLXDisplayChangedHandling; - -typedef struct IADLXDisplayChangedHandlingVtbl -{ - //IADLXInterface - adlx_long (ADLX_STD_CALL* Acquire)( IADLXDisplayChangedHandling* pThis ); - adlx_long (ADLX_STD_CALL* Release)( IADLXDisplayChangedHandling* pThis ); - ADLX_RESULT (ADLX_STD_CALL* QueryInterface)( IADLXDisplayChangedHandling* pThis, const wchar_t* interfaceId, void** ppInterface ); - - // IADLXDisplayChangedHandling interface - ADLX_RESULT (ADLX_STD_CALL* AddDisplayListEventListener)( IADLXDisplayChangedHandling* pThis, IADLXDisplayListChangedListener* pDisplayListChangedListener ); - ADLX_RESULT (ADLX_STD_CALL* RemoveDisplayListEventListener)( IADLXDisplayChangedHandling* pThis, IADLXDisplayListChangedListener* pDisplayListChangedListener ); - - ADLX_RESULT (ADLX_STD_CALL* AddDisplayGamutEventListener)( IADLXDisplayChangedHandling* pThis, IADLXDisplayGamutChangedListener* pDisplayGamutChangedListener ); - ADLX_RESULT (ADLX_STD_CALL* RemoveDisplayGamutEventListener)( IADLXDisplayChangedHandling* pThis, IADLXDisplayGamutChangedListener* pDisplayGamutChangedListener ); - - ADLX_RESULT (ADLX_STD_CALL* AddDisplayGammaEventListener)( IADLXDisplayChangedHandling* pThis, IADLXDisplayGammaChangedListener* pDisplayGammaChangedListener ); - ADLX_RESULT (ADLX_STD_CALL* RemoveDisplayGammaEventListener)( IADLXDisplayChangedHandling* pThis, IADLXDisplayGammaChangedListener* pDisplayGammaChangedListener ); - - ADLX_RESULT (ADLX_STD_CALL* AddDisplay3DLUTEventListener)( IADLXDisplayChangedHandling* pThis, IADLXDisplay3DLUTChangedListener* pDisplay3DLUTChangedListener ); - ADLX_RESULT (ADLX_STD_CALL* RemoveDisplay3DLUTEventListener)( IADLXDisplayChangedHandling* pThis, IADLXDisplay3DLUTChangedListener* pDisplay3DLUTChangedListener ); - - ADLX_RESULT (ADLX_STD_CALL* AddDisplaySettingsEventListener)(IADLXDisplayChangedHandling* pThis, IADLXDisplaySettingsChangedListener* pDisplaySettingsChangedListener); - ADLX_RESULT (ADLX_STD_CALL* RemoveDisplaySettingsEventListener)(IADLXDisplayChangedHandling* pThis, IADLXDisplaySettingsChangedListener* pDisplaySettingsChangedListener); - -} IADLXDisplayChangedHandlingVtbl; - -struct IADLXDisplayChangedHandling { const IADLXDisplayChangedHandlingVtbl* pVtbl; }; -#endif //__cplusplus -#pragma endregion IADLXDisplayChangedHandling - -//Display Services interface -#pragma region IADLXDisplayServices -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLXDisplayServices : public IADLXInterface - { - public: - ADLX_DECLARE_IID (L"IADLXDisplayServices") - /** - * @page DOX_IADLXDisplayServices_GetNumberOfDisplays GetNumberOfDisplays - * @ENG_START_DOX - * @brief Gets the number of displays connected to the AMD GPUs. - * @ENG_END_DOX - * - * @syntax - * @codeStart - * @ref ADLX_RESULT GetNumberOfDisplays (adlx_uint* numDisplays) - * @codeEnd - * - * @params - * @paramrow{1.,[out] ,numDisplays,adlx_uint* ,@ENG_START_DOX The pointer to a variable where the number of displays is returned. @ENG_END_DOX} - * - * @retvalues - * @ENG_START_DOX - * If the number of displays is successfully returned, __ADLX_OK__ is returned.
- * If the number of displays is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and errors codes. - * @ENG_END_DOX - * - * @detaileddesc - * @ENG_START_DOX - * @details For more information about the AMD GPUs, refer to @ref @adlx_gpu_support "ADLX GPU Support". - * @ENG_END_DOX - * - * @copydoc IADLXDisplayServices_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetNumberOfDisplays (adlx_uint* numDisplays) = 0; - - /** - * @page DOX_IADLXDisplayServices_GetDisplays GetDisplays - * @ENG_START_DOX - * @brief Gets the reference counted list of displays connected to the AMD GPUs. - * @ENG_END_DOX - * - * @syntax - * @codeStart - * @ref ADLX_RESULT GetDisplays (@ref DOX_IADLXDisplayList** ppDisplay) - * @codeEnd - * - * @params - * @paramrow{1.,[out] ,ppDisplay,@ref DOX_IADLXDisplayList** ,@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 __*ppDisplay__ to __nullptr__. @ENG_END_DOX} - * - * @retvalues - * @ENG_START_DOX - * If the interface is successfully returned, __ADLX_OK__ is returned.
- * If the interface is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. - * @ENG_END_DOX - * - * @detaileddesc - * @ENG_START_DOX - * @details For more information about the AMD GPUs, refer to @ref @adlx_gpu_support "ADLX GPU Support".
- * The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. - * @ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * In C++ when using a smart pointer for the returned interface there is no need to call @ref DOX_IADLXInterface_Release because the smart pointer calls it internally. - * @ENG_END_DOX - * - * @copydoc IADLXDisplayServices_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetDisplays (IADLXDisplayList** ppDisplay) = 0; - - /** - * @page DOX_IADLXDisplayServices_Get3DLUT Get3DLUT - * @ENG_START_DOX - * @brief Gets the reference counted 3D LUT interface for a display. - * @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT Get3DLUT (@ref DOX_IADLXDisplay* pDisplay, @ref DOX_IADLXDisplay3DLUT** ppDisp3DLUT) - *@codeEnd - * - *@params - *@paramrow{1.,[in] ,pDisplay,@ref DOX_IADLXDisplay* ,@ENG_START_DOX The pointer to the display interface. @ENG_END_DOX} - *@paramrow{2.,[out] ,ppDisp3DLUT,@ref DOX_IADLXDisplay3DLUT** ,@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 __*ppDisp3DLUT__ to __nullptr__. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX - * If the interface is successfully returned, __ADLX_OK__ is returned.
- * If the interface is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX - * - *@addinfo - * @ENG_START_DOX - * In C++ when using a smart pointer for the returned interface there is no need to call @ref DOX_IADLXInterface_Release because the smart pointer calls it internally. - * @ENG_END_DOX - * - *@copydoc IADLXDisplayServices_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL Get3DLUT (IADLXDisplay* pDisplay, IADLXDisplay3DLUT** ppDisp3DLUT) = 0; - - /** - *@page DOX_IADLXDisplayServices_GetGamut GetGamut - *@ENG_START_DOX @brief Gets the reference counted gamut interface for a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetGamut (@ref DOX_IADLXDisplay* pDisplay, @ref DOX_IADLXDisplayGamut** ppDispGamut) - *@codeEnd - * - *@params - *@paramrow{1.,[in] ,pDisplay,@ref DOX_IADLXDisplay* ,@ENG_START_DOX The pointer to the display interface. @ENG_END_DOX} - *@paramrow{2.,[out] ,ppDispGamut,@ref DOX_IADLXDisplayGamut** ,@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 __*ppDispGamut__ to __nullptr__. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX - *If the interface is successfully returned, __ADLX_OK__ is returned.
- *If the interface is not returned, an error code is returned.
- *Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX - * - *@addinfo - * @ENG_START_DOX - * In C++ when using a smart pointer for the returned interface there is no need to call @ref DOX_IADLXInterface_Release because the smart pointer calls it internally. - * @ENG_END_DOX - * - *@copydoc IADLXDisplayServices_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetGamut (IADLXDisplay* pDisplay, IADLXDisplayGamut** ppDispGamut) = 0; - - /** - *@page DOX_IADLXDisplayServices_GetGamma GetGamma - *@ENG_START_DOX @brief Gets the reference counted gamma interface for a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetGamma (@ref DOX_IADLXDisplay* pDisplay, @ref DOX_IADLXDisplayGamma** ppDispGamma) - *@codeEnd - * - *@params - *@paramrow{1.,[in] ,pDisplay,@ref DOX_IADLXDisplay* ,@ENG_START_DOX The pointer to the display interface. @ENG_END_DOX} - *@paramrow{2.,[out] ,ppDispGamma,@ref DOX_IADLXDisplayGamma** ,@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 __*ppDispGamma__ to __nullptr__. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX - * If the interface is successfully returned, __ADLX_OK__ is returned.
- * If the interface is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * In C++ when using a smart pointer for the returned interface there is no need to call @ref DOX_IADLXInterface_Release because the smart pointer calls it internally. - * @ENG_END_DOX - * - *@copydoc IADLXDisplayServices_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetGamma (IADLXDisplay* pDisplay, IADLXDisplayGamma** ppDispGamma) = 0; - - /** - * @page DOX_IADLXDisplayServices_GetDisplayChangedHandling GetDisplayChangedHandling - * @ENG_START_DOX - * @brief Gets the reference counted interface that allows registering and unregistering for notifications when display change. - * @ENG_END_DOX - * - * @syntax - * @codeStart - * @ref ADLX_RESULT GetDisplayChangedHandling (@ref DOX_IADLXDisplayChangedHandling** ppDisplayChangedHandling) - * @codeEnd - * - * @params - * @paramrow{1.,[in] ,ppDisplayChangedHandling,@ref DOX_IADLXDisplayChangedHandling** ,@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 __*ppDisplayChangedHandling__ to __nullptr__. @ENG_END_DOX} - * - * @retvalues - * @ENG_START_DOX - * If the interface is successfully returned, __ADLX_OK__ is returned.
- * If the interface is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. - * @ENG_END_DOX - * - * @detaileddesc - * @ENG_START_DOX - * @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. - * @ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * In C++ when using a smart pointer for the display changing listener interface there is no need to call @ref DOX_IADLXInterface_Release because the smart pointer calls it internally. - * @ENG_END_DOX - * - * @copydoc IADLXDisplayServices_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetDisplayChangedHandling (IADLXDisplayChangedHandling** ppDisplayChangedHandling) = 0; - /** - *@page DOX_IADLXDisplayServices_GetFreeSync GetFreeSync - *@ENG_START_DOX @brief Gets the reference counted AMD FreeSyncâ„¢ Technology interface. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetFreeSync (@ref DOX_IADLXDisplay* pDisplay, @ref DOX_IADLXDisplayFreeSync** ppFreeSync) - *@codeEnd - * - *@params - *@paramrow{1.,[in] ,pDisplay,@ref DOX_IADLXDisplay* ,@ENG_START_DOX The pointer to the display interface. @ENG_END_DOX} - *@paramrow{2.,[out] ,ppFreeSync,@ref DOX_IADLXDisplayFreeSync** ,@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 __*ppFreeSync__ to __nullptr__. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX - * If the interface is successfully returned, __ADLX_OK__ is returned.
- * If the interface is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX - * - *@addinfo - *@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 - * - *@copydoc IADLXDisplayServices_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetFreeSync (IADLXDisplay* pDisplay, IADLXDisplayFreeSync** ppFreeSync) = 0; - - /** - *@page DOX_IADLXDisplayServices_GetVirtualSuperResolution GetVirtualSuperResolution - *@ENG_START_DOX @brief Gets the reference counted virtual super resolution interface for a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetVirtualSuperResolution (@ref DOX_IADLXDisplay* pDisplay, @ref DOX_IADLXDisplayVSR** ppVSR) - *@codeEnd - * - *@params - *@paramrow{1.,[in] ,pDisplay,@ref DOX_IADLXDisplay* ,@ENG_START_DOX The pointer to the display interface. @ENG_END_DOX} - *@paramrow{2.,[out] ,ppVSR,@ref DOX_IADLXDisplayVSR** ,@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 __*ppVSR__ to __nullptr__. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX - * If the interface is successfully returned, __ADLX_OK__ is returned.
- * If the interface is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX - * - *@addinfo - *@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 - * - *@copydoc IADLXDisplayServices_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetVirtualSuperResolution (IADLXDisplay* pDisplay, IADLXDisplayVSR** ppVSR) = 0; - - /** - *@page DOX_IADLXDisplayServices_GetGPUScaling GetGPUScaling - *@ENG_START_DOX @brief Gets the reference counted GPU scaling interface for a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetGPUScaling (@ref DOX_IADLXDisplay* pDisplay, @ref DOX_IADLXDisplayGPUScaling** ppGPUScaling) - *@codeEnd - * - *@params - *@paramrow{1.,[in],pDisplay,@ref DOX_IADLXDisplay* ,@ENG_START_DOX The pointer to the display interface. @ENG_END_DOX} - *@paramrow{2.,[out],ppGPUScaling,@ref DOX_IADLXDisplayGPUScaling** ,@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 __*ppGPUScaling__ to __nullptr__. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX - * If the interface is successfully returned, __ADLX_OK__ is returned.
- * If the interface is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX - * - *@addinfo - *@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 - * - *@copydoc IADLXDisplayServices_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetGPUScaling (IADLXDisplay* pDisplay, IADLXDisplayGPUScaling** ppGPUScaling) = 0; - - /** - *@page DOX_IADLXDisplayServices_GetScalingMode GetScalingMode - *@ENG_START_DOX @brief Gets the reference counted scaling mode interface for a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetScalingMode (@ref DOX_IADLXDisplay* pDisplay, @ref DOX_IADLXDisplayScalingMode** ppScalingMode) - *@codeEnd - * - *@params - *@paramrow{1.,[in],pDisplay,@ref DOX_IADLXDisplay*,@ENG_START_DOX The pointer to the display interface. @ENG_END_DOX} - *@paramrow{2.,[out],ppScalingMode,@ref DOX_IADLXDisplayScalingMode**,@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 __*ppScalingMode__ to __nullptr__. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX - * If the interface is successfully returned, __ADLX_OK__ is returned.
- * If the interface is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX - * - *@addinfo - *@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 - * - *@copydoc IADLXDisplayServices_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetScalingMode (IADLXDisplay* pDisplay, IADLXDisplayScalingMode** ppScalingMode) = 0; - - /** - *@page DOX_IADLXDisplayServices_GetIntegerScaling GetIntegerScaling - *@ENG_START_DOX @brief Gets the reference counted integer scaling interface for a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetIntegerScaling (@ref DOX_IADLXDisplay* pDisplay, @ref DOX_IADLXDisplayIntegerScaling** ppIntegerScaling) - *@codeEnd - * - *@params - *@paramrow{1.,[in],pDisplay,@ref DOX_IADLXDisplay*,@ENG_START_DOX The pointer to the display interface. @ENG_END_DOX} - *@paramrow{2.,[out],ppIntegerScaling,@ref DOX_IADLXDisplayIntegerScaling**,@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 __*ppIntegerScaling__ to __nullptr__. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX - * If the interface is successfully returned, __ADLX_OK__ is returned.
- * If the interface is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX - * - *@addinfo - *@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 - * - *@copydoc IADLXDisplayServices_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetIntegerScaling (IADLXDisplay* pDisplay, IADLXDisplayIntegerScaling** ppIntegerScaling) = 0; - /** - *@page DOX_IADLXDisplayServices_GetColorDepth GetColorDepth - *@ENG_START_DOX @brief Gets the reference counted color depth interface for a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetColorDepth (@ref DOX_IADLXDisplay* pDisplay, @ref DOX_IADLXDisplayColorDepth** ppColorDepth) - *@codeEnd - * - *@params - *@paramrow{1.,[in],pDisplay,@ref DOX_IADLXDisplay*,@ENG_START_DOX The pointer to the display interface. @ENG_END_DOX} - *@paramrow{2.,[out],ppColorDepth,@ref DOX_IADLXDisplayColorDepth**,@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 __*ppColorDepth__ to __nullptr__. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX - * If the interface is successfully returned, __ADLX_OK__ is returned.
- * If the interface is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX - * - *@addinfo - *@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 - * - *@copydoc IADLXDisplayServices_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetColorDepth (IADLXDisplay* pDisplay, IADLXDisplayColorDepth** ppColorDepth) = 0; - /** - *@page DOX_IADLXDisplayServices_GetPixelFormat GetPixelFormat - *@ENG_START_DOX @brief Gets the reference counted pixel format interface for a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetPixelFormat (@ref DOX_IADLXDisplay* pDisplay, @ref DOX_IADLXDisplayPixelFormat** ppPixelFormat) - *@codeEnd - * - *@params - *@paramrow{1.,[in],pDisplay,@ref DOX_IADLXDisplay*,@ENG_START_DOX The pointer to the display interface. @ENG_END_DOX} - *@paramrow{2.,[out],ppPixelFormat,@ref DOX_IADLXDisplayPixelFormat**,@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 __*ppPixelFormat__ to __nullptr__. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX - * If the interface is successfully returned, __ADLX_OK__ is returned.
- * If the interface is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX - * - *@addinfo - *@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 - * - *@copydoc IADLXDisplayServices_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetPixelFormat (IADLXDisplay* pDisplay, IADLXDisplayPixelFormat** ppPixelFormat) = 0; - /** - *@page DOX_IADLXDisplayServices_GetCustomColor GetCustomColor - *@ENG_START_DOX @brief Gets the reference counted custom color interface for a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetCustomColor (@ref DOX_IADLXDisplay* pDisplay, @ref DOX_IADLXDisplayCustomColor** ppCustomColor) - *@codeEnd - * - *@params - *@paramrow{1.,[in],pDisplay,@ref DOX_IADLXDisplay*,@ENG_START_DOX The pointer to the display interface. @ENG_END_DOX} - *@paramrow{2.,[out],ppCustomColor,@ref DOX_IADLXDisplayCustomColor**,@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 __*ppCustomColor__ to __nullptr__. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX - * If the interface is successfully returned, __ADLX_OK__ is returned.
- * If the interface is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX - * - *@addinfo - *@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 - * - *@copydoc IADLXDisplayServices_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetCustomColor (IADLXDisplay* pDisplay, IADLXDisplayCustomColor** ppCustomColor) = 0; - /** - *@page DOX_IADLXDisplayServices_GetHDCP GetHDCP - *@ENG_START_DOX @brief Gets the reference counted HDCP interface for a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetHDCP (@ref DOX_IADLXDisplay* pDisplay, @ref DOX_IADLXDisplayHDCP** ppHDCP) - *@codeEnd - * - *@params - *@paramrow{1.,[in],pDisplay,@ref DOX_IADLXDisplay*,@ENG_START_DOX The pointer to the display interface. @ENG_END_DOX} - *@paramrow{2.,[out],ppHDCP,@ref DOX_IADLXDisplayHDCP**,@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 __*ppHDCP__ to __nullptr__. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX - * If the interface is successfully returned, __ADLX_OK__ is returned.
- * If the interface is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX - * - *@addinfo - *@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 - * - *@copydoc IADLXDisplayServices_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetHDCP (IADLXDisplay* pDisplay, IADLXDisplayHDCP** ppHDCP) = 0; - /** - *@page DOX_IADLXDisplayServices_GetCustomResolution GetCustomResolution - *@ENG_START_DOX @brief Gets the reference counted custom resolution interface for a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetCustomResolution (@ref DOX_IADLXDisplay* pDisplay, @ref DOX_IADLXDisplayCustomResolution** ppCustomResolution) - *@codeEnd - * - *@params - *@paramrow{1.,[in],pDisplay,@ref DOX_IADLXDisplay*,@ENG_START_DOX The pointer to the display interface. @ENG_END_DOX} - *@paramrow{2.,[out],ppCustomResolution,@ref DOX_IADLXDisplayCustomResolution**,@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 __*ppCustomResolution__ to __nullptr__. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX - * If the interface is successfully returned, __ADLX_OK__ is returned.
- * If the interface is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX - * - *@addinfo - *@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 - * - *@copydoc IADLXDisplayServices_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetCustomResolution (IADLXDisplay* pDisplay, IADLXDisplayCustomResolution** ppCustomResolution) = 0; - /** - *@page DOX_IADLXDisplayServices_GetVariBright GetVariBright - *@ENG_START_DOX @brief Gets the reference counted Vari-Bright interface for a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetVariBright (@ref DOX_IADLXDisplay* pDisplay, @ref DOX_IADLXDisplayVariBright ** ppVariBright) - *@codeEnd - * - *@params - *@paramrow{1.,[in],pDisplay,@ref DOX_IADLXDisplay*,@ENG_START_DOX The pointer to the display interface. @ENG_END_DOX} - *@paramrow{2.,[out],ppVariBright,@ref DOX_IADLXDisplayVariBright **,@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 __*ppVariBright__ to __nullptr__. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX - * If the interface is successfully returned, __ADLX_OK__ is returned.
- * If the interface is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX - * - *@addinfo - *@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 - * - *@copydoc IADLXDisplayServices_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetVariBright (IADLXDisplay* pDisplay, IADLXDisplayVariBright** ppVariBright) = 0; - }; //IADLXDisplayServices - //---------------------------------------------------------------------------------------------- - typedef IADLXInterfacePtr_T IADLXDisplayServicesPtr; -} //namespace adlx -#else //__cplusplus -ADLX_DECLARE_IID (IADLXDisplayServices, L"IADLXDisplayServices") -typedef struct IADLXDisplayServices IADLXDisplayServices; - -typedef struct IADLXDisplayFreeSync IADLXDisplayFreeSync; -typedef struct IADLXDisplayVSR IADLXDisplayVSR; -typedef struct IADLXDisplayGPUScaling IADLXDisplayGPUScaling; -typedef struct IADLXDisplayScalingMode IADLXDisplayScalingMode; -typedef struct IADLXDisplayIntegerScaling IADLXDisplayIntegerScaling; -typedef struct IADLXDisplayColorDepth IADLXDisplayColorDepth; -typedef struct IADLXDisplayPixelFormat IADLXDisplayPixelFormat; -typedef struct IADLXDisplayCustomColor IADLXDisplayCustomColor; -typedef struct IADLXDisplayHDCP IADLXDisplayHDCP; -typedef struct IADLXDisplayCustomResolution IADLXDisplayCustomResolution; -typedef struct IADLXDisplayChangedHandling IADLXDisplayChangedHandling; -typedef struct IADLXDisplayVariBright IADLXDisplayVariBright; - -typedef struct IADLXDisplayServicesVtbl -{ - //IADLXInterface - adlx_long (ADLX_STD_CALL* Acquire)( IADLXDisplayServices* pThis ); - adlx_long (ADLX_STD_CALL* Release)( IADLXDisplayServices* pThis ); - ADLX_RESULT (ADLX_STD_CALL* QueryInterface)( IADLXDisplayServices* pThis, const wchar_t* interfaceId, void** ppInterface ); - - //IADLXDisplayServices - ADLX_RESULT (ADLX_STD_CALL* GetNumberOfDisplays)( IADLXDisplayServices* pThis, adlx_uint* numDisplays ); - ADLX_RESULT (ADLX_STD_CALL* GetDisplays)( IADLXDisplayServices* pThis, IADLXDisplayList** ppDisplays ); - ADLX_RESULT (ADLX_STD_CALL* Get3DLUT)( IADLXDisplayServices* pThis, IADLXDisplay* pDisplay, IADLXDisplay3DLUT** ppDisp3DLUT ); - ADLX_RESULT (ADLX_STD_CALL* GetGamut)( IADLXDisplayServices* pThis, IADLXDisplay* pDisplay, IADLXDisplayGamut** ppDispGamut ); - ADLX_RESULT (ADLX_STD_CALL* GetGamma)( IADLXDisplayServices* pThis, IADLXDisplay* pDisplay, IADLXDisplayGamma** ppDispGamma ); - ADLX_RESULT (ADLX_STD_CALL* GetDisplayChangedHandling)( IADLXDisplayServices* pThis, IADLXDisplayChangedHandling** ppDisplayChangedHandling ); - ADLX_RESULT (ADLX_STD_CALL* GetFreeSync)( IADLXDisplayServices* pThis, IADLXDisplay* pDisplay, IADLXDisplayFreeSync** ppFreeSync ); - ADLX_RESULT (ADLX_STD_CALL* GetVirtualSuperResolution)( IADLXDisplayServices* pThis, IADLXDisplay* pDisplay, IADLXDisplayVSR** ppVSR ); - ADLX_RESULT (ADLX_STD_CALL* GetGPUScaling)( IADLXDisplayServices* pThis, IADLXDisplay* pDisplay, IADLXDisplayGPUScaling** ppGPUScaling ); - ADLX_RESULT (ADLX_STD_CALL* GetScalingMode)( IADLXDisplayServices* pThis, IADLXDisplay* pDisplay, IADLXDisplayScalingMode** ppScalingMode ); - ADLX_RESULT (ADLX_STD_CALL* GetIntegerScaling)( IADLXDisplayServices* pThis, IADLXDisplay* pDisplay, IADLXDisplayIntegerScaling** ppIntegerScaling ); - ADLX_RESULT (ADLX_STD_CALL* GetColorDepth)( IADLXDisplayServices* pThis, IADLXDisplay* pDisplay, IADLXDisplayColorDepth** ppColorDepth ); - ADLX_RESULT (ADLX_STD_CALL* GetPixelFormat)( IADLXDisplayServices* pThis, IADLXDisplay* pDisplay, IADLXDisplayPixelFormat** ppPixelFormat ); - ADLX_RESULT (ADLX_STD_CALL* GetCustomColor)( IADLXDisplayServices* pThis, IADLXDisplay* pDisplay, IADLXDisplayCustomColor** ppCustomColor ); - ADLX_RESULT (ADLX_STD_CALL* GetHDCP)( IADLXDisplayServices* pThis, IADLXDisplay* pDisplay, IADLXDisplayHDCP** ppHDCP ); - ADLX_RESULT (ADLX_STD_CALL* GetCustomResolution)( IADLXDisplayServices* pThis, IADLXDisplay* pDisplay, IADLXDisplayCustomResolution** ppCustomResolution ); - ADLX_RESULT (ADLX_STD_CALL* GetVariBright)(IADLXDisplayServices* pThis, IADLXDisplay* pDisplay, IADLXDisplayVariBright** ppVariBright); -} IADLXDisplayServicesVtbl; - -struct IADLXDisplayServices { const IADLXDisplayServicesVtbl* pVtbl; }; -#endif //__cplusplus -#pragma endregion IADLXDisplayServices - -#endif//ADLX_IDISPLAYS_H diff --git a/src/adlx/sdk/Include/IDisplays1.h b/src/adlx/sdk/Include/IDisplays1.h deleted file mode 100644 index adbaf4e..0000000 --- a/src/adlx/sdk/Include/IDisplays1.h +++ /dev/null @@ -1,191 +0,0 @@ -// -// Copyright (c) 2021 - 2023 Advanced Micro Devices, Inc. All rights reserved. -// -//------------------------------------------------------------------------------------------------- - -#ifndef ADLX_IDISPLAYS1_H -#define ADLX_IDISPLAYS1_H -#pragma once - -#include "IDisplays.h" - -//------------------------------------------------------------------------------------------------- -//IDisplays1.h - Interfaces for ADLX Display Information functionality - -#pragma region IADLXDisplayServices1 - -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLXDisplayConnectivityExperience; - class ADLX_NO_VTABLE IADLXDisplayBlanking; - class ADLX_NO_VTABLE IADLXDisplayServices1 : public IADLXDisplayServices - { - public: - ADLX_DECLARE_IID(L"IADLXDisplayServices1") - - /** - *@page DOX_IADLXDisplayServices1_GetDisplayBlanking GetDisplayBlanking - *@ENG_START_DOX @brief Gets the reference counted display blanking interface of a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetDisplayBlanking (IADLXDisplay* pDisplay, @ref DOX_IADLXDisplayBlanking** ppDisplayBlanking) - *@codeEnd - * - *@params - *@paramrow{1.,[in],pDisplay,@ref DOX_IADLXDisplay*,@ENG_START_DOX The pointer to the display interface. @ENG_END_DOX} - *@paramrow{2.,[out],ppDisplayBlanking,@ref DOX_IADLXDisplayBlanking **,@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 __*ppDisplayBlanking__ to __nullptr__. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX - * If the interface is successfully returned, __ADLX_OK__ is returned.
- * If the interface is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it's no longer needed. @ENG_END_DOX - * - *@addinfo - *@ENG_START_DOX - *When using ADLX interfaces as smart pointers in C++, it isn't necessary to call @ref DOX_IADLXInterface_Release as it's called by smart pointers in the internal implementation. @ENG_END_DOX - * - *@copydoc IADLXDisplayServices1_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetDisplayBlanking(IADLXDisplay* pDisplay, IADLXDisplayBlanking** ppDisplayBlanking) = 0; - - }; //IADLXDisplayServices1 - //---------------------------------------------------------------------------------------------- - typedef IADLXInterfacePtr_T IADLXDisplayServices1Ptr; -} // namespace adlx -#else //__cplusplus -ADLX_DECLARE_IID(IADLXDisplayServices1, L"IADLXDisplayServices1") -typedef struct IADLXDisplayServices1 IADLXDisplayServices1; - -typedef struct IADLXDisplayFreeSync IADLXDisplayFreeSync; -typedef struct IADLXDisplayVSR IADLXDisplayVSR; -typedef struct IADLXDisplayGPUScaling IADLXDisplayGPUScaling; -typedef struct IADLXDisplayScalingMode IADLXDisplayScalingMode; -typedef struct IADLXDisplayIntegerScaling IADLXDisplayIntegerScaling; -typedef struct IADLXDisplayColorDepth IADLXDisplayColorDepth; -typedef struct IADLXDisplayPixelFormat IADLXDisplayPixelFormat; -typedef struct IADLXDisplayCustomColor IADLXDisplayCustomColor; -typedef struct IADLXDisplayHDCP IADLXDisplayHDCP; -typedef struct IADLXDisplayCustomResolution IADLXDisplayCustomResolution; -typedef struct IADLXDisplayChangedHandling IADLXDisplayChangedHandling; -typedef struct IADLXDisplayVariBright IADLXDisplayVariBright; -typedef struct IADLXDisplayConnectivityExperience IADLXDisplayConnectivityExperience; -typedef struct IADLXDisplayBlanking IADLXDisplayBlanking; - -typedef struct IADLXDisplayServices1Vtbl -{ - //IADLXInterface - adlx_long(ADLX_STD_CALL* Acquire)(IADLXDisplayServices1* pThis); - adlx_long(ADLX_STD_CALL* Release)(IADLXDisplayServices1* pThis); - ADLX_RESULT(ADLX_STD_CALL* QueryInterface)(IADLXDisplayServices1* pThis, const wchar_t* interfaceId, void** ppInterface); - - //IADLXDisplayServices - ADLX_RESULT(ADLX_STD_CALL* GetNumberOfDisplays)(IADLXDisplayServices1* pThis, adlx_uint* numDisplays); - ADLX_RESULT(ADLX_STD_CALL* GetDisplays)(IADLXDisplayServices1* pThis, IADLXDisplayList** ppDisplays); - ADLX_RESULT(ADLX_STD_CALL* Get3DLUT)(IADLXDisplayServices1* pThis, IADLXDisplay* pDisplay, IADLXDisplay3DLUT** ppDisp3DLUT); - ADLX_RESULT(ADLX_STD_CALL* GetGamut)(IADLXDisplayServices1* pThis, IADLXDisplay* pDisplay, IADLXDisplayGamut** ppDispGamut); - ADLX_RESULT(ADLX_STD_CALL* GetGamma)(IADLXDisplayServices1* pThis, IADLXDisplay* pDisplay, IADLXDisplayGamma** ppDispGamma); - ADLX_RESULT(ADLX_STD_CALL* GetDisplayChangedHandling)(IADLXDisplayServices1* pThis, IADLXDisplayChangedHandling** ppDisplayChangedHandling); - ADLX_RESULT(ADLX_STD_CALL* GetFreeSync)(IADLXDisplayServices1* pThis, IADLXDisplay* pDisplay, IADLXDisplayFreeSync** ppFreeSync); - ADLX_RESULT(ADLX_STD_CALL* GetVirtualSuperResolution)(IADLXDisplayServices1* pThis, IADLXDisplay* pDisplay, IADLXDisplayVSR** ppVSR); - ADLX_RESULT(ADLX_STD_CALL* GetGPUScaling)(IADLXDisplayServices1* pThis, IADLXDisplay* pDisplay, IADLXDisplayGPUScaling** ppGPUScaling); - ADLX_RESULT(ADLX_STD_CALL* GetScalingMode)(IADLXDisplayServices1* pThis, IADLXDisplay* pDisplay, IADLXDisplayScalingMode** ppScalingMode); - ADLX_RESULT(ADLX_STD_CALL* GetIntegerScaling)(IADLXDisplayServices1* pThis, IADLXDisplay* pDisplay, IADLXDisplayIntegerScaling** ppIntegerScaling); - ADLX_RESULT(ADLX_STD_CALL* GetColorDepth)(IADLXDisplayServices1* pThis, IADLXDisplay* pDisplay, IADLXDisplayColorDepth** ppColorDepth); - ADLX_RESULT(ADLX_STD_CALL* GetPixelFormat)(IADLXDisplayServices1* pThis, IADLXDisplay* pDisplay, IADLXDisplayPixelFormat** ppPixelFormat); - ADLX_RESULT(ADLX_STD_CALL* GetCustomColor)(IADLXDisplayServices1* pThis, IADLXDisplay* pDisplay, IADLXDisplayCustomColor** ppCustomColor); - ADLX_RESULT(ADLX_STD_CALL* GetHDCP)(IADLXDisplayServices1* pThis, IADLXDisplay* pDisplay, IADLXDisplayHDCP** ppHDCP); - ADLX_RESULT(ADLX_STD_CALL* GetCustomResolution)(IADLXDisplayServices1* pThis, IADLXDisplay* pDisplay, IADLXDisplayCustomResolution** ppCustomResolution); - ADLX_RESULT(ADLX_STD_CALL* GetVariBright)(IADLXDisplayServices1* pThis, IADLXDisplay* pDisplay, IADLXDisplayVariBright** ppVariBright); - - //IADLXDisplayServices1 - ADLX_RESULT(ADLX_STD_CALL* GetDisplayBlanking)(IADLXDisplayServices1* pThis, IADLXDisplay* pDisplay, IADLXDisplayBlanking** ppDisplayBlanking); -} IADLXDisplayServices1Vtbl; - -struct IADLXDisplayServices1 { const IADLXDisplayServices1Vtbl* pVtbl; }; -#endif - -#pragma endregion IADLXDisplayServices1 - -#pragma region IADLXDisplaySettingsChangedEvent1 -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLXDisplaySettingsChangedEvent1 : public IADLXDisplaySettingsChangedEvent - { - public: - ADLX_DECLARE_IID(L"IADLXDisplaySettingsChangedEvent1") - - /** - *@page DOX_IADLXDisplaySettingsChangedEvent1_IsDisplayBlankingChanged IsDisplayBlankingChanged - *@ENG_START_DOX @brief Checks if the display blanking of the display is changed. @ENG_END_DOX - * - *@syntax - *@codeStart - * adlx_bool IsDisplayBlankingChanged () - *@codeEnd - * - *@params - *N/A - * - *@retvalues - *@ENG_START_DOX - * If the display blanking settings are changed, __true__ is returned.
- * If the display blanking settings are not changed, __false__ is returned. @ENG_END_DOX - * - *@copydoc IADLXDisplaySettingsChangedEvent1_REQ_TABLE - * - */ - virtual adlx_bool ADLX_STD_CALL IsDisplayBlankingChanged() = 0; - }; //IADLXDisplaySettingsChangedEvent1 - //---------------------------------------------------------------------------------------------- - typedef IADLXInterfacePtr_T IADLXDisplaySettingsChangedEvent1Ptr; -} //namespace adlx -#else //__cplusplus -ADLX_DECLARE_IID(IADLXDisplaySettingsChangedEvent1, L"IADLXDisplaySettingsChangedEvent1") -typedef struct IADLXDisplaySettingsChangedEvent1 IADLXDisplaySettingsChangedEvent1; - -typedef struct IADLXDisplaySettingsChangedEvent1Vtbl -{ - //IADLXInterface - adlx_long(ADLX_STD_CALL* Acquire)(IADLXDisplaySettingsChangedEvent1* pThis); - adlx_long(ADLX_STD_CALL* Release)(IADLXDisplaySettingsChangedEvent1* pThis); - ADLX_RESULT(ADLX_STD_CALL* QueryInterface)(IADLXDisplaySettingsChangedEvent1* pThis, const wchar_t* interfaceId, void** ppInterface); - - //IADLXChangedEvent - ADLX_SYNC_ORIGIN(ADLX_STD_CALL* GetOrigin)(IADLXDisplaySettingsChangedEvent1* pThis); - - // IADLXDisplaySettingsChangedEvent interface - ADLX_RESULT(ADLX_STD_CALL* GetDisplay)(IADLXDisplaySettingsChangedEvent1* pThis, IADLXDisplay** ppDisplay); - adlx_bool(ADLX_STD_CALL* IsFreeSyncChanged)(IADLXDisplaySettingsChangedEvent1* pThis); - adlx_bool(ADLX_STD_CALL* IsVSRChanged)(IADLXDisplaySettingsChangedEvent1* pThis); - adlx_bool(ADLX_STD_CALL* IsGPUScalingChanged)(IADLXDisplaySettingsChangedEvent1* pThis); - adlx_bool(ADLX_STD_CALL* IsScalingModeChanged)(IADLXDisplaySettingsChangedEvent1* pThis); - adlx_bool(ADLX_STD_CALL* IsIntegerScalingChanged)(IADLXDisplaySettingsChangedEvent1* pThis); - adlx_bool(ADLX_STD_CALL* IsColorDepthChanged)(IADLXDisplaySettingsChangedEvent1* pThis); - adlx_bool(ADLX_STD_CALL* IsPixelFormatChanged)(IADLXDisplaySettingsChangedEvent1* pThis); - adlx_bool(ADLX_STD_CALL* IsHDCPChanged)(IADLXDisplaySettingsChangedEvent1* pThis); - adlx_bool(ADLX_STD_CALL* IsCustomColorHueChanged)(IADLXDisplaySettingsChangedEvent1* pThis); - adlx_bool(ADLX_STD_CALL* IsCustomColorSaturationChanged)(IADLXDisplaySettingsChangedEvent1* pThis); - adlx_bool(ADLX_STD_CALL* IsCustomColorBrightnessChanged)(IADLXDisplaySettingsChangedEvent1* pThis); - adlx_bool(ADLX_STD_CALL* IsCustomColorTemperatureChanged)(IADLXDisplaySettingsChangedEvent1* pThis); - adlx_bool(ADLX_STD_CALL* IsCustomColorContrastChanged)(IADLXDisplaySettingsChangedEvent1* pThis); - adlx_bool(ADLX_STD_CALL* IsCustomResolutionChanged)(IADLXDisplaySettingsChangedEvent1* pThis); - adlx_bool(ADLX_STD_CALL* IsVariBrightChanged)(IADLXDisplaySettingsChangedEvent1* pThis); - - // IADLXDisplaySettingsChangedEvent1 interface - adlx_bool(ADLX_STD_CALL* IsDisplayBlankingChanged)(IADLXDisplaySettingsChangedEvent1* pThis); - -} IADLXDisplaySettingsChangedEvent1Vtbl; - -struct IADLXDisplaySettingsChangedEvent1 { const IADLXDisplaySettingsChangedEvent1Vtbl* pVtbl; }; -#endif //__cplusplus -#pragma endregion IADLXDisplaySettingsChangedEvent1 - -#endif //ADLX_IDISPLAYS1_H diff --git a/src/adlx/sdk/Include/IDisplays2.h b/src/adlx/sdk/Include/IDisplays2.h deleted file mode 100644 index c77016b..0000000 --- a/src/adlx/sdk/Include/IDisplays2.h +++ /dev/null @@ -1,188 +0,0 @@ -// -// Copyright (c) 2021 - 2023 Advanced Micro Devices, Inc. All rights reserved. -// -//------------------------------------------------------------------------------------------------- - -#ifndef ADLX_IDISPLAYS2_H -#define ADLX_IDISPLAYS2_H -#pragma once - -#include "IDisplays1.h" - -//------------------------------------------------------------------------------------------------- -//IDisplays2.h - Interfaces for ADLX Display Information functionality - -#pragma region IADLXDisplayServices2 - -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLXDisplayConnectivityExperience; - class ADLX_NO_VTABLE IADLXDisplayServices2 : public IADLXDisplayServices1 - { - public: - ADLX_DECLARE_IID(L"IADLXDisplayServices2") - - /** - *@page DOX_IADLXDisplayServices2_GetDisplayConnectivityExperience GetDisplayConnectivityExperience - *@ENG_START_DOX @brief Gets the reference counted DCE interface for a display. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetDisplayConnectivityExperience (@ref DOX_IADLXDisplay* pDisplay, @ref DOX_IADLXDisplayConnectivityExperience ** ppDisplayConnectivityExperience) - *@codeEnd - * - *@params - *@paramrow{1.,[in],pDisplay,@ref DOX_IADLXDisplay*,@ENG_START_DOX The pointer to the display interface. @ENG_END_DOX} - *@paramrow{2.,[out],ppDisplayConnectivityExperience,@ref DOX_IADLXDisplayConnectivityExperience **,@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 __*ppDisplayConnectivityExperience__ to __nullptr__. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX - * If the interface is successfully returned, __ADLX_OK__ is returned.
- * If the interface is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX - * - *@addinfo - *@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 - * - *@copydoc IADLXDisplayServices2_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetDisplayConnectivityExperience(IADLXDisplay* pDisplay, IADLXDisplayConnectivityExperience** ppDisplayConnectivityExperience) = 0; - }; //IADLXDisplayServices2 - //---------------------------------------------------------------------------------------------- - typedef IADLXInterfacePtr_T IADLXDisplayServices2Ptr; -} // namespace adlx -#else //__cplusplus -ADLX_DECLARE_IID(IADLXDisplayServices2, L"IADLXDisplayServices2") -typedef struct IADLXDisplayServices2 IADLXDisplayServices2; - -typedef struct IADLXDisplayConnectivityExperience IADLXDisplayConnectivityExperience; - -typedef struct IADLXDisplayServices2Vtbl -{ - //IADLXInterface - adlx_long(ADLX_STD_CALL* Acquire)(IADLXDisplayServices2* pThis); - adlx_long(ADLX_STD_CALL* Release)(IADLXDisplayServices2* pThis); - ADLX_RESULT(ADLX_STD_CALL* QueryInterface)(IADLXDisplayServices2* pThis, const wchar_t* interfaceId, void** ppInterface); - - //IADLXDisplayServices - ADLX_RESULT(ADLX_STD_CALL* GetNumberOfDisplays)(IADLXDisplayServices2* pThis, adlx_uint* numDisplays); - ADLX_RESULT(ADLX_STD_CALL* GetDisplays)(IADLXDisplayServices2* pThis, IADLXDisplayList** ppDisplays); - ADLX_RESULT(ADLX_STD_CALL* Get3DLUT)(IADLXDisplayServices2* pThis, IADLXDisplay* pDisplay, IADLXDisplay3DLUT** ppDisp3DLUT); - ADLX_RESULT(ADLX_STD_CALL* GetGamut)(IADLXDisplayServices2* pThis, IADLXDisplay* pDisplay, IADLXDisplayGamut** ppDispGamut); - ADLX_RESULT(ADLX_STD_CALL* GetGamma)(IADLXDisplayServices2* pThis, IADLXDisplay* pDisplay, IADLXDisplayGamma** ppDispGamma); - ADLX_RESULT(ADLX_STD_CALL* GetDisplayChangedHandling)(IADLXDisplayServices2* pThis, IADLXDisplayChangedHandling** ppDisplayChangedHandling); - ADLX_RESULT(ADLX_STD_CALL* GetFreeSync)(IADLXDisplayServices2* pThis, IADLXDisplay* pDisplay, IADLXDisplayFreeSync** ppFreeSync); - ADLX_RESULT(ADLX_STD_CALL* GetVirtualSuperResolution)(IADLXDisplayServices2* pThis, IADLXDisplay* pDisplay, IADLXDisplayVSR** ppVSR); - ADLX_RESULT(ADLX_STD_CALL* GetGPUScaling)(IADLXDisplayServices2* pThis, IADLXDisplay* pDisplay, IADLXDisplayGPUScaling** ppGPUScaling); - ADLX_RESULT(ADLX_STD_CALL* GetScalingMode)(IADLXDisplayServices2* pThis, IADLXDisplay* pDisplay, IADLXDisplayScalingMode** ppScalingMode); - ADLX_RESULT(ADLX_STD_CALL* GetIntegerScaling)(IADLXDisplayServices2* pThis, IADLXDisplay* pDisplay, IADLXDisplayIntegerScaling** ppIntegerScaling); - ADLX_RESULT(ADLX_STD_CALL* GetColorDepth)(IADLXDisplayServices2* pThis, IADLXDisplay* pDisplay, IADLXDisplayColorDepth** ppColorDepth); - ADLX_RESULT(ADLX_STD_CALL* GetPixelFormat)(IADLXDisplayServices2* pThis, IADLXDisplay* pDisplay, IADLXDisplayPixelFormat** ppPixelFormat); - ADLX_RESULT(ADLX_STD_CALL* GetCustomColor)(IADLXDisplayServices2* pThis, IADLXDisplay* pDisplay, IADLXDisplayCustomColor** ppCustomColor); - ADLX_RESULT(ADLX_STD_CALL* GetHDCP)(IADLXDisplayServices2* pThis, IADLXDisplay* pDisplay, IADLXDisplayHDCP** ppHDCP); - ADLX_RESULT(ADLX_STD_CALL* GetCustomResolution)(IADLXDisplayServices2* pThis, IADLXDisplay* pDisplay, IADLXDisplayCustomResolution** ppCustomResolution); - ADLX_RESULT(ADLX_STD_CALL* GetVariBright)(IADLXDisplayServices2* pThis, IADLXDisplay* pDisplay, IADLXDisplayVariBright** ppVariBright); - - //IADLXDisplayServices1 - ADLX_RESULT(ADLX_STD_CALL* GetDisplayBlanking)(IADLXDisplayServices2* pThis, IADLXDisplay* pDisplay, IADLXDisplayBlanking** ppDisplayBlanking); - - //IADLXDisplayServices2 - ADLX_RESULT(ADLX_STD_CALL* GetDisplayConnectivityExperience)(IADLXDisplayServices2* pThis, IADLXDisplay* pDisplay, IADLXDisplayConnectivityExperience** ppDisplayConnectivityExperience); -} IADLXDisplayServices2Vtbl; - -struct IADLXDisplayServices2 { const IADLXDisplayServices2Vtbl* pVtbl; }; -#endif - -#pragma endregion IADLXDisplayServices2 - -#pragma region IADLXDisplaySettingsChangedEvent2 -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLXDisplaySettingsChangedEvent2 : public IADLXDisplaySettingsChangedEvent1 - { - public: - ADLX_DECLARE_IID(L"IADLXDisplaySettingsChangedEvent2") - - /** - *@page DOX_IADLXDisplaySettingsChangedEvent2_IsConnectivityExperienceChanged IsConnectivityExperienceChanged - *@ENG_START_DOX @brief Checks if the DCE settings of the display are changed. @ENG_END_DOX - * - *@syntax - *@codeStart - * adlx_bool IsDisplayConnectivityExperienceChanged () - *@codeEnd - * - *@params - *N/A - * - *@retvalues - *@ENG_START_DOX - * If the DCE settings are changed, __true__ is returned.
- * If the DCE settings are not changed, __false__ is returned. @ENG_END_DOX - * - * - *@addinfo - *@ENG_START_DOX - * __Note:__ To obtain the display, use @ref DOX_IADLXDisplaySettingsChangedEvent_GetDisplay. - *@ENG_END_DOX - * - *@copydoc IADLXDisplaySettingsChangedEvent2_REQ_TABLE - */ - virtual adlx_bool ADLX_STD_CALL IsDisplayConnectivityExperienceChanged() = 0; - }; //IADLXDisplaySettingsChangedEvent2 - //---------------------------------------------------------------------------------------------- - typedef IADLXInterfacePtr_T IADLXDisplaySettingsChangedEvent2Ptr; -} //namespace adlx -#else //__cplusplus -ADLX_DECLARE_IID(IADLXDisplaySettingsChangedEvent2, L"IADLXDisplaySettingsChangedEvent2") -typedef struct IADLXDisplaySettingsChangedEvent2 IADLXDisplaySettingsChangedEvent2; - -typedef struct IADLXDisplaySettingsChangedEvent2Vtbl -{ - //IADLXInterface - adlx_long(ADLX_STD_CALL* Acquire)(IADLXDisplaySettingsChangedEvent2* pThis); - adlx_long(ADLX_STD_CALL* Release)(IADLXDisplaySettingsChangedEvent2* pThis); - ADLX_RESULT(ADLX_STD_CALL* QueryInterface)(IADLXDisplaySettingsChangedEvent2* pThis, const wchar_t* interfaceId, void** ppInterface); - - //IADLXChangedEvent - ADLX_SYNC_ORIGIN(ADLX_STD_CALL* GetOrigin)(IADLXDisplaySettingsChangedEvent2* pThis); - - // IADLXDisplaySettingsChangedEvent interface - ADLX_RESULT(ADLX_STD_CALL* GetDisplay)(IADLXDisplaySettingsChangedEvent2* pThis, IADLXDisplay** ppDisplay); - adlx_bool(ADLX_STD_CALL* IsFreeSyncChanged)(IADLXDisplaySettingsChangedEvent2* pThis); - adlx_bool(ADLX_STD_CALL* IsVSRChanged)(IADLXDisplaySettingsChangedEvent2* pThis); - adlx_bool(ADLX_STD_CALL* IsGPUScalingChanged)(IADLXDisplaySettingsChangedEvent2* pThis); - adlx_bool(ADLX_STD_CALL* IsScalingModeChanged)(IADLXDisplaySettingsChangedEvent2* pThis); - adlx_bool(ADLX_STD_CALL* IsIntegerScalingChanged)(IADLXDisplaySettingsChangedEvent2* pThis); - adlx_bool(ADLX_STD_CALL* IsColorDepthChanged)(IADLXDisplaySettingsChangedEvent2* pThis); - adlx_bool(ADLX_STD_CALL* IsPixelFormatChanged)(IADLXDisplaySettingsChangedEvent2* pThis); - adlx_bool(ADLX_STD_CALL* IsHDCPChanged)(IADLXDisplaySettingsChangedEvent2* pThis); - adlx_bool(ADLX_STD_CALL* IsCustomColorHueChanged)(IADLXDisplaySettingsChangedEvent2* pThis); - adlx_bool(ADLX_STD_CALL* IsCustomColorSaturationChanged)(IADLXDisplaySettingsChangedEvent2* pThis); - adlx_bool(ADLX_STD_CALL* IsCustomColorBrightnessChanged)(IADLXDisplaySettingsChangedEvent2* pThis); - adlx_bool(ADLX_STD_CALL* IsCustomColorTemperatureChanged)(IADLXDisplaySettingsChangedEvent2* pThis); - adlx_bool(ADLX_STD_CALL* IsCustomColorContrastChanged)(IADLXDisplaySettingsChangedEvent2* pThis); - adlx_bool(ADLX_STD_CALL* IsCustomResolutionChanged)(IADLXDisplaySettingsChangedEvent2* pThis); - adlx_bool(ADLX_STD_CALL* IsVariBrightChanged)(IADLXDisplaySettingsChangedEvent2* pThis); - - // IADLXDisplaySettingsChangedEvent1 interface - adlx_bool(ADLX_STD_CALL* IsDisplayBlankingChanged)(IADLXDisplaySettingsChangedEvent2* pThis); - - // IADLXDisplaySettingsChangedEvent2 interface - adlx_bool(ADLX_STD_CALL* IsDisplayConnectivityExperienceChanged)(IADLXDisplaySettingsChangedEvent2* pThis); - - -} IADLXDisplaySettingsChangedEvent2Vtbl; - -struct IADLXDisplaySettingsChangedEvent2 { const IADLXDisplaySettingsChangedEvent2Vtbl* pVtbl; }; -#endif //__cplusplus -#pragma endregion IADLXDisplaySettingsChangedEvent2 - -#endif //ADLX_IDISPLAYS2_H diff --git a/src/adlx/sdk/Include/IGPUAutoTuning.h b/src/adlx/sdk/Include/IGPUAutoTuning.h deleted file mode 100644 index 125affe..0000000 --- a/src/adlx/sdk/Include/IGPUAutoTuning.h +++ /dev/null @@ -1,460 +0,0 @@ -// -// Copyright (c) 2021 - 2023 Advanced Micro Devices, Inc. All rights reserved. -// -//------------------------------------------------------------------------------------------------- - -#ifndef ADLX_IGPUAUTOTUNING_H -#define ADLX_IGPUAUTOTUNING_H -#pragma once - -#include "ADLXStructures.h" - -//------------------------------------------------------------------------------------------------- -//IGPUAutoTuning.h - Interfaces for ADLX GPU Auto Tuning functionality - -//Interface with information on GPU Tuning changes on a GPU. ADLX passes this to application that registered for GPU Tuning changed event in the IADLXAutomaticTuningChangedListener::OnAutomaticTuningChanged() -#pragma region IADLXGPUAutoTuningCompleteEvent - -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLXGPUAutoTuningCompleteEvent : public IADLXInterface - { - public: - ADLX_DECLARE_IID (L"IADLXGPUAutoTuningCompleteEvent") - - /** - *@page DOX_IADLXGPUAutoTuningCompleteEvent_IsUndervoltGPUCompleted IsUndervoltGPUCompleted - *@ENG_START_DOX @brief Checks if the GPU undervolting is completed. @ENG_END_DOX - * - *@syntax - *@codeStart - * adlx_bool IsUndervoltGPUCompleted () - *@codeEnd - * - *@params - *N/A - * - *@retvalues - *@ENG_START_DOX If the GPU undervolting is completed, __true__ is returned.
- * If the GPU undervolting is not completed, __false__ is returned.
@ENG_END_DOX - * - *@copydoc IADLXGPUAutoTuningCompleteEvent_REQ_TABLE - * - */ - virtual adlx_bool ADLX_STD_CALL IsUndervoltGPUCompleted () = 0; - - /** - *@page DOX_IADLXGPUAutoTuningCompleteEvent_IsOverclockGPUCompleted IsOverclockGPUCompleted - *@ENG_START_DOX @brief Checks if the GPU overclocking is completed. @ENG_END_DOX - * - *@syntax - *@codeStart - * adlx_bool IsOverclockGPUCompleted () - *@codeEnd - * - *@params - *N/A - * - *@retvalues - *@ENG_START_DOX If the GPU overclocking is completed, __true__ is returned.
- * If the GPU overclocking is not completed, __false__ is returned.
@ENG_END_DOX - * - *@copydoc IADLXGPUAutoTuningCompleteEvent_REQ_TABLE - * - */ - virtual adlx_bool ADLX_STD_CALL IsOverclockGPUCompleted () = 0; - - /** - *@page DOX_IADLXGPUAutoTuningCompleteEvent_IsOverclockVRAMCompleted IsOverclockVRAMCompleted - *@ENG_START_DOX @brief Checks if the VRAM overclocking is completed. @ENG_END_DOX - * - *@syntax - *@codeStart - * adlx_bool IsOverclockVRAMCompleted () - *@codeEnd - * - *@params - *N/A - * - *@retvalues - *@ENG_START_DOX If the VRAM undervolting is completed, __true__ is returned.
- * If the VRAM undervolting is not completed, __false__ is returned.
@ENG_END_DOX - * - *@copydoc IADLXGPUAutoTuningCompleteEvent_REQ_TABLE - * - */ - virtual adlx_bool ADLX_STD_CALL IsOverclockVRAMCompleted () = 0; - }; //IADLXGPUAutoTuningCompleteEvent - //---------------------------------------------------------------------------------------------- - typedef IADLXInterfacePtr_T IADLXGPUAutoTuningCompleteEventPtr; -} //namespace adlx -#else //__cplusplus -ADLX_DECLARE_IID (IADLXGPUAutoTuningCompleteEvent, L"IADLXGPUAutoTuningCompleteEvent") -typedef struct IADLXGPUAutoTuningCompleteEvent IADLXGPUAutoTuningCompleteEvent; - -typedef struct IADLXGPUAutoTuningCompleteEventVtbl -{ - //IADLXInterface - adlx_long (ADLX_STD_CALL *Acquire)(IADLXGPUAutoTuningCompleteEvent* pThis); - adlx_long (ADLX_STD_CALL *Release)(IADLXGPUAutoTuningCompleteEvent* pThis); - ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLXGPUAutoTuningCompleteEvent* pThis, const wchar_t* interfaceId, void** ppInterface); - - // IADLXGPUAutoTuningCompleteEvent interface - adlx_bool (ADLX_STD_CALL *IsUndervoltGPUCompleted)(IADLXGPUAutoTuningCompleteEvent* pThis); - adlx_bool (ADLX_STD_CALL *IsOverclockGPUCompleted)(IADLXGPUAutoTuningCompleteEvent* pThis); - adlx_bool (ADLX_STD_CALL *IsOverclockVRAMCompleted)(IADLXGPUAutoTuningCompleteEvent* pThis); -} IADLXGPUAutoTuningCompleteEventVtbl; - -struct IADLXGPUAutoTuningCompleteEvent { const IADLXGPUAutoTuningCompleteEventVtbl *pVtbl; }; -#endif //__cplusplus -#pragma endregion IADLXGPUAutoTuningCompleteEvent - -//GPU Auto Tuning complete listener interface. To be implemented in application and passed in IADLXGPUTuningChangedHandling::IADLXGPUTuningChangedListener() -#pragma region IADLXGPUAutoTuningCompleteListener -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLXGPUAutoTuningCompleteListener - { - public: - /** - *@page DOX_IADLXGPUAutoTuningCompleteListener_OnGPUAutoTuningComplete OnGPUAutoTuningComplete - *@ENG_START_DOX @brief The __OnGPUAutoTuningComplete__ is called by ADLX when GPU tuning completes. @ENG_END_DOX - * - *@syntax - *@codeStart - * adlx_bool OnGPUAutoTuningComplete (@ref DOX_IADLXGPUAutoTuningCompleteEvent* pGPUAutoTuningCompleteEvent) - *@codeEnd - * - *@params - *@paramrow{1.,[in] ,pGPUAutoTuningCompleteEvent,@ref DOX_IADLXGPUAutoTuningCompleteEvent* ,@ENG_START_DOX The pointer to a GPU tuning complete event. @ENG_END_DOX} - * - * - *@retvalues - *@ENG_START_DOX If the application requires ADLX to continue notifying the next listener, __true__ must be returned.
- * If the application requires ADLX to stop notifying the next listener, __false__ must be returned.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX Once the application registers to the notifications with @ref DOX_IADLXGPUAutoTuning_StartUndervoltGPU, @ref DOX_IADLXGPUAutoTuning_StartOverclockGPU, and @ref DOX_IADLXGPUAutoTuning_StartOverclockVRAM, ADLX will call this method when GPU tuning completes. - * The method should return quickly to not block the execution path in ADLX. If the method requires a long processing of the event notification, the application must hold onto a reference to the GPU tuning complete event with @ref DOX_IADLXInterface_Acquire and make it available on an asynchronous thread and return immediately. When the asynchronous thread is done processing it must discard the GPU tuning complete event with @ref DOX_IADLXInterface_Release. @ENG_END_DOX - * - * - *@copydoc IADLXGPUAutoTuningCompleteListener_REQ_TABLE - * - */ - virtual adlx_bool ADLX_STD_CALL OnGPUAutoTuningComplete (IADLXGPUAutoTuningCompleteEvent* pGPUAutoTuningCompleteEvent) = 0; - }; //IADLXGPUAutoTuningCompleteListener -} //namespace adlx -#else //__cplusplus -typedef struct IADLXGPUAutoTuningCompleteListener IADLXGPUAutoTuningCompleteListener; - -typedef struct IADLXGPUAutoTuningCompleteListenerVtbl -{ - // IADLXGPUAutoTuningCompleteListener interface - adlx_bool (ADLX_STD_CALL *OnGPUAutoTuningComplete)(IADLXGPUAutoTuningCompleteListener* pThis, IADLXGPUAutoTuningCompleteEvent* pGPUAutoTuningCompleteEvent); -} IADLXGPUAutoTuningCompleteListenerVtbl; - -struct IADLXGPUAutoTuningCompleteListener { const IADLXGPUAutoTuningCompleteListenerVtbl *pVtbl; }; -#endif //__cplusplus -#pragma endregion IADLXGPUAutoTuningCompleteListener - -// Automatic Tuning -#pragma region IADLXGPUAutoTuning -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLXGPUAutoTuning : public IADLXInterface - { - public: - ADLX_DECLARE_IID (L"IADLXGPUAutoTuning") - /** - *@page DOX_IADLXGPUAutoTuning_IsSupportedUndervoltGPU IsSupportedUndervoltGPU - *@ENG_START_DOX @brief Checks if the GPU undervolting tuning profile is supported on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupportedUndervoltGPU (adlx_bool* supported) - *@codeEnd - * - *@params - *@paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of GPU undervolting is returned. The variable is __true__ if GPU undervolting is supported. The variable is __false__ if GPU undervolting is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of GPU undervolting is successfully returned, __ADLX_OK__ is returned.
- * If the state of GPU undervolting is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * GPU undervolting reduces voltage and maintains clock speed to improve performance per watt. - * @ENG_END_DOX - * - *@copydoc IADLXGPUAutoTuning_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupportedUndervoltGPU (adlx_bool* supported) = 0; - - /** - *@page DOX_IADLXGPUAutoTuning_IsSupportedOverclockGPU IsSupportedOverclockGPU - *@ENG_START_DOX @brief Checks if the GPU overclocking tuning profile is supported on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupportedOverclockGPU (adlx_bool* supported) - *@codeEnd - * - *@params - *@paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of GPU overclocking is returned. The variable is __true__ if GPU overclocking is supported. The variable is __false__ if GPU overclocking is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of GPU overclocking is successfully returned, __ADLX_OK__ is returned.
- * If the state of GPU overclocking is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * Automatic GPU overclocking uses an overclocking algorithm to improve GPU performance. - * @ENG_END_DOX - * - *@copydoc IADLXGPUAutoTuning_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupportedOverclockGPU (adlx_bool* supported) = 0; - - /** - *@page DOX_IADLXGPUAutoTuning_IsSupportedOverclockVRAM IsSupportedOverclockVRAM - *@ENG_START_DOX @brief Checks if the VRAM overclocking tuning profile is supported on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupportedOverclockVRAM (adlx_bool* supported) - *@codeEnd - * - *@params - *@paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of VRAM overclocking is returned. The variable is __true__ if VRAM overclocking is supported. The variable is __false__ if VRAM overclocking is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of VRAM overclocking is successfully returned, __ADLX_OK__ is returned.
- * If the state of VRAM overclocking is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * Automatic VRAM overclocking uses an overclocking algorithm to improve video memory performance. - * @ENG_END_DOX - * - *@copydoc IADLXGPUAutoTuning_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupportedOverclockVRAM (adlx_bool* supported) = 0; - - /** - *@page DOX_IADLXGPUAutoTuning_IsCurrentUndervoltGPU IsCurrentUndervoltGPU - *@ENG_START_DOX @brief Checks if the GPU undervolting tuning profile is currently enabled on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsCurrentUndervoltGPU (adlx_bool* isUndervoltGPU) - *@codeEnd - * - *@params - *@paramrow{1.,[out],isUndervoltGPU,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of GPU undervolting is returned. The variable is __true__ if GPU undervolting is applied. The variable is __false__ if GPU undervolting is not applied. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of GPU undervolting is successfully returned, __ADLX_OK__ is returned.
- * If the state of GPU undervolting is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * GPU undervolting reduces voltage and maintains clock speed to improve performance per watt. - * @ENG_END_DOX - * - *@copydoc IADLXGPUAutoTuning_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsCurrentUndervoltGPU (adlx_bool* isUndervoltGPU) = 0; - - /** - *@page DOX_IADLXGPUAutoTuning_IsCurrentOverclockGPU IsCurrentOverclockGPU - *@ENG_START_DOX @brief Checks if the GPU overclocking tuning profile is currently enabled on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsCurrentOverclockGPU (adlx_bool* isOverclockGPU) - *@codeEnd - * - *@params - *@paramrow{1.,[out],isOverclockGPU,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of GPU overclocking is returned. The variable is __true__ if GPU overclocking is applied. The variable is __false__ if GPU overclocking is not applied. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of GPU overclocking is successfully returned, __ADLX_OK__ is returned.
- * If the state of GPU overclocking is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * Automatic GPU overclocking uses an overclocking algorithm to improve GPU performance. - * @ENG_END_DOX - * - *@copydoc IADLXGPUAutoTuning_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsCurrentOverclockGPU (adlx_bool* isOverclockGPU) = 0; - - /** - *@page DOX_IADLXGPUAutoTuning_IsCurrentOverclockVRAM IsCurrentOverclockVRAM - *@ENG_START_DOX @brief Checks if the VRAM overclocking tuning profile is currently enabled on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsCurrentOverclockVRAM (adlx_bool* isOverclockVRAM) - *@codeEnd - * - *@params - *@paramrow{1.,[out],isOverclockVRAM,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of VRAM overclocking is returned. The variable is __true__ if VRAM overclocking is applied. The variable is __false__ if VRAM overclocking is not applied. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of VRAM overclocking is successfully returned, __ADLX_OK__ is returned.
- * If the state of VRAM overclocking is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * Automatic VRAM overclocking uses an overclocking algorithm to improve video memory performance. - * @ENG_END_DOX - * - *@copydoc IADLXGPUAutoTuning_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsCurrentOverclockVRAM (adlx_bool* isOverclockVRAM) = 0; - - /** - *@page DOX_IADLXGPUAutoTuning_StartUndervoltGPU StartUndervoltGPU - *@ENG_START_DOX @brief Starts GPU undervolting on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT StartUndervoltGPU (@ref DOX_IADLXGPUAutoTuningCompleteListener* pCompleteListener) - *@codeEnd - * - *@params - *@paramrow{1.,[in],pCompleteListener,@ref DOX_IADLXGPUAutoTuningCompleteListener*,@ENG_START_DOX The pointer to a GPU tuning complete listener interface. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the GPU undervolting is successfully started, __ADLX_OK__ is returned.
- * If the GPU undervolting is not successfully started, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details - *The __StartUndervoltGPU__ method triggers an asynchronous execution for the autotuning and returns immediately. When the autotuning is completed, ADLX calls @ref DOX_IADLXGPUAutoTuningCompleteListener_OnGPUAutoTuningComplete in the GPU tuning complete listener. After the event is raised, @ref DOX_IADLXGPUAutoTuning_IsCurrentUndervoltGPU returns __true__. @ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * GPU undervolting reduces voltage and maintains clock speed to improve performance per watt. - * @ENG_END_DOX - * - *@copydoc IADLXGPUAutoTuning_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL StartUndervoltGPU (IADLXGPUAutoTuningCompleteListener* pCompleteListener) = 0; - - /** - *@page DOX_IADLXGPUAutoTuning_StartOverclockGPU StartOverclockGPU - *@ENG_START_DOX @brief Starts GPU overclocking on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT StartOverclockGPU (@ref DOX_IADLXGPUAutoTuningCompleteListener* pCompleteListener) - *@codeEnd - * - *@params - *@paramrow{1.,[in],pCompleteListener,@ref DOX_IADLXGPUAutoTuningCompleteListener*,@ENG_START_DOX The pointer to a GPU tuning complete listener interface. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the GPU overclocking is successfully started, __ADLX_OK__ is returned.
- * If the GPU overclocking is not successfully started, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details - * The __StartOverclockGPU__ method triggers an asynchronous execution for the autotuning and returns immediately. When the autotuning is completed, ADLX calls @ref DOX_IADLXGPUAutoTuningCompleteListener_OnGPUAutoTuningComplete in the GPU tuning complete listener. After the event is raised, @ref DOX_IADLXGPUAutoTuning_IsCurrentOverclockGPU returns __true__. @ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * Automatic GPU overclocking uses an overclocking algorithm to improve GPU performance. - * @ENG_END_DOX - * - *@copydoc IADLXGPUAutoTuning_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL StartOverclockGPU (IADLXGPUAutoTuningCompleteListener* pCompleteListener) = 0; - - /** - *@page DOX_IADLXGPUAutoTuning_StartOverclockVRAM StartOverclockVRAM - *@ENG_START_DOX @brief Start VRAM overclocking on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT StartOverclockVRAM (@ref DOX_IADLXGPUAutoTuningCompleteListener* pCompleteListener) - *@codeEnd - * - *@params - *@paramrow{1.,[in],pCompleteListener,@ref DOX_IADLXGPUAutoTuningCompleteListener*,@ENG_START_DOX The pointer to a GPU tuning complete listener interface. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the VRAM overclocking is successfully started, __ADLX_OK__ is returned.
- * If the VRAM overclocking is not successfully started, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details - * The __StartOverclockVRAM__ method triggers an asynchronous execution for the autotuning and returns immediately. When the autotuning is completed, ADLX calls @ref DOX_IADLXGPUAutoTuningCompleteListener_OnGPUAutoTuningComplete in the GPU tuning complete listener. After the event is raised, @ref DOX_IADLXGPUAutoTuning_IsCurrentOverclockVRAM returns __true__. @ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * Automatic VRAM overclocking uses an overclocking algorithm to improve video memory performance. - * @ENG_END_DOX - * - *@copydoc IADLXGPUAutoTuning_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL StartOverclockVRAM (IADLXGPUAutoTuningCompleteListener* pCompleteListener) = 0; - }; - //---------------------------------------------------------------------------------------------- - typedef IADLXInterfacePtr_T IADLXGPUAutoTuningPtr; -} //namespace adlx -#else //__cplusplus -ADLX_DECLARE_IID (IADLXGPUAutoTuning, L"IADLXGPUAutoTuning") - -typedef struct IADLXGPUAutoTuning IADLXGPUAutoTuning; - -typedef struct IADLXGPUAutoTuningVtbl -{ - //IADLXInterface - adlx_long (ADLX_STD_CALL *Acquire)(IADLXGPUAutoTuning* pThis); - adlx_long (ADLX_STD_CALL *Release)(IADLXGPUAutoTuning* pThis); - ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLXGPUAutoTuning* pThis, const wchar_t* interfaceId, void** ppInterface); - - //IADLXGPUAutoTuning - ADLX_RESULT (ADLX_STD_CALL *IsSupportedUndervoltGPU)(IADLXGPUAutoTuning* pThis, adlx_bool* supported); - ADLX_RESULT (ADLX_STD_CALL *IsSupportedOverclockGPU)(IADLXGPUAutoTuning* pThis, adlx_bool* supported); - ADLX_RESULT (ADLX_STD_CALL *IsSupportedOverclockVRAM)(IADLXGPUAutoTuning* pThis, adlx_bool* supported); - - ADLX_RESULT (ADLX_STD_CALL *IsCurrentUndervoltGPU)(IADLXGPUAutoTuning* pThis, adlx_bool* isUndervoltGPU); - ADLX_RESULT (ADLX_STD_CALL *IsCurrentOverclockGPU)(IADLXGPUAutoTuning* pThis, adlx_bool* isOverclockGPU); - ADLX_RESULT (ADLX_STD_CALL *IsCurrentOverclockVRAM)(IADLXGPUAutoTuning* pThis, adlx_bool* isOverclockVRAM); - - ADLX_RESULT (ADLX_STD_CALL *StartUndervoltGPU)(IADLXGPUAutoTuning* pThis, IADLXGPUAutoTuningCompleteListener* pCompleteListener); - ADLX_RESULT (ADLX_STD_CALL *StartOverclockGPU)(IADLXGPUAutoTuning* pThis, IADLXGPUAutoTuningCompleteListener* pCompleteListener); - ADLX_RESULT (ADLX_STD_CALL *StartOverclockVRAM)(IADLXGPUAutoTuning* pThis, IADLXGPUAutoTuningCompleteListener* pCompleteListener); - -}IADLXGPUAutoTuningVtbl; - -struct IADLXGPUAutoTuning { const IADLXGPUAutoTuningVtbl *pVtbl; }; -#endif //__cplusplus -#pragma endregion IADLXGPUAutoTuning - -#endif//ADLX_IGPUAUTOTUNING_H diff --git a/src/adlx/sdk/Include/IGPUManualFanTuning.h b/src/adlx/sdk/Include/IGPUManualFanTuning.h deleted file mode 100644 index 15acf47..0000000 --- a/src/adlx/sdk/Include/IGPUManualFanTuning.h +++ /dev/null @@ -1,819 +0,0 @@ -// -// Copyright (c) 2021 - 2023 Advanced Micro Devices, Inc. All rights reserved. -// -//------------------------------------------------------------------------------------------------- - -#ifndef ADLX_IGPUMANUALFANTUNING_H -#define ADLX_IGPUMANUALFANTUNING_H -#pragma once - -#include "ADLXStructures.h" -#include "ICollections.h" - -//------------------------------------------------------------------------------------------------- -//IGPUManualFanTuning.h - Interfaces for ADLX GPU Manual Fan Tuning functionality - -//Manual Tuning interface -#pragma region IADLXManualFanTuningState -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLXManualFanTuningState : public IADLXInterface - { - public: - ADLX_DECLARE_IID (L"IADLXManualFanTuningState") - - /** - * @page DOX_IADLXManualFanTuningState_GetFanSpeed GetFanSpeed - * @ENG_START_DOX - * @brief Gets the fan speed in the manual fan tuning state. - * @ENG_END_DOX - * - * @syntax - * @codeStart - * @ref ADLX_RESULT GetFanSpeed (adlx_int* value) - * @codeEnd - * - * @params - * @paramrow{1.,[out] ,value,adlx_uint* ,@ENG_START_DOX The pointer to a variable where the fan speed (in %) is returned. @ENG_END_DOX} - * - * @retvalues - * @ENG_START_DOX - * If the fan speed is successfully returned, __ADLX_OK__ is returned.
- * If the fan speed is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
- * @ENG_END_DOX - * - * @copydoc IADLXManualFanTuningState_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetFanSpeed (adlx_int* value) = 0; - - /** - *@page DOX_IADLXManualFanTuningState_SetFanSpeed SetFanSpeed - *@ENG_START_DOX @brief Sets the fan speed in the manual fan tuning state. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetFanSpeed (adlx_int value) - *@codeEnd - * - * @params - * @paramrow{1.,[in] ,value,adlx_int ,@ENG_START_DOX The new fan speed value (in %). @ENG_END_DOX} - * - * @retvalues - * @ENG_START_DOX - * If the fan speed is successfully set, __ADLX_OK__ is returned.
- * If the fan speed is not successfully set, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
- * @ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details Method for applying fan speed for the fan tuning state. @ENG_END_DOX - * - *@copydoc IADLXManualFanTuningState_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetFanSpeed (adlx_int value) = 0; - - /** - * @page DOX_IADLXManualFanTuningState_GetTemperature GetTemperature - * @ENG_START_DOX - * @brief Gets the temperature in the manual fan tuning state. - * @ENG_END_DOX - * - * @syntax - * @codeStart - * @ref ADLX_RESULT GetTemperature (adlx_uint* value) - * @codeEnd - * - * @params - * @paramrow{1.,[out] ,value,adlx_uint* ,@ENG_START_DOX The pointer to a variable where the temperature (in °C) is returned. @ENG_END_DOX} - * - * @retvalues - * @ENG_START_DOX - * If the temperature is successfully returned, __ADLX_OK__ is returned.
- * If the temperature is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
- * @ENG_END_DOX - * - * @copydoc IADLXManualFanTuningState_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetTemperature (adlx_int* value) = 0; - - /** - *@page DOX_IADLXManualFanTuningState_SetTemperature SetTemperature - *@ENG_START_DOX @brief Sets the temperature in the manual fan tuning state. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetTemperature (adlx_int value) - *@codeEnd - * - * @params - * @paramrow{1.,[in] ,value,adlx_int ,@ENG_START_DOX The new temperature value (in °C). @ENG_END_DOX} - * - * @retvalues - * @ENG_START_DOX - * If the temperature is successfully set, __ADLX_OK__ is returned.
- * If the temperature is not successfully set, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
- * @ENG_END_DOX - * - *@copydoc IADLXManualFanTuningState_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetTemperature (adlx_int value) = 0; - }; - //---------------------------------------------------------------------------------------------- - typedef IADLXInterfacePtr_T IADLXManualFanTuningStatePtr; -} //namespace adlx -#else //__cplusplus -ADLX_DECLARE_IID (IADLXManualFanTuningState, L"IADLXManualFanTuningState") - -typedef struct IADLXManualFanTuningState IADLXManualFanTuningState; - -typedef struct IADLXManualFanTuningStateVtbl -{ - //IADLXInterface - adlx_long (ADLX_STD_CALL *Acquire)(IADLXManualFanTuningState* pThis); - adlx_long (ADLX_STD_CALL *Release)(IADLXManualFanTuningState* pThis); - ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLXManualFanTuningState* pThis, const wchar_t* interfaceId, void** ppInterface); - - //IADLXManualFanTuningState - ADLX_RESULT (ADLX_STD_CALL *GetFanSpeed)(IADLXManualFanTuningState* pThis, adlx_int* value); - ADLX_RESULT (ADLX_STD_CALL *SetFanSpeed)(IADLXManualFanTuningState* pThis, adlx_int value); - ADLX_RESULT (ADLX_STD_CALL *GetTemperature)(IADLXManualFanTuningState* pThis, adlx_int* value); - ADLX_RESULT (ADLX_STD_CALL *SetTemperature)(IADLXManualFanTuningState* pThis, adlx_int value); -}IADLXManualFanTuningStateVtbl; - -struct IADLXManualFanTuningState { const IADLXManualFanTuningStateVtbl *pVtbl; }; -#endif //__cplusplus -#pragma endregion IADLXManualFanTuningState - -//IADLXManualFanTuningState list interface -#pragma region IADLXManualFanTuningStateList -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLXManualFanTuningStateList : public IADLXList - { - public: - ADLX_DECLARE_IID (L"IADLXManualFanTuningStateList") - //Lists must declare the type of items it holds - what was passed as ADLX_DECLARE_IID() in that interface - ADLX_DECLARE_ITEM_IID (IADLXManualFanTuningState::IID ()) - - /** - * @page DOX_IADLXManualFanTuningStateList_At At - * @ENG_START_DOX - * @brief Returns the reference counted interface at the requested location. - * @ENG_END_DOX - * - * @syntax - * @codeStart - * @ref ADLX_RESULT At (const adlx_uint location, @ref DOX_IADLXManualFanTuningState** ppItem) - * @codeEnd - * - * @params - * @paramrow{1.,[in] ,location,const adlx_uint ,@ENG_START_DOX The location of the requested interface. @ENG_END_DOX} - * @paramrow{2.,[out] ,ppItem,@ref DOX_IADLXManualFanTuningState** ,@ENG_START_DOX The address of a pointer to the returned interface. If the interface is not successfully returned then the method sets the dereferenced address __*ppItem__ to __nullptr__. @ENG_END_DOX} - * - * @retvalues - * @ENG_START_DOX - * If the location is within the list bounds, __ADLX_OK__ is returned.
- * If the location is not within the list bounds, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
- * @ENG_END_DOX - * - * @detaileddesc - * @ENG_START_DOX - * @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. - * @ENG_END_DOX - * - * @addinfo - * @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 - * - * @copydoc IADLXManualFanTuningStateList_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL At (const adlx_uint location, IADLXManualFanTuningState** ppItem) = 0; - /** - *@page DOX_IADLXManualFanTuningStateList_Add_Back Add_Back - *@ENG_START_DOX @brief Adds an interface to the end of a list. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT Add_Back (@ref DOX_IADLXManualFanTuningState* pItem) - *@codeEnd - * - *@params - *@paramrow{1.,[in] ,pItem,@ref DOX_IADLXManualFanTuningState* ,@ENG_START_DOX The pointer to the interface to be added to the list. @ENG_END_DOX} - * - * @retvalues - * @ENG_START_DOX - * If the interface is added successfully to the end of the list, __ADLX_OK__ is returned.
- * If the interface is not added to the end of the list, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
- * @ENG_END_DOX - * - *@copydoc IADLXManualFanTuningStateList_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL Add_Back (IADLXManualFanTuningState* pItem) = 0; - }; //IADLXManualFanTuningStateList - //---------------------------------------------------------------------------------------------- - typedef IADLXInterfacePtr_T IADLXManualFanTuningStateListPtr; -} //namespace adlx -#else //__cplusplus -ADLX_DECLARE_IID (IADLXManualFanTuningStateList, L"IADLXManualFanTuningStateList") -ADLX_DECLARE_ITEM_IID (IADLXManualFanTuningState, IID_IADLXManualFanTuningState ()) - -typedef struct IADLXManualFanTuningStateList IADLXManualFanTuningStateList; - -typedef struct IADLXManualFanTuningStateListVtbl -{ - //IADLXInterface - adlx_long (ADLX_STD_CALL *Acquire)(IADLXManualFanTuningStateList* pThis); - adlx_long (ADLX_STD_CALL *Release)(IADLXManualFanTuningStateList* pThis); - ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLXManualFanTuningStateList* pThis, const wchar_t* interfaceId, void** ppInterface); - - //IADLXList - adlx_uint (ADLX_STD_CALL *Size)(IADLXManualFanTuningStateList* pThis); - adlx_bool (ADLX_STD_CALL *Empty)(IADLXManualFanTuningStateList* pThis); - adlx_uint (ADLX_STD_CALL *Begin)(IADLXManualFanTuningStateList* pThis); - adlx_uint (ADLX_STD_CALL *End)(IADLXManualFanTuningStateList* pThis); - ADLX_RESULT (ADLX_STD_CALL *At)(IADLXManualFanTuningStateList* pThis, const adlx_uint location, IADLXInterface** ppItem); - ADLX_RESULT (ADLX_STD_CALL *Clear)(IADLXManualFanTuningStateList* pThis); - ADLX_RESULT (ADLX_STD_CALL *Remove_Back)(IADLXManualFanTuningStateList* pThis); - ADLX_RESULT (ADLX_STD_CALL *Add_Back)(IADLXManualFanTuningStateList* pThis, IADLXInterface* pItem); - - //IADLXManualFanTuningStateList - ADLX_RESULT (ADLX_STD_CALL *At_ManualFanTuningStateList)(IADLXManualFanTuningStateList* pThis, const adlx_uint location, IADLXManualFanTuningState** ppItem); - ADLX_RESULT (ADLX_STD_CALL *Add_Back_ManualFanTuningStateList)(IADLXManualFanTuningStateList* pThis, IADLXManualFanTuningState* pItem); - -}IADLXManualFanTuningStateListVtbl; - -struct IADLXManualFanTuningStateList { const IADLXManualFanTuningStateListVtbl *pVtbl; }; -#endif //__cplusplus -#pragma endregion IADLXManualFanTuningStateList - -// Manual FAN Tuning -#pragma region IADLXManualFanTuning -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLXManualFanTuning : public IADLXInterface - { - public: - ADLX_DECLARE_IID (L"IADLXManualFanTuning") - - /** - *@page DOX_IADLXManualFanTuning_GetFanTuningRanges GetFanTuningRanges - *@ENG_START_DOX @brief Gets the fan speed range and the temperature range on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetFanTuningRanges (@ref ADLX_IntRange* speedRange, @ref ADLX_IntRange* temperatureRange) - *@codeEnd - * - *@params - *@paramrow{1.,[out],speedRange,@ref ADLX_IntRange*,@ENG_START_DOX The pointer to a variable where the fan speed range (in %) is returned. @ENG_END_DOX} - *@paramrow{2.,[out],temperatureRange,@ref ADLX_IntRange*,@ENG_START_DOX The pointer to a variable where the temperature range (in °C) is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the fan speed and temperature range is successfully returned, __ADLX_OK__ is returned.
- * If the fan speed and temperature range is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * The fan speed range and the temperature range are applicable to all GPU states on a GPU. - * @ENG_END_DOX - * - *@copydoc IADLXManualFanTuning_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetFanTuningRanges (ADLX_IntRange* speedRange, ADLX_IntRange* temperatureRange) = 0; - - /** - *@page DOX_IADLXManualFanTuning_GetFanTuningStates GetFanTuningStates - *@ENG_START_DOX @brief Gets the reference counted list of current GPU fan tuning states on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetFanTuningStates (@ref DOX_IADLXManualFanTuningStateList** ppStates) - *@codeEnd - * - *@params - *@paramrow{1.,[out],ppStates,@ref DOX_IADLXManualFanTuningStateList**,@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 __*ppStates__ to __nullptr__. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the list of GPU fan tuning states is successfully returned, __ADLX_OK__ is returned.
- * If the list of GPU fan tuning states is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX - * - *@addinfo - *@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 - * - *@copydoc IADLXManualFanTuning_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetFanTuningStates (IADLXManualFanTuningStateList** ppStates) = 0; - - /** - *@page DOX_IADLXManualFanTuning_GetEmptyFanTuningStates GetEmptyFanTuningStates - *@ENG_START_DOX @brief Gets the reference counted list of empty GPU fan tuning states on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetEmptyFanTuningStates (@ref DOX_IADLXManualFanTuningStateList** ppStates) - *@codeEnd - * - *@params - *@paramrow{1.,[out],ppStates,@ref DOX_IADLXManualFanTuningStateList**,@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 __*ppStates__ to __nullptr__. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the list of empty GPU fan tuning states is successfully returned, __ADLX_OK__ is returned.
- * If the list of empty GPU fan tuning states is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX - * - *@addinfo - *@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 - * - *@copydoc IADLXManualFanTuning_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetEmptyFanTuningStates (IADLXManualFanTuningStateList** ppStates) = 0; - - /** - *@page DOX_IADLXManualFanTuning_IsValidFanTuningStates IsValidFanTuningStates - *@ENG_START_DOX @brief Checks if each GPU fan tuning state in a list is valid on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsValidFanTuningStates (@ref DOX_IADLXManualFanTuningStateList* pStates, adlx_int* errorIndex) - *@codeEnd - * - *@params - *@paramrow{1.,[in],pStates,@ref DOX_IADLXManualFanTuningStateList*,@ENG_START_DOX The pointer to the GPU fan tuning states list interface. @ENG_END_DOX} - *@paramrow{2.,[out],errorIndex,adlx_int*,@ENG_START_DOX The pointer to a variable where the invalid states index is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If __IsValidFanTuningStates__ is successfully executed, __ADLX_OK__ is returned.
- * If __IsValidFanTuningStates__ is not successfully executed, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details If the __*pStates__ is valid then the method sets the __errorIndex__ to -1. @ENG_END_DOX - * - *@copydoc IADLXManualFanTuning_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsValidFanTuningStates (IADLXManualFanTuningStateList* pStates, adlx_int* errorIndex) = 0; - - /** - *@page DOX_IADLXManualFanTuning_SetFanTuningStates SetFanTuningStates - *@ENG_START_DOX @brief Sets the fan tuning states on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetFanTuningStates (@ref DOX_IADLXManualFanTuningStateList* pStates) - *@codeEnd - * - *@params - *@paramrow{1.,[in],pStates,@ref DOX_IADLXManualFanTuningStateList*,@ENG_START_DOX The pointer to the GPU states list interface. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the GPU fan tuning states are successfully set, __ADLX_OK__ is returned.
- * If the GPU fan tuning states are not successfully set, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@copydoc IADLXManualFanTuning_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetFanTuningStates (IADLXManualFanTuningStateList* pStates) = 0; - - /** - *@page DOX_IADLXManualFanTuning_IsSupportedZeroRPM IsSupportedZeroRPM - *@ENG_START_DOX @brief Checks if zero RPM is supported on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupportedZeroRPM (adlx_bool* supported) - *@codeEnd - * - *@params - *@paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of zero RPM feature is returned. The variable is __true__ if zero RPM feature is supported. The variable is __false__ if zero RPM feature is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of zero RPM feature is successfully returned, __ADLX_OK__ is returned.
- * If the state of zero RPM feature is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * Zero RPM enables quiet operation when the GPU is under a light load and speeds up the fans when the GPU load and temperature increases. - * @ENG_END_DOX - * - *@copydoc IADLXManualFanTuning_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupportedZeroRPM (adlx_bool* supported) = 0; - - /** - *@page DOX_IADLXManualFanTuning_GetZeroRPMState GetZeroRPMState - *@ENG_START_DOX @brief Checks if zero RPM is currently activated on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetZeroRPMState (adlx_bool* isSet) - *@codeEnd - * - *@params - *@paramrow{1.,[out],isSet,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of zero RPM is returned. The variable is __true__ if zero RPM is enabled. The variable is __false__ if zero RPM is not enabled. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of zero RPM is successfully returned, __ADLX_OK__ is returned.
- * If the state of zero RPM is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * Zero RPM enables quiet operation when the GPU is under a light load and speeds up the fans when the GPU load and temperature increases. - * @ENG_END_DOX - * - *@copydoc IADLXManualFanTuning_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetZeroRPMState (adlx_bool* isSet) = 0; - - /** - *@page DOX_IADLXManualFanTuning_SetZeroRPMState SetZeroRPMState - *@ENG_START_DOX @brief Enables or disables zero RPM on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetZeroRPMState (adlx_bool set) - *@codeEnd - * - *@params - *@paramrow{1.,[in],isSet,adlx_bool,@ENG_START_DOX The new zero RPM state. Set __true__ to enable zero RPM. Set __false__ to disable zero RPM. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of zero RPM is successfully set, __ADLX_OK__ is returned.
- * If the state of zero RPM is not successfully set, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * Zero RPM enables quiet operation when the GPU is under a light load and speeds up the fans when the GPU load and temperature increases. - * @ENG_END_DOX - * - *@copydoc IADLXManualFanTuning_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetZeroRPMState (adlx_bool set) = 0; - - /** - *@page DOX_IADLXManualFanTuning_IsSupportedMinAcousticLimit IsSupportedMinAcousticLimit - *@ENG_START_DOX @brief Checks if the minimum acoustic limit is supported on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupportedMinAcousticLimit (adlx_bool* supported) - *@codeEnd - * - *@params - *@paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of min acoustic limit feature is returned. The variable is __true__ if min acoustic limit feature is supported. The variable is __false__ if min acoustic limit feature is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of min acoustic limit feature is successfully returned, __ADLX_OK__ is returned.
- * If the state of min acoustic limit feature is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * Some GPUs support Minimum Acoustic Limit adjustments (in MHz). - * @ENG_END_DOX - * - *@copydoc IADLXManualFanTuning_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupportedMinAcousticLimit (adlx_bool* supported) = 0; - - /** - *@page DOX_IADLXManualFanTuning_GetMinAcousticLimitRange GetMinAcousticLimitRange - *@ENG_START_DOX @brief Gets the maximum value, minimum value, and step for the minimum acoustic limit on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetMinAcousticLimitRange (@ref ADLX_IntRange* tuningRange) - *@codeEnd - * - *@params - *@paramrow{1.,[out],tuningRange,@ref ADLX_IntRange*,@ENG_START_DOX The pointer to a variable where the min acoustic limit range (in MHz) is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the min acoustic limit range is successfully returned, __ADLX_OK__ is returned.
- * If the min acoustic limit range is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * Some GPUs support Minimum Acoustic Limit adjustments (in MHz). - * @ENG_END_DOX - * - *@copydoc IADLXManualFanTuning_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetMinAcousticLimitRange (ADLX_IntRange* tuningRange) = 0; - - /** - *@page DOX_IADLXManualFanTuning_GetMinAcousticLimit GetMinAcousticLimit - *@ENG_START_DOX @brief Gets the current minimum acoustic limit on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetMinAcousticLimit (adlx_int* value) - *@codeEnd - * - *@params - *@paramrow{1.,[out],value,adlx_int*,@ENG_START_DOX The pointer to a variable where the min acoustic limit value (in MHz) is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the min acoustic limit value is successfully returned, __ADLX_OK__ is returned.
- * If the min acoustic limit value is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * Some GPUs support Minimum Acoustic Limit adjustments (in MHz). - * @ENG_END_DOX - * - *@copydoc IADLXManualFanTuning_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetMinAcousticLimit (adlx_int* value) = 0; - - /** - *@page DOX_IADLXManualFanTuning_SetMinAcousticLimit SetMinAcousticLimit - *@ENG_START_DOX @brief Sets the minimum acoustic limit on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetMinAcousticLimit (adlx_int value) - *@codeEnd - * - *@params - *@paramrow{1.,[in],value,adlx_int,@ENG_START_DOX The new min acoustic limit (in MHz). @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the min acoustic limit value is successfully set, __ADLX_OK__ is returned.
- * If the min acoustic limit value is not successfully set, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * Some GPUs support Minimum Acoustic Limit adjustments (in MHz). - * @ENG_END_DOX - * - *@copydoc IADLXManualFanTuning_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetMinAcousticLimit (adlx_int value) = 0; - - /** - *@page DOX_IADLXManualFanTuning_IsSupportedMinFanSpeed IsSupportedMinFanSpeed - *@ENG_START_DOX @brief Checks if the minimum fan speed is supported on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupportedMinFanSpeed (adlx_bool* supported) - *@codeEnd - * - *@params - *@paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of minimum fan speed feature is returned. The variable is __true__ if minimum fan speed feature is supported. The variable is __false__ if minimum fan speed feature is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of minimum fan speed feature is successfully returned, __ADLX_OK__ is returned.
- * If the state of minimum fan speed feature is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * - *@copydoc IADLXManualFanTuning_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupportedMinFanSpeed (adlx_bool* supported) = 0; - - /** - *@page DOX_IADLXManualFanTuning_GetMinFanSpeedRange GetMinFanSpeedRange - *@ENG_START_DOX @brief Gets the maximum value, minimum value, and step for the minimum fan speed on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetMinFanSpeedRange (@ref ADLX_IntRange* tuningRange) - *@codeEnd - * - *@params - *@paramrow{1.,[out],tuningRange,@ref ADLX_IntRange*,@ENG_START_DOX The pointer to a variable where the minimum fan speed range (in RPM) is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the minimum fan speed range is successfully returned, __ADLX_OK__ is returned.
- * If the minimum fan speed range is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * - *@copydoc IADLXManualFanTuning_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetMinFanSpeedRange (ADLX_IntRange* tuningRange) = 0; - - /** - *@page DOX_IADLXManualFanTuning_GetMinFanSpeed GetMinFanSpeed - *@ENG_START_DOX @brief Gets the current minimum fan speed on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetMinFanSpeed (adlx_int* value) - *@codeEnd - * - *@params - *@paramrow{1.,[out],value,adlx_int*,@ENG_START_DOX The pointer to a variable where the minimum fan speed value (in RPM) is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the minimum fan speed value is successfully returned, __ADLX_OK__ is returned.
- * If the minimum fan speed value is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * Some GPUs support minimum fan speed adjustments (in MHz). - * @ENG_END_DOX - * - *@copydoc IADLXManualFanTuning_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetMinFanSpeed (adlx_int* value) = 0; - - /** - *@page DOX_IADLXManualFanTuning_SetMinFanSpeed SetMinFanSpeed - *@ENG_START_DOX @brief Sets the minimum fan speed on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetMinFanSpeed (adlx_int value) - *@codeEnd - * - *@params - *@paramrow{1.,[in],value,adlx_int,@ENG_START_DOX The new minimum fan speed (in RPM). @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the minimum fan speed value is successfully set, __ADLX_OK__ is returned.
- * If the minimum fan speed value is not successfully set, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@copydoc IADLXManualFanTuning_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetMinFanSpeed (adlx_int value) = 0; - - /** - *@page DOX_IADLXManualFanTuning_IsSupportedTargetFanSpeed IsSupportedTargetFanSpeed - *@ENG_START_DOX @brief Checks if the target fan speed is supported on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupportedTargetFanSpeed (adlx_bool* supported) - *@codeEnd - * - *@params - *@paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of target fan speed feature is returned. The variable is __true__ if target fan speed feature is supported. The variable is __false__ if target fan speed feature is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of target fan speed feature is successfully returned, __ADLX_OK__ is returned.
- * If the state of target fan speed feature is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@copydoc IADLXManualFanTuning_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupportedTargetFanSpeed (adlx_bool* supported) = 0; - - /** - *@page DOX_IADLXManualFanTuning_GetTargetFanSpeedRange GetTargetFanSpeedRange - *@ENG_START_DOX @brief Gets the maximum value, minimum value, and step for the target fan speed on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetTargetFanSpeedRange (@ref ADLX_IntRange* tuningRange) - *@codeEnd - * - *@params - *@paramrow{1.,[out],tuningRange,@ref ADLX_IntRange*,@ENG_START_DOX The pointer to a variable where the target fan speed range (in RPM) is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the target fan speed range is successfully returned, __ADLX_OK__ is returned.
- * If the target fan speed range is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@copydoc IADLXManualFanTuning_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetTargetFanSpeedRange (ADLX_IntRange* tuningRange) = 0; - - /** - *@page DOX_IADLXManualFanTuning_GetTargetFanSpeed GetTargetFanSpeed - *@ENG_START_DOX @brief Gets the current target fan speed on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetTargetFanSpeed (adlx_int* value) - *@codeEnd - * - *@params - *@paramrow{1.,[out],value,adlx_int*,@ENG_START_DOX The pointer to a variable where the target fan speed value (in RPM) is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the target fan speed value is successfully returned, __ADLX_OK__ is returned.
- * If the target fan speed value is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@copydoc IADLXManualFanTuning_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetTargetFanSpeed (adlx_int* value) = 0; - - /** - *@page DOX_IADLXManualFanTuning_SetTargetFanSpeed SetTargetFanSpeed - *@ENG_START_DOX @brief Sets the target fan speed on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetTargetFanSpeed (adlx_int value) - *@codeEnd - * - *@params - *@paramrow{1.,[in],value,adlx_int,@ENG_START_DOX The new target fan speed (in RPM). @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the target fan speed value is successfully set, __ADLX_OK__ is returned.
- * If the target fan speed value is not successfully set, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@copydoc IADLXManualFanTuning_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetTargetFanSpeed (adlx_int value) = 0; - }; - //---------------------------------------------------------------------------------------------- - typedef IADLXInterfacePtr_T IADLXManualFanTuningPtr; -} //namespace adlx -#else //__cplusplus -ADLX_DECLARE_IID (IADLXManualFanTuning, L"IADLXManualFanTuning") - -typedef struct IADLXManualFanTuning IADLXManualFanTuning; - -typedef struct IADLXManualFanTuningVtbl -{ - //IADLXInterface - adlx_long (ADLX_STD_CALL *Acquire)(IADLXManualFanTuning* pThis); - adlx_long (ADLX_STD_CALL *Release)(IADLXManualFanTuning* pThis); - ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLXManualFanTuning* pThis, const wchar_t* interfaceId, void** ppInterface); - - //IADLXManualFanTuningState - ADLX_RESULT (ADLX_STD_CALL *GetFanTuningRanges)(IADLXManualFanTuning* pThis, ADLX_IntRange* speedRange, ADLX_IntRange* temperatureRange); - ADLX_RESULT (ADLX_STD_CALL *GetFanTuningStates)(IADLXManualFanTuning* pThis, IADLXManualFanTuningStateList** ppStates); - ADLX_RESULT (ADLX_STD_CALL *GetEmptyFanTuningStates)(IADLXManualFanTuning* pThis, IADLXManualFanTuningStateList** ppStates); - ADLX_RESULT (ADLX_STD_CALL *IsValidFanTuningStates)(IADLXManualFanTuning* pThis, IADLXManualFanTuningStateList* pStates, adlx_int* errorIndex); - ADLX_RESULT (ADLX_STD_CALL *SetFanTuningStates)(IADLXManualFanTuning* pThis, IADLXManualFanTuningStateList* pStates); - ADLX_RESULT (ADLX_STD_CALL *IsSupportedZeroRPM)(IADLXManualFanTuning* pThis, adlx_bool* supported); - ADLX_RESULT (ADLX_STD_CALL *GetZeroRPMState)(IADLXManualFanTuning* pThis, adlx_bool* isSet); - ADLX_RESULT (ADLX_STD_CALL *SetZeroRPMState)(IADLXManualFanTuning* pThis, adlx_bool set); - ADLX_RESULT (ADLX_STD_CALL *IsSupportedMinAcousticLimit)(IADLXManualFanTuning* pThis, adlx_bool* supported); - ADLX_RESULT (ADLX_STD_CALL *GetMinAcousticLimitRange)(IADLXManualFanTuning* pThis, ADLX_IntRange* tuningRange); - ADLX_RESULT (ADLX_STD_CALL *GetMinAcousticLimit)(IADLXManualFanTuning* pThis, adlx_int* value); - ADLX_RESULT (ADLX_STD_CALL *SetMinAcousticLimit)(IADLXManualFanTuning* pThis, adlx_int value); - ADLX_RESULT (ADLX_STD_CALL* IsSupportedMinFanSpeed)(IADLXManualFanTuning* pThis, adlx_bool* supported); - ADLX_RESULT (ADLX_STD_CALL* GetMinFanSpeedRange)(IADLXManualFanTuning* pThis, ADLX_IntRange* tuningRange); - ADLX_RESULT (ADLX_STD_CALL* GetMinFanSpeed)(IADLXManualFanTuning* pThis, adlx_int* value); - ADLX_RESULT (ADLX_STD_CALL* SetMinFanSpeed)(IADLXManualFanTuning* pThis, adlx_int value); - ADLX_RESULT (ADLX_STD_CALL* IsSupportedTargetFanSpeed)(IADLXManualFanTuning* pThis, adlx_bool* supported); - ADLX_RESULT (ADLX_STD_CALL* GetTargetFanSpeedRange)(IADLXManualFanTuning* pThis, ADLX_IntRange* tuningRange); - ADLX_RESULT (ADLX_STD_CALL* GetTargetFanSpeed)(IADLXManualFanTuning* pThis, adlx_int* value); - ADLX_RESULT (ADLX_STD_CALL* SetTargetFanSpeed)(IADLXManualFanTuning* pThis, adlx_int value); -}IADLXManualFanTuningVtbl; - -struct IADLXManualFanTuning { const IADLXManualFanTuningVtbl *pVtbl; }; -#endif //__cplusplus -#pragma endregion IADLXManualFanTuning - -#endif//ADLX_IGPUMANUALFANTUNING_H \ No newline at end of file diff --git a/src/adlx/sdk/Include/IGPUManualGFXTuning.h b/src/adlx/sdk/Include/IGPUManualGFXTuning.h deleted file mode 100644 index 66cff19..0000000 --- a/src/adlx/sdk/Include/IGPUManualGFXTuning.h +++ /dev/null @@ -1,489 +0,0 @@ -// -// Copyright (c) 2021 - 2023 Advanced Micro Devices, Inc. All rights reserved. -// -//------------------------------------------------------------------------------------------------- -#ifndef ADLX_IGPUMANUALGFXTUNING_H -#define ADLX_IGPUMANUALGFXTUNING_H -#pragma once - -#include "ADLXStructures.h" - -//------------------------------------------------------------------------------------------------- -//IGPUManualGFXTunings.h - Interfaces for ADLX GPU Manual Graphics Tuning functionality - -// Manual Graphics Tuning -#pragma region IADLXManualGraphicsTuning1 -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLXManualTuningStateList; - class ADLX_NO_VTABLE IADLXManualGraphicsTuning1 : public IADLXInterface - { - public: - ADLX_DECLARE_IID (L"IADLXManualGraphicsTuning1") - - /** - *@page DOX_IADLXManualGraphicsTuning1_GetGPUTuningRanges GetGPUTuningRanges - *@ENG_START_DOX @brief Gets the frequency range and the voltage range on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetGPUTuningRanges (@ref ADLX_IntRange* frequencyRange, @ref ADLX_IntRange* voltageRange) - *@codeEnd - * - *@params - *@paramrow{1.,[out],frequencyRange,@ref ADLX_IntRange*,@ENG_START_DOX The pointer to a variable where the GPU frequency range (in MHz) is returned. @ENG_END_DOX} - *@paramrow{2.,[out],voltageRange,@ref ADLX_IntRange*,@ENG_START_DOX The pointer to a variable where the GPU voltage range (in mV) is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the frequency and voltage range are successfully returned, __ADLX_OK__ is returned.
- * If the frequency and voltage range are not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The frequency range and the voltage range are applicable to all the GPU states on this GPU. @ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * Some GPUs allow multiple GPU tuning states. Each GPU tuning state is represented by the GPU clock speed and the GPU voltage.
- * The GPU clock speed and the GPU voltage can be adjusted within their ranges. - * @ENG_END_DOX - * - *@copydoc IADLXManualGraphicsTuning1_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetGPUTuningRanges (ADLX_IntRange* frequencyRange, ADLX_IntRange* voltageRange) = 0; - - /** - *@page DOX_IADLXManualGraphicsTuning1_GetGPUTuningStates GetGPUTuningStates - *@ENG_START_DOX @brief Gets the reference counted list of current GPU tuning states. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetGPUTuningStates (@ref DOX_IADLXManualTuningStateList** ppGFXStates) - *@codeEnd - * - *@params - *@paramrow{1.,[out],ppGFXStates,@ref DOX_IADLXManualTuningStateList**,@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 __*ppGFXStates__ to __nullptr__. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the list of GPU tuning states is successfully returned, __ADLX_OK__ is returned.
- * If the list of GPU tuning states is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX - * - *@addinfo - *@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.
- * - * Some GPUs allow multiple GPU tuning states. Each GPU tuning state is represented by the GPU clock speed and the GPU voltage. @ENG_END_DOX - * - *@copydoc IADLXManualGraphicsTuning1_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetGPUTuningStates (IADLXManualTuningStateList** ppGFXStates) = 0; - - /** - *@page DOX_IADLXManualGraphicsTuning1_GetEmptyGPUTuningStates GetEmptyGPUTuningStates - *@ENG_START_DOX @brief Gets the reference counted list of empty GPU tuning states. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetEmptyGPUTuningStates (@ref DOX_IADLXManualTuningStateList** ppGFXStates) - *@codeEnd - * - *@params - *@paramrow{1.,[out],ppGFXStates,@ref DOX_IADLXManualTuningStateList**,@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 __*ppGFXStates__ to __nullptr__. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the list of empty GPU tuning states is successfully returned, __ADLX_OK__ is returned.
- * If the list of empty GPU tuning states is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX - * - *@addinfo - *@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.
- * - * The frequency and voltage in the returned states are zero. - * - * Some GPUs allow multiple GPU tuning states. Each GPU tuning state is represented by the GPU clock speed and the GPU voltage. @ENG_END_DOX - * - *@copydoc IADLXManualGraphicsTuning1_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetEmptyGPUTuningStates (IADLXManualTuningStateList** ppGFXStates) = 0; - - /** - *@page DOX_IADLXManualGraphicsTuning1_IsValidGPUTuningStates IsValidGPUTuningStates - *@ENG_START_DOX @brief Checks if each GPU tuning state in a list is valid. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsValidGPUTuningStates (@ref DOX_IADLXManualTuningStateList* pGFXStates, adlx_int* errorIndex) - *@codeEnd - * - *@params - *@paramrow{1.,[in],pGFXStates,@ref DOX_IADLXManualTuningStateList*,@ENG_START_DOX The pointer to the GPU states list interface. @ENG_END_DOX} - *@paramrow{2.,[out],errorIndex,adlx_int*,@ENG_START_DOX The pointer to a variable where the invalid states index is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If __IsValidGPUTuningStates__ is successfully executed, __ADLX_OK__ is returned.
- * If __IsValidGPUTuningStates__ is not successfully executed, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * Some GPUs allow multiple GPU tuning states. Each GPU tuning state is represented by the GPU clock speed and the GPU voltage. - * @ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details If the __*pGFXStates__ is valid then the method sets the __errorIndex__ to -1. @ENG_END_DOX - * - *@copydoc IADLXManualGraphicsTuning1_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsValidGPUTuningStates (IADLXManualTuningStateList* pGFXStates, adlx_int* errorIndex) = 0; - - /** - *@page DOX_IADLXManualGraphicsTuning1_SetGPUTuningStates SetGPUTuningStates - *@ENG_START_DOX @brief Sets the GPU tuning states on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetGPUTuningStates (@ref DOX_IADLXManualTuningStateList* pGFXStates) - *@codeEnd - * - *@params - *@paramrow{1.,[in],pGFXStates,@ref DOX_IADLXManualTuningStateList*,@ENG_START_DOX The pointer to the GPU states list interface. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the GPU tuning states are successfully set, __ADLX_OK__ is returned.
- * If the GPU tuning states are not successfully set, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * Some GPUs allow multiple GPU tuning states. Each GPU tuning state is represented by the GPU clock speed and the GPU voltage. - * @ENG_END_DOX - * - *@copydoc IADLXManualGraphicsTuning1_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetGPUTuningStates (IADLXManualTuningStateList* pGFXStates) = 0; - }; - //---------------------------------------------------------------------------------------------- - typedef IADLXInterfacePtr_T IADLXManualGraphicsTuning1Ptr; -} //namespace adlx -#else //__cplusplus -ADLX_DECLARE_IID(IADLXManualGraphicsTuning1, L"IADLXManualGraphicsTuning1") -typedef struct IADLXManualTuningStateList IADLXManualTuningStateList; -typedef struct IADLXManualGraphicsTuning1 IADLXManualGraphicsTuning1; - -typedef struct IADLXManualGraphicsTuning1Vtbl -{ - //IADLXInterface - adlx_long (ADLX_STD_CALL *Acquire)(IADLXManualGraphicsTuning1* pThis); - adlx_long (ADLX_STD_CALL *Release)(IADLXManualGraphicsTuning1* pThis); - ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLXManualGraphicsTuning1* pThis, const wchar_t* interfaceId, void** ppInterface); - - //IADLXManualGraphicsTuning1 - ADLX_RESULT (ADLX_STD_CALL *GetGPUTuningRanges)(IADLXManualGraphicsTuning1* pThis, ADLX_IntRange* frequencyRange, ADLX_IntRange* voltageRange); - ADLX_RESULT (ADLX_STD_CALL *GetGPUTuningStates)(IADLXManualGraphicsTuning1* pThis, IADLXManualTuningStateList** ppGFXStates); - ADLX_RESULT (ADLX_STD_CALL *GetEmptyGPUTuningStates)(IADLXManualGraphicsTuning1* pThis, IADLXManualTuningStateList** ppGFXStates); - ADLX_RESULT (ADLX_STD_CALL *IsValidGPUTuningStates)(IADLXManualGraphicsTuning1* pThis, IADLXManualTuningStateList* pGFXStates, adlx_int* errorIndex); - ADLX_RESULT (ADLX_STD_CALL *SetGPUTuningStates)(IADLXManualGraphicsTuning1* pThis, IADLXManualTuningStateList* pGFXStates); -}IADLXManualGraphicsTuning1Vtbl; - -struct IADLXManualGraphicsTuning1 { const IADLXManualGraphicsTuning1Vtbl *pVtbl; }; -#endif //__cplusplus -#pragma endregion IADLXManualGraphicsTuning1 - -// Manual Graphics Tuning -#pragma region IADLXManualGraphicsTuning2 -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLXManualGraphicsTuning2 : public IADLXInterface - { - public: - ADLX_DECLARE_IID (L"IADLXManualGraphicsTuning2") - - /** - *@page DOX_IADLXManualGraphicsTuning2_GetGPUMinFrequencyRange GetGPUMinFrequencyRange - *@ENG_START_DOX @brief Gets the minimum frequency range on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetGPUMinFrequencyRange (@ref ADLX_IntRange* tuningRange) - *@codeEnd - * - *@params - *@paramrow{1.,[out],tuningRange,@ref ADLX_IntRange*,@ENG_START_DOX The pointer to a variable where the minimum frequency range (in MHz) is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the minimum frequency range is successfully returned, __ADLX_OK__ is returned.
- * If the minimum frequency range is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * Some GPUs support minimum GPU clock speed adjustment within a range. - * @ENG_END_DOX - * - *@copydoc IADLXManualGraphicsTuning2_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetGPUMinFrequencyRange (ADLX_IntRange* tuningRange) = 0; - - /** - *@page DOX_IADLXManualGraphicsTuning2_GetGPUMinFrequency GetGPUMinFrequency - *@ENG_START_DOX @brief Gets the current minimum frequency value on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetGPUMinFrequency (adlx_int* minFreq) - *@codeEnd - * - *@params - *@paramrow{1.,[out],minFreq,adlx_int*,@ENG_START_DOX The pointer to a variable where the minimum frequency value (in MHz) is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the minimum frequency value is successfully returned, __ADLX_OK__ is returned.
- * If the minimum frequency value is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * Some GPUs support minimum GPU clock speed adjustment within a range. - * @ENG_END_DOX - * - *@copydoc IADLXManualGraphicsTuning2_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetGPUMinFrequency (adlx_int* minFreq) = 0; - - /** - *@page DOX_IADLXManualGraphicsTuning2_SetGPUMinFrequency SetGPUMinFrequency - *@ENG_START_DOX @brief Sets the minimum frequency on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetGPUMinFrequency (adlx_int minFreq) - *@codeEnd - * - *@params - *@paramrow{1.,[in],minFreq,adlx_int,@ENG_START_DOX The new minimum frequency value (in MHz). @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the minimum frequency value is successfully set, __ADLX_OK__ is returned.
- * If the minimum frequency value is not successfully set, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * Some GPUs support minimum GPU clock speed adjustment within a range. - * @ENG_END_DOX - * - *@copydoc IADLXManualGraphicsTuning2_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetGPUMinFrequency (adlx_int minFreq) = 0; - - /** - *@page DOX_IADLXManualGraphicsTuning2_GetGPUMaxFrequencyRange GetGPUMaxFrequencyRange - *@ENG_START_DOX @brief Gets the maximum frequency range on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetGPUMaxFrequencyRange (@ref ADLX_IntRange* tuningRange) - *@codeEnd - * - *@params - *@paramrow{1.,[out],tuningRange,@ref ADLX_IntRange*,@ENG_START_DOX The pointer to a variable where the maximum frequency range (in MHz) is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the maximum frequency range is successfully returned, __ADLX_OK__ is returned.
- * If the maximum frequency range is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * Some GPUs support maximum GPU clock speed adjustment within a range. - * @ENG_END_DOX - * - *@copydoc IADLXManualGraphicsTuning2_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetGPUMaxFrequencyRange (ADLX_IntRange* tuningRange) = 0; - - /** - *@page DOX_IADLXManualGraphicsTuning2_GetGPUMaxFrequency GetGPUMaxFrequency - *@ENG_START_DOX @brief Gets the current maximum frequency value on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetGPUMaxFrequency (adlx_int* maxFreq) - *@codeEnd - * - *@params - *@paramrow{1.,[out],maxFreq,adlx_int*,@ENG_START_DOX The pointer to a variable where the maximum frequency value (in MHz) is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the maximum frequency value is successfully returned, __ADLX_OK__ is returned.
- * If the maximum frequency value is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * Some GPUs support maximum GPU clock speed adjustment within a range. - * @ENG_END_DOX - * - *@copydoc IADLXManualGraphicsTuning2_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetGPUMaxFrequency (adlx_int* maxFreq) = 0; - - /** - *@page DOX_IADLXManualGraphicsTuning2_SetGPUMaxFrequency SetGPUMaxFrequency - *@ENG_START_DOX @brief Sets the maximum frequency on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetGPUMaxFrequency (adlx_int maxFreq) - *@codeEnd - * - *@params - *@paramrow{1.,[in],maxFreq,adlx_int,@ENG_START_DOX The new maximum frequency (in MHz) value. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the maximum frequency value is successfully set, __ADLX_OK__ is returned.
- * If the maximum frequency value is not successfully set, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * Some GPUs support maximum GPU clock speed adjustment within a range. - * @ENG_END_DOX - * - *@copydoc IADLXManualGraphicsTuning2_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetGPUMaxFrequency (adlx_int maxFreq) = 0; - - /** - *@page DOX_IADLXManualGraphicsTuning2_GetGPUVoltageRange GetGPUVoltageRange - *@ENG_START_DOX @brief Gets the clock voltage range on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetGPUVoltageRange (@ref ADLX_IntRange* tuningRange) - *@codeEnd - * - *@params - *@paramrow{1.,[out],tuningRange,@ref ADLX_IntRange*,@ENG_START_DOX The pointer to a variable where the clock voltage range (in mV) is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the clock voltage range is successfully returned, __ADLX_OK__ is returned.
- * If the clock voltage range is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * Some GPUs support GPU voltage adjustment within a range. - * @ENG_END_DOX - * - *@copydoc IADLXManualGraphicsTuning2_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetGPUVoltageRange (ADLX_IntRange* tuningRange) = 0; - - /** - *@page DOX_IADLXManualGraphicsTuning2_GetGPUVoltage GetGPUVoltage - *@ENG_START_DOX @brief Gets the current clock voltage value on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetGPUVoltage (adlx_int* volt) - *@codeEnd - * - *@params - *@paramrow{1.,[out],volt,adlx_int*,@ENG_START_DOX The pointer to a variable where the GPU voltage (in mV) is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the clock voltage value is successfully returned, __ADLX_OK__ is returned.
- * If the clock voltage value is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * Some GPUs support GPU voltage adjustment within a range. - * @ENG_END_DOX - * - *@copydoc IADLXManualGraphicsTuning2_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetGPUVoltage (adlx_int* volt) = 0; - - /** - *@page DOX_IADLXManualGraphicsTuning2_SetGPUVoltage SetGPUVoltage - *@ENG_START_DOX @brief Sets the clock voltage on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetGPUVoltage (adlx_int volt) - *@codeEnd - * - *@params - *@paramrow{1.,[in],volt,adlx_int,@ENG_START_DOX The new GPU voltage (in mV). @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the clock voltage value is successfully set, __ADLX_OK__ is returned.
- * If the clock voltage value is not successfully set, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * Some GPUs support GPU voltage adjustment within a range. - * @ENG_END_DOX - * - *@copydoc IADLXManualGraphicsTuning2_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetGPUVoltage (adlx_int volt) = 0; - }; - //---------------------------------------------------------------------------------------------- - typedef IADLXInterfacePtr_T IADLXManualGraphicsTuning2Ptr; -} //namespace adlx -#else //__cplusplus -ADLX_DECLARE_IID (IADLXManualGraphicsTuning2, L"IADLXManualGraphicsTuning2") - -typedef struct IADLXManualGraphicsTuning2 IADLXManualGraphicsTuning2; - -typedef struct IADLXManualGraphicsTuning2Vtbl -{ - //IADLXInterface - adlx_long (ADLX_STD_CALL *Acquire)(IADLXManualGraphicsTuning2* pThis); - adlx_long (ADLX_STD_CALL *Release)(IADLXManualGraphicsTuning2* pThis); - ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLXManualGraphicsTuning2* pThis, const wchar_t* interfaceId, void** ppInterface); - - //IADLXManualGraphicsTuning2 - ADLX_RESULT (ADLX_STD_CALL *GetGPUMinFrequencyRange)(IADLXManualGraphicsTuning2* pThis, ADLX_IntRange* tuningRange); - ADLX_RESULT (ADLX_STD_CALL *GetGPUMinFrequency)(IADLXManualGraphicsTuning2* pThis, adlx_int* minFreq); - ADLX_RESULT (ADLX_STD_CALL *SetGPUMinFrequency)(IADLXManualGraphicsTuning2* pThis, adlx_int minFreq); - ADLX_RESULT (ADLX_STD_CALL *GetGPUMaxFrequencyRange)(IADLXManualGraphicsTuning2* pThis, ADLX_IntRange* tuningRange); - ADLX_RESULT (ADLX_STD_CALL *GetGPUMaxFrequency)(IADLXManualGraphicsTuning2* pThis, adlx_int* maxFreq); - ADLX_RESULT (ADLX_STD_CALL *SetGPUMaxFrequency)(IADLXManualGraphicsTuning2* pThis, adlx_int maxFreq); - - ADLX_RESULT (ADLX_STD_CALL *GetGPUVoltageRange)(IADLXManualGraphicsTuning2* pThis, ADLX_IntRange* tuningRange); - ADLX_RESULT (ADLX_STD_CALL *GetGPUVoltage)(IADLXManualGraphicsTuning2* pThis, adlx_int* volt); - ADLX_RESULT (ADLX_STD_CALL *SetGPUVoltage)(IADLXManualGraphicsTuning2* pThis, adlx_int volt); -}IADLXManualGraphicsTuning2Vtbl; -struct IADLXManualGraphicsTuning2 { const IADLXManualGraphicsTuning2Vtbl *pVtbl; }; - -#endif //__cplusplus -#pragma endregion IADLXManualGraphicsTuning2 - -#endif//ADLX_IGPUMANUALGFXTUNING_H diff --git a/src/adlx/sdk/Include/IGPUManualPowerTuning.h b/src/adlx/sdk/Include/IGPUManualPowerTuning.h deleted file mode 100644 index 43c91e6..0000000 --- a/src/adlx/sdk/Include/IGPUManualPowerTuning.h +++ /dev/null @@ -1,252 +0,0 @@ -// -// Copyright (c) 2021 - 2023 Advanced Micro Devices, Inc. All rights reserved. -// -//------------------------------------------------------------------------------------------------- - -#ifndef ADLX_IGPUMANUALPOWERTUNING_H -#define ADLX_IGPUMANUALPOWERTUNING_H -#pragma once - -#include "ADLXStructures.h" - -//------------------------------------------------------------------------------------------------- -//IGPUManualPowerTuning.h - Interfaces for ADLX GPU Manual Power Tuning functionality -// Manual Power Tuning -#pragma region IADLXManualPowerTuning -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLXManualPowerTuning : public IADLXInterface - { - public: - ADLX_DECLARE_IID (L"IADLXManualPowerTuning") - - /** - *@page DOX_IADLXManualPowerTuning_GetPowerLimitRange GetPowerLimitRange - *@ENG_START_DOX @brief Gets the manual power tuning minimum power range, maximum power range, and step power range on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetPowerLimitRange (@ref ADLX_IntRange* tuningRange) - *@codeEnd - * - *@params - *@paramrow{1.,[out],tuningRange,@ref ADLX_IntRange*,@ENG_START_DOX The pointer to a variable where the manual power limit range (in %) is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the power limit range is successfully returned, __ADLX_OK__ is returned.
- * If the power limit range is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@copydoc IADLXManualPowerTuning_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetPowerLimitRange (ADLX_IntRange* tuningRange) = 0; - - /** - *@page DOX_IADLXManualPowerTuning_GetPowerLimit GetPowerLimit - *@ENG_START_DOX @brief Gets the current power limit of a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetPowerLimit (adlx_int* curVal) - *@codeEnd - * - *@params - *@paramrow{1.,[out],curVal,adlx_int*,@ENG_START_DOX The pointer to a variable where the manual power limit value (in %) is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the power limit value is successfully returned, __ADLX_OK__ is returned.
- * If the power limit value is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * A higher power limit increases performance headroom. - * @ENG_END_DOX - * - *@copydoc IADLXManualPowerTuning_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetPowerLimit (adlx_int* curVal) = 0; - - /** - *@page DOX_IADLXManualPowerTuning_SetPowerLimit SetPowerLimit - *@ENG_START_DOX @brief Sets the power limit of a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetPowerLimit (adlx_int curVal) - *@codeEnd - * - *@params - *@paramrow{1.,[in],curVal,adlx_int,@ENG_START_DOX The new power limit value (in %) . @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the power limit value is successfully set, __ADLX_OK__ is returned.
- * If the power limit value is not successfully set, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * A higher power limit increases performance headroom. - * @ENG_END_DOX - * - *@copydoc IADLXManualPowerTuning_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetPowerLimit (adlx_int curVal) = 0; - - /** - *@page DOX_IADLXManualPowerTuning_IsSupportedTDCLimit IsSupportedTDCLimit - *@ENG_START_DOX - *@brief Checks if Thermal Design Current (TDC) limit is supported on a GPU. - *@details Thermal Design Current (TDC) functionality is not currently implemented in a production application. Usecase validation for these methods should be performed by application developers. - *@ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupportedTDCLimit (adlx_bool* supported) - *@codeEnd - * - *@params - *@paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of TDC limit feature is returned. The variable is __true__ if TDC limit feature is supported. The variable is __false__ if TDC limit feature is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX - * If the state of TDC limit feature is successfully returned, __ADLX_OK__ is returned.
- * If the state of TDC limit feature is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
- *@ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * A higher TDC limit increases performance headroom. - * @ENG_END_DOX - * - *@copydoc IADLXManualPowerTuning_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupportedTDCLimit(adlx_bool* supported) = 0; - - /** - *@page DOX_IADLXManualPowerTuning_GetTDCLimitRange GetTDCLimitRange - *@ENG_START_DOX - *@brief Gets the manual power tuning minimum Thermal Design Current (TDC) range, maximum TDC range, and step TDC range on a GPU. - *@details Thermal Design Current (TDC) functionality is not currently implemented in a production application. Usecase validation for these methods should be performed by application developers. - *@ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetTDCLimitRange (@ref ADLX_IntRange* tuningRange) - *@codeEnd - * - *@params - *@paramrow{1.,[out],tuningRange,@ref ADLX_IntRange*,@ENG_START_DOX The pointer to a variable where the manual TDC limit range (in %) is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX - * If the TDC limit range is successfully returned, __ADLX_OK__ is returned.
- * If the TDC limit range is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
- *@ENG_END_DOX - * - *@copydoc IADLXManualPowerTuning_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetTDCLimitRange(ADLX_IntRange* tuningRange) = 0; - - /** - *@page DOX_IADLXManualPowerTuning_GetTDCLimit GetTDCLimit - *@ENG_START_DOX - *@brief Gets the current Thermal Design Current (TDC) limit of a GPU. - *@details Thermal Design Current (TDC) functionality is not currently implemented in a production application. Usecase validation for these methods should be performed by application developers. - *@ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetTDCLimit (adlx_int* curVal) - *@codeEnd - * - *@params - *@paramrow{1.,[out],curVal,adlx_int*,@ENG_START_DOX The pointer to a variable where the manual TDC limit value (in %) is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX - * If the TDC limit value is successfully returned, __ADLX_OK__ is returned.
- * If the TDC limit value is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
- *@ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * A higher TDC limit increases performance headroom. - * @ENG_END_DOX - * - *@copydoc IADLXManualPowerTuning_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetTDCLimit(adlx_int* curVal) = 0; - - /** - *@page DOX_IADLXManualPowerTuning_SetTDCLimit SetTDCLimit - *@ENG_START_DOX - *@brief Sets the Thermal Design Current (TDC) limit of a GPU. - *@details Thermal Design Current (TDC) functionality is not currently implemented in a production application. Usecase validation for these methods should be performed by application developers. - *@ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetTDCLimit (adlx_int curVal) - *@codeEnd - * - *@params - *@paramrow{1.,[in],curVal,adlx_int,@ENG_START_DOX The new TDC limit value (in %). @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX - * If the TDC limit value is successfully set, __ADLX_OK__ is returned.
- * If the TDC limit value is not successfully set, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
- *@ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * A higher TDC limit increases performance headroom. - * @ENG_END_DOX - * - *@copydoc IADLXManualPowerTuning_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetTDCLimit(adlx_int curVal) = 0; - }; - //---------------------------------------------------------------------------------------------- - typedef IADLXInterfacePtr_T IADLXManualPowerTuningPtr; -} //namespace adlx -#else //__cplusplus -ADLX_DECLARE_IID (IADLXManualPowerTuning, L"IADLXManualPowerTuning") - -typedef struct IADLXManualPowerTuning IADLXManualPowerTuning; - -typedef struct IADLXManualPowerTuningVtbl -{ - //IADLXInterface - adlx_long (ADLX_STD_CALL *Acquire)(IADLXManualPowerTuning* pThis); - adlx_long (ADLX_STD_CALL *Release)(IADLXManualPowerTuning* pThis); - ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLXManualPowerTuning* pThis, const wchar_t* interfaceId, void** ppInterface); - - //IADLXManualPowerTuning - ADLX_RESULT (ADLX_STD_CALL *GetPowerLimitRange)(IADLXManualPowerTuning* pThis, ADLX_IntRange* tuningRange); - ADLX_RESULT (ADLX_STD_CALL *GetPowerLimit)(IADLXManualPowerTuning* pThis, adlx_int* curVal); - ADLX_RESULT (ADLX_STD_CALL *SetPowerLimit)(IADLXManualPowerTuning* pThis, adlx_int curVal); - ADLX_RESULT (ADLX_STD_CALL *IsSupportedTDCLimit)(IADLXManualPowerTuning* pThis,adlx_bool* supported); - ADLX_RESULT(ADLX_STD_CALL* GetTDCLimitRange)(IADLXManualPowerTuning* pThis, ADLX_IntRange* tuningRange); - ADLX_RESULT(ADLX_STD_CALL* GetTDCLimit)(IADLXManualPowerTuning* pThis, adlx_int* curVal); - ADLX_RESULT(ADLX_STD_CALL* SetTDCLimit)(IADLXManualPowerTuning* pThis, adlx_int curVal); -}IADLXManualPowerTuningVtbl; - -struct IADLXManualPowerTuning { const IADLXManualPowerTuningVtbl *pVtbl; }; -#endif //__cplusplus -#pragma endregion IADLXManualPowerTuning - -#endif//ADLX_IGPUMANUALPOWERTUNING_H diff --git a/src/adlx/sdk/Include/IGPUManualVRAMTuning.h b/src/adlx/sdk/Include/IGPUManualVRAMTuning.h deleted file mode 100644 index 09eeaab..0000000 --- a/src/adlx/sdk/Include/IGPUManualVRAMTuning.h +++ /dev/null @@ -1,514 +0,0 @@ -// -// Copyright (c) 2021 - 2023 Advanced Micro Devices, Inc. All rights reserved. -// -//------------------------------------------------------------------------------------------------- -#ifndef ADLX_IGPUMANUALVRAMTUNING_H -#define ADLX_IGPUMANUALVRAMTUNING_H -#pragma once - -#include "ADLXStructures.h" - -//------------------------------------------------------------------------------------------------- -//IGPUManualVRAMTuning.h - Interfaces for ADLX GPU manual VRAM Tuning functionality - -// Manual VRAM Tuning, common verion -#pragma region IADLXManualVRAMTuning1 -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLXManualTuningStateList; - class ADLX_NO_VTABLE IADLXMemoryTimingDescriptionList; - class ADLX_NO_VTABLE IADLXManualVRAMTuning1 : public IADLXInterface - { - public: - ADLX_DECLARE_IID (L"IADLXManualVRAMTuning1") - - /** - *@page DOX_IADLXManualVRAMTuning1_IsSupportedMemoryTiming IsSupportedMemoryTiming - *@ENG_START_DOX @brief Checks if the memory timing is supported on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupportedMemoryTiming (adlx_bool* supported) - *@codeEnd - * - *@params - *@paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of memory timing is returned. The variable is __true__ if memory timing is supported. The variable is __false__ if memory timing is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of memory timing is successfully returned, __ADLX_OK__ is returned.
- * If the state of memory timing is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX Some GPUs support memory timing presets for VRAM latency control to adjust the video memory clock speed. @ENG_END_DOX - * - *@copydoc IADLXManualVRAMTuning1_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupportedMemoryTiming (adlx_bool* supported) = 0; - - /** - *@page DOX_IADLXManualVRAMTuning1_GetSupportedMemoryTimingDescriptionList GetSupportedMemoryTimingDescriptionList - *@ENG_START_DOX @brief Gets the reference counted list of the supported memory timing description on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetSupportedMemoryTimingDescriptionList (@ref DOX_IADLXMemoryTimingDescriptionList** ppDescriptionList) - *@codeEnd - * - *@params - *@paramrow{1.,[out],ppDescriptionList,@ref DOX_IADLXMemoryTimingDescriptionList**,@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 __*ppDescriptionList__ to __nullptr__. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the list of the supported memory timing description is successfully returned, __ADLX_OK__ is returned.
- * If the list of the supported memory timing description is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX - * - *@addinfo - *@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. - * - * Some GPUs support memory timing presets for VRAM latency control to adjust the video memory clock speed. @ENG_END_DOX - * - *@copydoc IADLXManualVRAMTuning1_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetSupportedMemoryTimingDescriptionList (IADLXMemoryTimingDescriptionList** ppDescriptionList) = 0; - - /** - *@page DOX_IADLXManualVRAMTuning1_GetMemoryTimingDescription GetMemoryTimingDescription - *@ENG_START_DOX @brief Gets the current memory timing description on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetMemoryTimingDescription (@ref ADLX_MEMORYTIMING_DESCRIPTION* description) - *@codeEnd - * - *@params - *@paramrow{1.,[out],description,@ref ADLX_MEMORYTIMING_DESCRIPTION*,@ENG_START_DOX The pointer to a variable where the memory timing description is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the memory timing description is successfully returned, __ADLX_OK__ is returned.
- * If the memory timing description is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * Some GPUs support memory timing presets for VRAM latency control to adjust the video memory clock speed. - * @ENG_END_DOX - * - *@copydoc IADLXManualVRAMTuning1_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetMemoryTimingDescription (ADLX_MEMORYTIMING_DESCRIPTION* description) = 0; - - /** - *@page DOX_IADLXManualVRAMTuning1_SetMemoryTimingDescription SetMemoryTimingDescription - *@ENG_START_DOX @brief Sets the memory timing description on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetMemoryTimingLevel (@ref ADLX_MEMORYTIMING_DESCRIPTION description) - *@codeEnd - * - *@params - *@paramrow{1.,[in],description,@ref ADLX_MEMORYTIMING_DESCRIPTION,@ENG_START_DOX The new memory timing description. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the memory timing description is successfully set, __ADLX_OK__ is returned.
- * If the memory timing description is not successfully set, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * Some GPUs support memory timing presets for VRAM latency control to adjust the video memory clock speed. - * @ENG_END_DOX - * - *@copydoc IADLXManualVRAMTuning1_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetMemoryTimingDescription (ADLX_MEMORYTIMING_DESCRIPTION description) = 0; - - /** - *@page DOX_IADLXManualVRAMTuning1_GetVRAMTuningRanges GetVRAMTuningRanges - *@ENG_START_DOX @brief Gets the VRAM frequency range and the VRAM voltage range on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetVRAMTuningRanges (@ref ADLX_IntRange* frequencyRange, @ref ADLX_IntRange* voltageRange) - *@codeEnd - * - *@params - *@paramrow{1.,[out],frequencyRange,@ref ADLX_IntRange*,@ENG_START_DOX The pointer to a variable where the frequency range (in MHz) is returned. @ENG_END_DOX} - *@paramrow{2.,[out],voltageRange,@ref ADLX_IntRange*,@ENG_START_DOX The pointer to a variable where the voltage range (in mV) is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the frequency and voltage range are successfully returned, __ADLX_OK__ is returned.
- * If the frequency and voltage range are not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The VRAM frequency range and the VRAM voltage range are applicable to all the VRAM states on this GPU. @ENG_END_DOX - * - *@copydoc IADLXManualVRAMTuning1_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetVRAMTuningRanges (ADLX_IntRange* frequencyRange, ADLX_IntRange* voltageRange) = 0; - - /** - *@page DOX_IADLXManualVRAMTuning1_GetVRAMTuningStates GetVRAMTuningStates - *@ENG_START_DOX @brief Gets the reference counted list of current VRAM tuning states on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetVRAMTuningStates (@ref DOX_IADLXManualTuningStateList** ppVRAMStates) - *@codeEnd - * - *@params - *@paramrow{1.,[out],ppVRAMStates,@ref DOX_IADLXManualTuningStateList**,@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 __*ppVRAMStates__ to __nullptr__. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the list of VRAM tuning states is successfully returned, __ADLX_OK__ is returned.
- * If the list of VRAM tuning states is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX - * - *@addinfo - *@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 - * - *@copydoc IADLXManualVRAMTuning1_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetVRAMTuningStates (IADLXManualTuningStateList** ppVRAMStates) = 0; - - /** - *@page DOX_IADLXManualVRAMTuning1_GetEmptyVRAMTuningStates GetEmptyVRAMTuningStates - *@ENG_START_DOX @brief Gets the reference counted list of empty VRAM tuning states on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetEmptyVRAMTuningStates (@ref DOX_IADLXManualTuningStateList** ppVRAMStates) - *@codeEnd - * - *@params - *@paramrow{1.,[out],ppVRAMStates,@ref DOX_IADLXManualTuningStateList**,@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 __*ppVRAMStates__ to __nullptr__. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the list of empty VRAM tuning states is successfully returned, __ADLX_OK__ is returned.
- * If the list of empty VRAM tuning states is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX - * - *@addinfo - *@ENG_START_DOX All the value in this list are zero. - * 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 - * - *@copydoc IADLXManualVRAMTuning1_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetEmptyVRAMTuningStates (IADLXManualTuningStateList** ppVRAMStates) = 0; - - /** - *@page DOX_IADLXManualVRAMTuning1_IsValidVRAMTuningStates IsValidVRAMTuningStates - *@ENG_START_DOX @brief Checks the validity of listed VRAM tuning states on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsValidVRAMTuningStates (@ref DOX_IADLXManualTuningStateList* pVRAMStates, adlx_int* errorIndex) - *@codeEnd - * - *@params - *@paramrow{1.,[in],pVRAMStates,@ref DOX_IADLXManualTuningStateList*,@ENG_START_DOX The pointer to the VRAM states list interface. @ENG_END_DOX} - *@paramrow{2.,[out],errorIndex,adlx_int*,@ENG_START_DOX The pointer to a variable where the invalid states index is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If __IsValidVRAMTuningStates__ is successfully executed, __ADLX_OK__ is returned.
- * If __IsValidVRAMTuningStates__ is not successfully executed, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details If the __*pVRAMStates__ is valid then the method sets the __errorIndex__ to -1. @ENG_END_DOX - * - *@copydoc IADLXManualVRAMTuning1_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsValidVRAMTuningStates (IADLXManualTuningStateList* pVRAMStates, adlx_int* errorIndex) = 0; - - /** - *@page DOX_IADLXManualVRAMTuning1_SetVRAMTuningStates SetVRAMTuningStates - *@ENG_START_DOX @brief Sets listed VRAM states to the tuning state on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetVRAMTuningStates (@ref DOX_IADLXManualTuningStateList* pVRAMStates) - *@codeEnd - * - *@params - *@paramrow{1.,[in],pVRAMStates,@ref DOX_IADLXManualTuningStateList*,@ENG_START_DOX The pointer to the VRAM states list interface. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the VRAM tuning states are successfully set, __ADLX_OK__ is returned.
- * If the VRAM tuning states are not successfully set, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@copydoc IADLXManualVRAMTuning1_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetVRAMTuningStates (IADLXManualTuningStateList* pVRAMStates) = 0; - }; - //---------------------------------------------------------------------------------------------- - typedef IADLXInterfacePtr_T IADLXManualVRAMTuning1Ptr; -} //namespace adlx -#else //__cplusplus - -ADLX_DECLARE_IID (IADLXManualVRAMTuning1, L"IADLXManualVRAMTuning1") -typedef struct IADLXManualVRAMTuning1 IADLXManualVRAMTuning1; -typedef struct IADLXManualTuningStateList IADLXManualTuningStateList; -typedef struct IADLXMemoryTimingDescriptionList IADLXMemoryTimingDescriptionList; -typedef struct IADLXManualVRAMTuning1Vtbl -{ - //IADLXInterface - adlx_long (ADLX_STD_CALL *Acquire)(IADLXManualVRAMTuning1* pThis); - adlx_long (ADLX_STD_CALL *Release)(IADLXManualVRAMTuning1* pThis); - ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLXManualVRAMTuning1* pThis, const wchar_t* interfaceId, void** ppInterface); - - //IADLXManualVRAMTuning1 - ADLX_RESULT (ADLX_STD_CALL *IsSupportedMemoryTiming)(IADLXManualVRAMTuning1* pThis, adlx_bool* supported); - ADLX_RESULT (ADLX_STD_CALL *GetSupportedMemoryTimingDescriptionList)(IADLXManualVRAMTuning1* pThis, IADLXMemoryTimingDescriptionList** ppDescriptionList); - ADLX_RESULT (ADLX_STD_CALL *GetMemoryTimingDescription)(IADLXManualVRAMTuning1* pThis, ADLX_MEMORYTIMING_DESCRIPTION* description); - ADLX_RESULT (ADLX_STD_CALL *SetMemoryTimingDescription)(IADLXManualVRAMTuning1* pThis, ADLX_MEMORYTIMING_DESCRIPTION description); - - ADLX_RESULT (ADLX_STD_CALL *GetVRAMTuningRanges)(IADLXManualVRAMTuning1* pThis, ADLX_IntRange* frequencyRange, ADLX_IntRange* voltageRange); - ADLX_RESULT (ADLX_STD_CALL *GetVRAMTuningStates)(IADLXManualVRAMTuning1* pThis, IADLXManualTuningStateList** ppVRAMStates); - ADLX_RESULT (ADLX_STD_CALL *GetEmptyVRAMTuningStates)(IADLXManualVRAMTuning1* pThis, IADLXManualTuningStateList** ppVRAMStates); - ADLX_RESULT (ADLX_STD_CALL *IsValidVRAMTuningStates)(IADLXManualVRAMTuning1* pThis, IADLXManualTuningStateList* pVRAMStates, adlx_int* errorIndex); - ADLX_RESULT (ADLX_STD_CALL *SetVRAMTuningStates)(IADLXManualVRAMTuning1* pThis, IADLXManualTuningStateList* pVRAMStates); -}IADLXManualVRAMTuning1Vtbl; - -struct IADLXManualVRAMTuning1 { const IADLXManualVRAMTuning1Vtbl *pVtbl; }; -#endif //__cplusplus -#pragma endregion IADLXManualVRAMTuning1 - -// Manual VRAM Tuning2 for Navi2X -#pragma region IADLXManualVRAMTuning2 -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLXManualVRAMTuning2 : public IADLXInterface - { - public: - ADLX_DECLARE_IID (L"IADLXManualVRAMTuning2") - - /** - *@page DOX_IADLXManualVRAMTuning2_IsSupportedMemoryTiming IsSupportedMemoryTiming - *@ENG_START_DOX @brief Checks if the memory timing is supported on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupportedMemoryTiming (adlx_bool* supported) - *@codeEnd - * - *@params - *@paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of memory timing is returned. The variable is __true__ if memory timing is supported. The variable is __false__ if memory timing is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of memory timing is successfully returned, __ADLX_OK__ is returned.
- * If the state of memory timing is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * Some GPUs support memory timing presets for VRAM latency control to adjust the video memory clock speed. - * @ENG_END_DOX - * - *@copydoc IADLXManualVRAMTuning2_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupportedMemoryTiming (adlx_bool* supported) = 0; - - /** - *@page DOX_IADLXManualVRAMTuning2_GetSupportedMemoryTimingDescriptionList GetSupportedMemoryTimingDescriptionList - *@ENG_START_DOX @brief Gets the reference counted list of the supported memory timing description on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetSupportedMemoryTimingDescriptionList (@ref DOX_IADLXMemoryTimingDescriptionList** ppDescriptionList) - *@codeEnd - * - *@params - *@paramrow{1.,[out],ppDescriptionList,@ref DOX_IADLXMemoryTimingDescriptionList**,@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 __*ppDescriptionList__ to __nullptr__. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the list of the supported memory timing description is successfully returned, __ADLX_OK__ is returned.
- * If the list of the supported memory timing description is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX - * - *@addinfo - *@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. - * - * Some GPUs support memory timing presets for VRAM latency control to adjust the video memory clock speed. @ENG_END_DOX - * - *@copydoc IADLXManualVRAMTuning2_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetSupportedMemoryTimingDescriptionList (IADLXMemoryTimingDescriptionList** ppDescriptionList) = 0; - - /** - *@page DOX_IADLXManualVRAMTuning2_GetMemoryTimingDescription GetMemoryTimingDescription - *@ENG_START_DOX @brief Gets the current memory timing description on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetMemoryTimingDescription (@ref ADLX_MEMORYTIMING_DESCRIPTION* description) - *@codeEnd - * - *@params - *@paramrow{1.,[out],description,@ref ADLX_MEMORYTIMING_DESCRIPTION*,@ENG_START_DOX The pointer to a variable where the memory timing description is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the memory timing description is successfully returned, __ADLX_OK__ is returned.
- * If the memory timing description is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * Some GPUs support memory timing presets for VRAM latency control to adjust the video memory clock speed. - * @ENG_END_DOX - * - *@copydoc IADLXManualVRAMTuning2_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetMemoryTimingDescription (ADLX_MEMORYTIMING_DESCRIPTION* description) = 0; - - /** - *@page DOX_IADLXManualVRAMTuning2_SetMemoryTimingDescription SetMemoryTimingDescription - *@ENG_START_DOX @brief Sets the memory timing description on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetMemoryTimingLevel (@ref ADLX_MEMORYTIMING_DESCRIPTION description) - *@codeEnd - * - *@params - *@paramrow{1.,[in],description,@ref ADLX_MEMORYTIMING_DESCRIPTION,@ENG_START_DOX The new memory timing description. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the memory timing description is successfully set, __ADLX_OK__ is returned.
- * If the memory timing description is not successfully set, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * Some GPUs support memory timing presets for VRAM latency control to adjust the video memory clock speed. - * @ENG_END_DOX - * - *@copydoc IADLXManualVRAMTuning2_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetMemoryTimingDescription (ADLX_MEMORYTIMING_DESCRIPTION description) = 0; - - /** - *@page DOX_IADLXManualVRAMTuning2_GetMaxVRAMFrequencyRange GetMaxVRAMFrequencyRange - *@ENG_START_DOX @brief Gets the maximum VRAM frequency range on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetMaxVRAMFrequencyRange (@ref ADLX_IntRange* tuningRange) - *@codeEnd - * - *@params - *@paramrow{1.,[out],tuningRange,@ref ADLX_IntRange*,@ENG_START_DOX The pointer to a variable where the max frequency range (in MHz) is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the max frequency range is successfully returned, __ADLX_OK__ is returned.
- * If the max frequency range is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@copydoc IADLXManualVRAMTuning2_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetMaxVRAMFrequencyRange (ADLX_IntRange* tuningRange) = 0; - - /** - *@page DOX_IADLXManualVRAMTuning2_GetMaxVRAMFrequency GetMaxVRAMFrequency - *@ENG_START_DOX @brief Gets the current maximum frequency value of a VRAM on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetMaxVRAMFrequency (adlx_int* freq) - *@codeEnd - * - *@params - *@paramrow{1.,[out],freq,adlx_int*,@ENG_START_DOX The pointer to a variable where the max frequency value (in MHz) is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the max frequency value is successfully returned, __ADLX_OK__ is returned.
- * If the max frequency value is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@copydoc IADLXManualVRAMTuning2_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetMaxVRAMFrequency (adlx_int* freq) = 0; - - /** - *@page DOX_IADLXManualVRAMTuning2_SetMaxVRAMFrequency SetMaxVRAMFrequency - *@ENG_START_DOX @brief Sets the maximum VRAM frequency value on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetMaxVRAMFrequency (adlx_int freq) - *@codeEnd - * - *@params - *@paramrow{1.,[in],freq,adlx_int,@ENG_START_DOX The new max frequency value (in MHz). @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the max frequency value is successfully set, __ADLX_OK__ is returned.
- * If the max frequency value is not successfully set, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@copydoc IADLXManualVRAMTuning2_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetMaxVRAMFrequency (adlx_int freq) = 0; - }; - //---------------------------------------------------------------------------------------------- - typedef IADLXInterfacePtr_T IADLXManualVRAMTuning2Ptr; -} //namespace adlx -#else //__cplusplus -ADLX_DECLARE_IID (IADLXManualVRAMTuning2, L"IADLXManualVRAMTuning2") -typedef struct IADLXManualVRAMTuning2 IADLXManualVRAMTuning2; -typedef struct IADLXManualVRAMTuning2Vtbl -{ - //IADLXInterface - adlx_long (ADLX_STD_CALL *Acquire)(IADLXManualVRAMTuning2* pThis); - adlx_long (ADLX_STD_CALL *Release)(IADLXManualVRAMTuning2* pThis); - ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLXManualVRAMTuning2* pThis, const wchar_t* interfaceId, void** ppInterface); - - //IADLXManualVRAMTuning2 - ADLX_RESULT (ADLX_STD_CALL *IsSupportedMemoryTiming)(IADLXManualVRAMTuning2* pThis, adlx_bool* supported); - ADLX_RESULT (ADLX_STD_CALL *GetSupportedMemoryTimingDescriptionList)(IADLXManualVRAMTuning2* pThis, IADLXMemoryTimingDescriptionList** ppDescriptionList); - ADLX_RESULT (ADLX_STD_CALL *GetMemoryTimingDescription)(IADLXManualVRAMTuning2* pThis, ADLX_MEMORYTIMING_DESCRIPTION* description); - ADLX_RESULT (ADLX_STD_CALL *SetMemoryTimingDescription)(IADLXManualVRAMTuning2* pThis, ADLX_MEMORYTIMING_DESCRIPTION description); - - ADLX_RESULT (ADLX_STD_CALL *GetMaxVRAMFrequencyRange)(IADLXManualVRAMTuning2* pThis, ADLX_IntRange* tuningRange); - ADLX_RESULT (ADLX_STD_CALL *GetMaxVRAMFrequency)(IADLXManualVRAMTuning2* pThis, adlx_int* freq); - ADLX_RESULT (ADLX_STD_CALL *SetMaxVRAMFrequency)(IADLXManualVRAMTuning2* pThis, adlx_int freq); -}IADLXManualVRAMTuning2Vtbl; - -struct IADLXManualVRAMTuning2 { const IADLXManualVRAMTuning2Vtbl *pVtbl; }; -#endif //__cplusplus -#pragma endregion IADLXManualVRAMTuning2 - -#endif//ADLX_IGPUMANUALVRAMTUNING_H diff --git a/src/adlx/sdk/Include/IGPUPresetTuning.h b/src/adlx/sdk/Include/IGPUPresetTuning.h deleted file mode 100644 index 058be67..0000000 --- a/src/adlx/sdk/Include/IGPUPresetTuning.h +++ /dev/null @@ -1,469 +0,0 @@ -// -// Copyright (c) 2021 - 2023 Advanced Micro Devices, Inc. All rights reserved. -// -//------------------------------------------------------------------------------------------------- - -#ifndef ADLX_IGPUPRESETTUNING_H -#define ADLX_IGPUPRESETTUNING_H -#pragma once - -#include "ADLXStructures.h" - -//------------------------------------------------------------------------------------------------- -//IGPUPresetTuning.h - Interfaces for ADLX GPU Preset Tuning functionality - -// Preset Tuning -#pragma region IADLXGPUPresetTuning -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLXGPUPresetTuning : public IADLXInterface - { - public: - ADLX_DECLARE_IID (L"IADLXGPUPresetTuning") - - /** - *@page DOX_IADLXGPUPresetTuning_IsSupportedPowerSaver IsSupportedPowerSaver - *@ENG_START_DOX @brief Checks if the power saver tuning preset is supported on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupportedPowerSaver (adlx_bool* supported) - *@codeEnd - * - *@params - *@paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of power saver is returned. The variable is __true__ if power saver is supported. The variable is __false__ if power saver is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of power saver is successfully returned, __ADLX_OK__ is returned.
- * If the state of power saver is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * @addinfo - * @ENG_START_DOX - * Use of the power saver tuning preset is limited to some GPUs. - * @ENG_END_DOX - * - *@copydoc IADLXGPUPresetTuning_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupportedPowerSaver (adlx_bool* supported) = 0; - - /** - *@page DOX_IADLXGPUPresetTuning_IsSupportedQuiet IsSupportedQuiet - *@ENG_START_DOX @brief Checks if the quiet tuning preset is supported on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupportedQuiet (adlx_bool* supported) - *@codeEnd - * - *@params - *@paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of quiet is returned. The variable is __true__ if quiet is supported. The variable is __false__ if quiet is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of quiet is successfully returned, __ADLX_OK__ is returned.
- * If the state of quiet is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * The quiet tuning preset enables quiet operation with lowered power and fan settings. - * @ENG_END_DOX - * - *@copydoc IADLXGPUPresetTuning_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupportedQuiet (adlx_bool* supported) = 0; - - /** - *@page DOX_IADLXGPUPresetTuning_IsSupportedBalanced IsSupportedBalanced - *@ENG_START_DOX @brief Checks if the balanced tuning preset is supported on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupportedBalanced (adlx_bool* supported) - *@codeEnd - * - *@params - *@paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the balanced of quiet is returned. The variable is __true__ if balanced is supported. The variable is __false__ if balanced is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of balanced is successfully returned, __ADLX_OK__ is returned.
- * If the state of balanced is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * The balanced tuning preset offers all-round performance with a balance of power, clocks, and fan settings. Use of the balanced tuning preset is limited to some GPUs. - * @ENG_END_DOX - * - *@copydoc IADLXGPUPresetTuning_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupportedBalanced (adlx_bool* supported) = 0; - - /** - *@page DOX_IADLXGPUPresetTuning_IsSupportedTurbo IsSupportedTurbo - *@ENG_START_DOX @brief Checks if the turbo tuning preset is supported on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupportedTurbo (adlx_bool* supported) - *@codeEnd - * - *@params - *@paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of turbo is returned. The variable is __true__ if turbo is supported. The variable is __false__ if turbo is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of turbo is successfully returned, __ADLX_OK__ is returned.
- * If the state of turbo is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * The turbo tuning preset sets a higher power limit to allow more headroom for performance. Use of the turbo tuning preset is limited to some GPUs. - * @ENG_END_DOX - * - *@copydoc IADLXGPUPresetTuning_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupportedTurbo (adlx_bool* supported) = 0; - - /** - *@page DOX_IADLXGPUPresetTuning_IsSupportedRage IsSupportedRage - *@ENG_START_DOX @brief Checks if the rage tuning preset is supported on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupportedRage (adlx_bool* supported) - *@codeEnd - * - *@params - *@paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of rage is returned. The variable is __true__ if rage is supported. The variable is __false__ if rage is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of rage is successfully returned, __ADLX_OK__ is returned.
- * If the state of rage is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * The rage tuning preset sets a higher power limit to allow more headroom for performance. - * @ENG_END_DOX - * - *@copydoc IADLXGPUPresetTuning_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupportedRage (adlx_bool* supported) = 0; - - /** - *@page DOX_IADLXGPUPresetTuning_IsCurrentPowerSaver IsCurrentPowerSaver - *@ENG_START_DOX @brief Checks if the power saver tuning preset is used on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsCurrentPowerSaver (adlx_bool* isPowerSaver) - *@codeEnd - * - *@params - *@paramrow{1.,[out],isPowerSaver,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of power saver is returned. The variable is __true__ if power saver is applied. The variable is __false__ if power saver is not applied. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of power saver is successfully returned, __ADLX_OK__ is returned.
- * If the state of power saver is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * Use of the power saver tuning preset is limited to some GPUs. - * @ENG_END_DOX - * - *@copydoc IADLXGPUPresetTuning_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsCurrentPowerSaver (adlx_bool* isPowerSaver) = 0; - - /** - *@page DOX_IADLXGPUPresetTuning_IsCurrentQuiet IsCurrentQuiet - *@ENG_START_DOX @brief Checks if the quiet tuning preset is used on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsCurrentQuiet (adlx_bool* isQuiet) - *@codeEnd - * - *@params - *@paramrow{1.,[out],isQuiet,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of quiet is returned. The variable is __true__ if quiet is applied. The variable is __false__ if quiet is not applied. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of quiet is successfully returned, __ADLX_OK__ is returned.
- * If the state of quiet is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * The quiet tuning preset enables quiet operation with lowered power and fan settings. - * @ENG_END_DOX - * - *@copydoc IADLXGPUPresetTuning_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsCurrentQuiet (adlx_bool* isQuiet) = 0; - - /** - *@page DOX_IADLXGPUPresetTuning_IsCurrentBalanced IsCurrentBalanced - *@ENG_START_DOX @brief Checks if the balanced tuning preset is used on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsCurrentBalanced (adlx_bool* isBalanced) - *@codeEnd - * - *@params - *@paramrow{1.,[out],isBalanced,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of balanced is returned. The variable is __true__ if balanced is applied. The variable is __false__ if balanced is not applied. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of balanced is successfully returned, __ADLX_OK__ is returned.
- * If the state of balanced is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * The balanced tuning preset offers all-round performance with a balance of power, clocks, and fan settings. Use of the balanced tuning preset is limited to some GPUs. - * @ENG_END_DOX - * - *@copydoc IADLXGPUPresetTuning_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsCurrentBalanced (adlx_bool* isBalance) = 0; - - /** - *@page DOX_IADLXGPUPresetTuning_IsCurrentTurbo IsCurrentTurbo - *@ENG_START_DOX @brief Checks if the turbo tuning preset is used on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsCurrentTurbo (adlx_bool* isTurbo) - *@codeEnd - * - *@params - *@paramrow{1.,[out],isTurbo,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of turbo is returned. The variable is __true__ if turbo is applied. The variable is __false__ if turbo is not applied. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of turbo is successfully returned, __ADLX_OK__ is returned.
- * If the state of turbo is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * The turbo tuning preset sets a higher power limit to allow more headroom for performance. Use of the turbo preset is limited to some GPUs. - * @ENG_END_DOX - * - *@copydoc IADLXGPUPresetTuning_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsCurrentTurbo (adlx_bool* isTurbo) = 0; - - /** - *@page DOX_IADLXGPUPresetTuning_IsCurrentRage IsCurrentRage - *@ENG_START_DOX @brief Checks if the rage tuning preset is used on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsCurrentRage (adlx_bool* isRage) - *@codeEnd - * - *@params - *@paramrow{1.,[out],isRage,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of rage is returned. The variable is __true__ if rage is applied. The variable is __false__ if rage is not applied. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of rage is successfully returned, __ADLX_OK__ is returned.
- * If the state of rage is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * The rage tuning preset sets a higher power limit to allow more headroom for performance. - * @ENG_END_DOX - * - *@copydoc IADLXGPUPresetTuning_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsCurrentRage (adlx_bool* isRage) = 0; - - /** - *@page DOX_IADLXGPUPresetTuning_SetPowerSaver SetPowerSaver - *@ENG_START_DOX @brief Sets the power saver tuning preset on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetPowerSaver () - *@codeEnd - * - *@params - * N/A - * - *@retvalues - *@ENG_START_DOX If the power saver is successfully applied, __ADLX_OK__ is returned.
- * If the power saver is not successfully applied, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * Use of the power saver tuning preset is limited to some GPUs. - * @ENG_END_DOX - * - *@copydoc IADLXGPUPresetTuning_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetPowerSaver () = 0; - - /** - *@page DOX_IADLXGPUPresetTuning_SetQuiet SetQuiet - *@ENG_START_DOX @brief Sets the quiet tuning preset on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetQuiet () - *@codeEnd - * - *@params - * N/A - * - *@retvalues - *@ENG_START_DOX If the quiet is successfully applied, __ADLX_OK__ is returned.
- * If the quiet is not successfully applied, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * The quiet tuning preset enables quiet operation with lowered power and fan settings. - * @ENG_END_DOX - * - *@copydoc IADLXGPUPresetTuning_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetQuiet () = 0; - - /** - *@page DOX_IADLXGPUPresetTuning_SetBalanced SetBalanced - *@ENG_START_DOX @brief Sets the balanced tuning preset on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetBalanced () - *@codeEnd - * - *@params - * N/A - * - *@retvalues - *@ENG_START_DOX If the balanced is successfully applied, __ADLX_OK__ is returned.
- * If the balanced is not successfully applied, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * The balanced tuning preset offers all-round performance with a balance of power, clocks, and fan settings. Use of the balanced tuning preset is limited to some GPUs. - * @ENG_END_DOX - * - *@copydoc IADLXGPUPresetTuning_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetBalanced () = 0; - - /** - *@page DOX_IADLXGPUPresetTuning_SetTurbo SetTurbo - *@ENG_START_DOX @brief Sets the turbo tuning preset on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetTurbo () - *@codeEnd - * - *@params - * N/A - * - *@retvalues - *@ENG_START_DOX If the turbo is successfully applied, __ADLX_OK__ is returned.
- * If the turbo is not successfully applied, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * The turbo tuning preset sets a higher power limit to allow more headroom for performance. Use of the turbo tuning preset is limited to some GPUs. - * @ENG_END_DOX - * - *@copydoc IADLXGPUPresetTuning_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetTurbo () = 0; - - /** - *@page DOX_IADLXGPUPresetTuning_SetRage SetRage - *@ENG_START_DOX @brief Sets the rage tuning preset on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetRage () - *@codeEnd - * - *@params - * N/A - * - *@retvalues - *@ENG_START_DOX If the rage is successfully applied, __ADLX_OK__ is returned.
- * If the rage is not successfully applied, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * The rage tuning preset sets a higher power limit to allow more headroom for performance. - * @ENG_END_DOX - * - *@copydoc IADLXGPUPresetTuning_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetRage () = 0; - }; - //---------------------------------------------------------------------------------------------- - typedef IADLXInterfacePtr_T IADLXGPUPresetTuningPtr; -} //namespace adlx -#else //__cplusplus -ADLX_DECLARE_IID (IADLXGPUPresetTuning, L"IADLXGPUPresetTuning") - -typedef struct IADLXGPUPresetTuning IADLXGPUPresetTuning; - -typedef struct IADLXGPUPresetTuningVtbl -{ - //IADLXInterface - adlx_long (ADLX_STD_CALL *Acquire)(IADLXGPUPresetTuning* pThis); - adlx_long (ADLX_STD_CALL *Release)(IADLXGPUPresetTuning* pThis); - ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLXGPUPresetTuning* pThis, const wchar_t* interfaceId, void** ppInterface); - - //IADLXGPUPresetTuning - ADLX_RESULT (ADLX_STD_CALL *IsSupportedPowerSaver)(IADLXGPUPresetTuning* pThis, adlx_bool* supported); - ADLX_RESULT (ADLX_STD_CALL *IsSupportedQuiet)(IADLXGPUPresetTuning* pThis, adlx_bool* supported); - ADLX_RESULT (ADLX_STD_CALL *IsSupportedBalanced)(IADLXGPUPresetTuning* pThis, adlx_bool* supported); - ADLX_RESULT (ADLX_STD_CALL *IsSupportedTurbo)(IADLXGPUPresetTuning* pThis, adlx_bool* supported); - ADLX_RESULT (ADLX_STD_CALL *IsSupportedRage)(IADLXGPUPresetTuning* pThis, adlx_bool* supported); - - ADLX_RESULT (ADLX_STD_CALL *IsCurrentPowerSaver)(IADLXGPUPresetTuning* pThis, adlx_bool* isPowerSaver); - ADLX_RESULT (ADLX_STD_CALL *IsCurrentQuiet)(IADLXGPUPresetTuning* pThis, adlx_bool* isQuiet); - ADLX_RESULT (ADLX_STD_CALL *IsCurrentBalanced)(IADLXGPUPresetTuning* pThis, adlx_bool* isBalance); - ADLX_RESULT (ADLX_STD_CALL *IsCurrentTurbo)(IADLXGPUPresetTuning* pThis, adlx_bool* isTurbo); - ADLX_RESULT (ADLX_STD_CALL *IsCurrentRage)(IADLXGPUPresetTuning* pThis, adlx_bool* isRage); - - ADLX_RESULT (ADLX_STD_CALL *SetPowerSaver)(IADLXGPUPresetTuning* pThis); - ADLX_RESULT (ADLX_STD_CALL *SetQuiet)(IADLXGPUPresetTuning* pThis); - ADLX_RESULT (ADLX_STD_CALL *SetBalanced)(IADLXGPUPresetTuning* pThis); - ADLX_RESULT (ADLX_STD_CALL *SetTurbo)(IADLXGPUPresetTuning* pThis); - ADLX_RESULT (ADLX_STD_CALL *SetRage)(IADLXGPUPresetTuning* pThis); - -}IADLXGPUPresetTuningVtbl; - -struct IADLXGPUPresetTuning { const IADLXGPUPresetTuningVtbl *pVtbl; }; -#endif //__cplusplus -#pragma endregion IADLXGPUPresetTuning - -#endif//ADLX_IGPUPRESETTUNING_H diff --git a/src/adlx/sdk/Include/IGPUTuning.h b/src/adlx/sdk/Include/IGPUTuning.h deleted file mode 100644 index 1251680..0000000 --- a/src/adlx/sdk/Include/IGPUTuning.h +++ /dev/null @@ -1,1239 +0,0 @@ -// -// Copyright (c) 2021 - 2023 Advanced Micro Devices, Inc. All rights reserved. -// -//------------------------------------------------------------------------------------------------- - -#ifndef ADLX_IGPUTUNING_H -#define ADLX_IGPUTUNING_H -#pragma once - -#include "ADLXStructures.h" -#include "ICollections.h" -#include "IChangedEvent.h" - -//------------------------------------------------------------------------------------------------- -//IGPUTuning.h - Interfaces for ADLX GPU Tuning functionality - -//Manual Tuning interface -#pragma region IADLXManualTuningState -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLXManualTuningState : public IADLXInterface - { - public: - ADLX_DECLARE_IID (L"IADLXManualTuningState") - - /** - * @page DOX_IADLXManualTuningState_GetFrequency GetFrequency - * @ENG_START_DOX - * @brief Gets the frequency in the manual tuning state on a GPU. - * @ENG_END_DOX - * - * @syntax - * @codeStart - * @ref ADLX_RESULT GetFrequency (adlx_uint* value) - * @codeEnd - * - * @params - * @paramrow{1.,[out] ,value,adlx_uint* ,@ENG_START_DOX The pointer to a variable where the frequency (in MHz) in the manual tuning state is returned. @ENG_END_DOX} - * - * @retvalues - * @ENG_START_DOX - * If the frequency is successfully returned, __ADLX_OK__ is returned.
- * If the frequency is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
- * @ENG_END_DOX - * - * @copydoc IADLXManualTuningState_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetFrequency (adlx_int* value) = 0; - - /** - *@page DOX_IADLXManualTuningState_SetFrequency SetFrequency - *@ENG_START_DOX @brief Sets the frequency in the manual tuning state on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetFrequency (adlx_int value) - *@codeEnd - * - * @params - * @paramrow{1.,[in] ,value,adlx_int ,@ENG_START_DOX The new frequency (in MHz) in the manual tuning state. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the frequency is successfully set, __ADLX_OK__ is returned.
- * If the frequency is not successfully set, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@copydoc IADLXManualTuningState_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetFrequency (adlx_int value) = 0; - - /** - * @page DOX_IADLXManualTuningState_GetVoltage GetVoltage - * @ENG_START_DOX - * @brief Gets the voltage in the manual tuning state on a GPU. - * @ENG_END_DOX - * - * @syntax - * @codeStart - * @ref ADLX_RESULT GetVoltage (adlx_uint* value) - * @codeEnd - * - * @params - * @paramrow{1.,[out] ,value,adlx_uint* ,@ENG_START_DOX The pointer to a variable where the voltage (in mV) in the manual tuning state is returned. @ENG_END_DOX} - * - * @retvalues - * @ENG_START_DOX - * If the voltage is successfully returned, __ADLX_OK__ is returned.
- * If the voltage is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
- * @ENG_END_DOX - * - * @copydoc IADLXManualTuningState_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetVoltage (adlx_int* value) = 0; - - /** - *@page DOX_IADLXManualTuningState_SetVoltage SetVoltage - *@ENG_START_DOX @brief Sets the voltage in the manual tuning state on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetVoltage (adlx_int value) - *@codeEnd - * - * @params - * @paramrow{1.,[in] ,value,adlx_int ,@ENG_START_DOX The new voltage (in mV) in the manual tuning state. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the voltage is successfully set, __ADLX_OK__ is returned.
- * If the voltage is not successfully set, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@copydoc IADLXManualTuningState_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetVoltage (adlx_int value) = 0; - }; - //---------------------------------------------------------------------------------------------- - typedef IADLXInterfacePtr_T IADLXManualTuningStatePtr; -} //namespace adlx -#else //__cplusplus -ADLX_DECLARE_IID (IADLXManualTuningState, L"IADLXManualTuningState") - -typedef struct IADLXManualTuningState IADLXManualTuningState; - -typedef struct IADLXManualTuningStateVtbl -{ - //IADLXInterface - adlx_long (ADLX_STD_CALL *Acquire)(IADLXManualTuningState* pThis); - adlx_long (ADLX_STD_CALL *Release)(IADLXManualTuningState* pThis); - ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLXManualTuningState* pThis, const wchar_t* interfaceId, void** ppInterface); - - //IADLXManualTuningState - ADLX_RESULT (ADLX_STD_CALL *GetFrequency)(IADLXManualTuningState* pThis, adlx_int* value); - ADLX_RESULT (ADLX_STD_CALL *SetFrequency)(IADLXManualTuningState* pThis, adlx_int value); - ADLX_RESULT (ADLX_STD_CALL *GetVoltage)(IADLXManualTuningState* pThis, adlx_int* value); - ADLX_RESULT (ADLX_STD_CALL *SetVoltage)(IADLXManualTuningState* pThis, adlx_int value); -}IADLXManualTuningStateVtbl; - -struct IADLXManualTuningState { const IADLXManualTuningStateVtbl *pVtbl; }; -#endif //__cplusplus -#pragma endregion IADLXManualTuningState - -#pragma region IADLXMemoryTimingDescription -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLXMemoryTimingDescription : public IADLXInterface - { - public: - ADLX_DECLARE_IID (L"IADLXMemoryTimingDescription") - - /** - * @page DOX_IADLXMemoryTimingDescription_GetDescription GetDescription - * @ENG_START_DOX - * @brief Gets the memory timing description. - * @ENG_END_DOX - * - * @syntax - * @codeStart - * @ref ADLX_RESULT GetDescription (@ref ADLX_MEMORYTIMING_DESCRIPTION* description) - * @codeEnd - * - * @params - * @paramrow{1.,[out] ,description,@ref ADLX_MEMORYTIMING_DESCRIPTION* ,@ENG_START_DOX The pointer to a variable where the memory timing description is returned. @ENG_END_DOX} - * - * @retvalues - * @ENG_START_DOX - * If the memory timing description is successfully returned, __ADLX_OK__ is returned.
- * If the memory timing description is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
- * @ENG_END_DOX - * - * @copydoc IADLXMemoryTimingDescription_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetDescription (ADLX_MEMORYTIMING_DESCRIPTION* description) = 0; - }; - typedef IADLXInterfacePtr_T IADLXMemoryTimingDescriptionPtr; -} //namespace adlx -#else //__cplusplus -ADLX_DECLARE_IID (IADLXMemoryTimingDescription, L"IADLXMemoryTimingDescription") - -typedef struct IADLXMemoryTimingDescription IADLXMemoryTimingDescription; - -typedef struct IADLXMemoryTimingDescriptionVtbl -{ - //IADLXInterface - adlx_long (ADLX_STD_CALL *Acquire)(IADLXMemoryTimingDescription* pThis); - adlx_long (ADLX_STD_CALL *Release)(IADLXMemoryTimingDescription* pThis); - ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLXMemoryTimingDescription* pThis, const wchar_t* interfaceId, void** ppInterface); - - //IADLXMemoryTimingDescription - ADLX_RESULT (ADLX_STD_CALL *GetDescription)(IADLXMemoryTimingDescription* pThis, ADLX_MEMORYTIMING_DESCRIPTION* description); -}IADLXMemoryTimingDescriptionVtbl; - -struct IADLXMemoryTimingDescription { const IADLXMemoryTimingDescriptionVtbl *pVtbl; }; -#endif //__cplusplus -#pragma endregion IADLXMemoryTimingDescription - -//IADLXManualTuningState list interface -#pragma region IADLXManualTuningStateList -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLXManualTuningStateList : public IADLXList - { - public: - ADLX_DECLARE_IID (L"IADLXManualTuningStateList") - //Lists must declare the type of items it holds - what was passed as ADLX_DECLARE_IID() in that interface - ADLX_DECLARE_ITEM_IID (IADLXManualTuningState::IID ()) - - /** - * @page DOX_IADLXManualTuningStateList_At At - * @ENG_START_DOX - * @brief Returns the reference counted interface at the requested location. - * @ENG_END_DOX - * - * @syntax - * @codeStart - * @ref ADLX_RESULT At (const adlx_uint location, @ref DOX_IADLXManualTuningState** ppItem) - * @codeEnd - * - * @params - * @paramrow{1.,[in] ,location,const adlx_uint ,@ENG_START_DOX The location of the requested interface. @ENG_END_DOX} - * @paramrow{2.,[out] ,ppItem,@ref DOX_IADLXManualTuningState** ,@ENG_START_DOX The address of a pointer to the returned interface. If the interface is not successfully returned then the method sets the dereferenced address __*ppItem__ to __nullptr__. @ENG_END_DOX} - * - * @retvalues - * @ENG_START_DOX - * If the location is within the list bounds, __ADLX_OK__ is returned.
- * If the location is not within the list bounds, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
- * @ENG_END_DOX - * - * @detaileddesc - * @ENG_START_DOX - * @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. - * @ENG_END_DOX - * - * @addinfo - * @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 - * - * @copydoc IADLXManualTuningStateList_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL At (const adlx_uint location, IADLXManualTuningState** ppItem) = 0; - - /** - *@page DOX_IADLXManualTuningStateList_Add_Back Add_Back - *@ENG_START_DOX @brief Adds an interface to the end of a list. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT Add_Back (@ref DOX_IADLXManualTuningState* pItem) - *@codeEnd - * - *@params - *@paramrow{1.,[in] ,pItem,@ref DOX_IADLXManualTuningState* ,@ENG_START_DOX The pointer to the interface to be added to the list. @ENG_END_DOX} - * - * @retvalues - * @ENG_START_DOX - * If the interface is added successfully to the end of the list, __ADLX_OK__ is returned.
- * If the interface is not added to the end of the list, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
- * @ENG_END_DOX - * - *@copydoc IADLXManualTuningStateList_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL Add_Back (IADLXManualTuningState* pItem) = 0; - }; //IADLXManualTuningStateList - //---------------------------------------------------------------------------------------------- - typedef IADLXInterfacePtr_T IADLXManualTuningStateListPtr; -} //namespace adlx -#else //__cplusplus -ADLX_DECLARE_IID (IADLXManualTuningStateList, L"IADLXManualTuningStateList") -ADLX_DECLARE_ITEM_IID (IADLXManualTuningState, IID_IADLXManualTuningState ()) - -typedef struct IADLXManualTuningStateList IADLXManualTuningStateList; - -typedef struct IADLXManualTuningStateListVtbl -{ - //IADLXInterface - adlx_long (ADLX_STD_CALL *Acquire)(IADLXManualTuningStateList* pThis); - adlx_long (ADLX_STD_CALL *Release)(IADLXManualTuningStateList* pThis); - ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLXManualTuningStateList* pThis, const wchar_t* interfaceId, void** ppInterface); - - //IADLXList - adlx_uint (ADLX_STD_CALL *Size)(IADLXManualTuningStateList* pThis); - adlx_bool (ADLX_STD_CALL *Empty)(IADLXManualTuningStateList* pThis); - adlx_uint (ADLX_STD_CALL *Begin)(IADLXManualTuningStateList* pThis); - adlx_uint (ADLX_STD_CALL *End)(IADLXManualTuningStateList* pThis); - ADLX_RESULT (ADLX_STD_CALL *At)(IADLXManualTuningStateList* pThis, const adlx_uint location, IADLXInterface** ppItem); - ADLX_RESULT (ADLX_STD_CALL *Clear)(IADLXManualTuningStateList* pThis); - ADLX_RESULT (ADLX_STD_CALL *Remove_Back)(IADLXManualTuningStateList* pThis); - ADLX_RESULT (ADLX_STD_CALL *Add_Back)(IADLXManualTuningStateList* pThis, IADLXInterface* pItem); - - //IADLXManualTuningStateList - ADLX_RESULT (ADLX_STD_CALL *At_ManualTuningStateList)(IADLXManualTuningStateList* pThis, const adlx_uint location, IADLXManualTuningState** ppItem); - ADLX_RESULT (ADLX_STD_CALL *Add_Back_ManualTuningStateList)(IADLXManualTuningStateList* pThis, IADLXManualTuningState* pItem); - -}IADLXManualTuningStateListVtbl; - -struct IADLXManualTuningStateList { const IADLXManualTuningStateListVtbl *pVtbl; }; -#endif //__cplusplus -#pragma endregion IADLXManualTuningStateList - -#pragma region IADLXMemoryTimingDescriptionList -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLXMemoryTimingDescriptionList : public IADLXList - { - public: - ADLX_DECLARE_IID (L"IADLXMemoryTimingDescriptionList") - //Lists must declare the type of items it holds - what was passed as ADLX_DECLARE_IID() in that interface - ADLX_DECLARE_ITEM_IID (IADLXMemoryTimingDescription::IID ()) - - /** - * @page DOX_IADLXMemoryTimingDescriptionList_At At - * @ENG_START_DOX - * @brief Returns the reference counted interface at the requested location. - * @ENG_END_DOX - * - * @syntax - * @codeStart - * @ref ADLX_RESULT At (const adlx_uint location, @ref DOX_IADLXMemoryTimingDescription** ppItem) - * @codeEnd - * - * @params - * @paramrow{1.,[in] ,location,const adlx_uint ,@ENG_START_DOX The location of the requested interface. @ENG_END_DOX} - * @paramrow{2.,[out] ,ppItem,@ref DOX_IADLXMemoryTimingDescription** ,@ENG_START_DOX The address of a pointer to the returned interface. If the interface is not successfully returned then the method sets the dereferenced address __*ppItem__ to __nullptr__. @ENG_END_DOX} - * - * @retvalues - * @ENG_START_DOX - * If the location is within the list bounds, __ADLX_OK__ is returned.
- * If the location is not within the list bounds, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
- * @ENG_END_DOX - * - * @detaileddesc - * @ENG_START_DOX - * @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. - * @ENG_END_DOX - * - * @addinfo - * @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 - * - * @copydoc IADLXMemoryTimingDescriptionList_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL At (const adlx_uint location, IADLXMemoryTimingDescription** ppItem) = 0; - - /** - *@page DOX_IADLXMemoryTimingDescriptionList_Add_Back Add_Back - *@ENG_START_DOX @brief Adds an interface to the end of a list. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT Add_Back (@ref DOX_IADLXMemoryTimingDescription* pItem) - *@codeEnd - * - *@params - *@paramrow{1.,[in] ,pItem,@ref DOX_IADLXMemoryTimingDescription* ,@ENG_START_DOX The pointer to the interface to be added to the list. @ENG_END_DOX} - * - * @retvalues - * @ENG_START_DOX - * If the interface is added successfully to the end of the list, __ADLX_OK__ is returned.
- * If the interface is not added to the end of the list, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
- * @ENG_END_DOX - * - *@copydoc IADLXMemoryTimingDescriptionList_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL Add_Back (IADLXMemoryTimingDescription* pItem) = 0; - }; - typedef IADLXInterfacePtr_T IADLXMemoryTimingDescriptionListPtr; -} -#else //__cplusplus -ADLX_DECLARE_IID (IADLXMemoryTimingDescriptionList, L"IADLXMemoryTimingDescriptionList") -ADLX_DECLARE_ITEM_IID (IADLXMemoryTimingDescription, IID_IADLXMemoryTimingDescription ()) - -typedef struct IADLXMemoryTimingDescriptionList IADLXMemoryTimingDescriptionList; - -typedef struct IADLXMemoryTimingDescriptionListVtbl -{ - //IADLXInterface - adlx_long (ADLX_STD_CALL *Acquire)(IADLXMemoryTimingDescriptionList* pThis); - adlx_long (ADLX_STD_CALL *Release)(IADLXMemoryTimingDescriptionList* pThis); - ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLXMemoryTimingDescriptionList* pThis, const wchar_t* interfaceId, void** ppInterface); - - //IADLXList - adlx_uint (ADLX_STD_CALL *Size)(IADLXMemoryTimingDescriptionList* pThis); - adlx_bool (ADLX_STD_CALL *Empty)(IADLXMemoryTimingDescriptionList* pThis); - adlx_uint (ADLX_STD_CALL *Begin)(IADLXMemoryTimingDescriptionList* pThis); - adlx_uint (ADLX_STD_CALL *End)(IADLXMemoryTimingDescriptionList* pThis); - ADLX_RESULT (ADLX_STD_CALL *At)(IADLXMemoryTimingDescriptionList* pThis, const adlx_uint location, IADLXInterface** ppItem); - ADLX_RESULT (ADLX_STD_CALL *Clear)(IADLXMemoryTimingDescriptionList* pThis); - ADLX_RESULT (ADLX_STD_CALL *Remove_Back)(IADLXMemoryTimingDescriptionList* pThis); - ADLX_RESULT (ADLX_STD_CALL *Add_Back)(IADLXMemoryTimingDescriptionList* pThis, IADLXInterface* pItem); - - //IADLXMemoryTimingDescriptionList - ADLX_RESULT (ADLX_STD_CALL *At_MemoryTimingDescriptionList)(IADLXMemoryTimingDescriptionList* pThis, const adlx_uint location, IADLXMemoryTimingDescription** ppItem); - ADLX_RESULT (ADLX_STD_CALL *Add_Back_MemoryTimingDescriptionList)(IADLXMemoryTimingDescriptionList* pThis, IADLXMemoryTimingDescription* pItem); - -}IADLXMemoryTimingDescriptionListVtbl; - -struct IADLXMemoryTimingDescriptionList { const IADLXMemoryTimingDescriptionListVtbl *pVtbl; }; -#endif //__cplusplus -#pragma endregion IADLXMemoryTimingDescriptionList - -#pragma region IADLXGPUTuningChangedEvent -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLXGPU; - class ADLX_NO_VTABLE IADLXGPUTuningChangedEvent : public IADLXChangedEvent - { - public: - ADLX_DECLARE_IID (L"IADLXGPUTuningChangedEvent") - /** - *@page DOX_IADLXGPUTuningChangedEvent_GetGPU GetGPU - *@ENG_START_DOX @brief Gets the reference counted GPU interface on which the GPU tuning is changed. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetGPU (@ref DOX_IADLXGPU** ppGPU) - *@codeEnd - * - *@params - *@paramrow{1.,[out] ,ppGPU,@ref DOX_IADLXGPU** ,@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 __*ppGPU__ to __nullptr__. @ENG_END_DOX} - * - * - *@retvalues - *@ENG_START_DOX If the interface is successfully returned, __ADLX_OK__ is returned.
- * If the interface is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX - * - *@addinfo - *@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.
- * __Note:__ @ref DOX_IADLXGPUTuningChangedEvent_GetGPU returns the reference counted GPU interface used by all the methods in this interface to check if there are any changes in GPU tuning. - *@ENG_END_DOX - * - *@copydoc IADLXGPUTuningChangedEvent_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetGPU (IADLXGPU** ppGPU) = 0; - - /** - *@page DOX_IADLXGPUTuningChangedEvent_IsAutomaticTuningChanged IsAutomaticTuningChanged - *@ENG_START_DOX @brief Checks if the automatic tuning settings are changed. @ENG_END_DOX - * - *@syntax - *@codeStart - * adlx_bool IsAutomaticTuningChanged () - *@codeEnd - * - *@params - *N/A - * - *@retvalues - *@ENG_START_DOX If the automatic tuning settings are changed, __true__ is returned.
- * If the automatic tuning settings are not changed, __false__ is returned.
@ENG_END_DOX - * - *@addinfo - *@ENG_START_DOX - * __Note:__ To obtain the GPU, use @ref DOX_IADLXGPUTuningChangedEvent_GetGPU. - *@ENG_END_DOX - * - *@copydoc IADLXGPUTuningChangedEvent_REQ_TABLE - * - */ - virtual adlx_bool ADLX_STD_CALL IsAutomaticTuningChanged () = 0; - - /** - *@page DOX_IADLXGPUTuningChangedEvent_IsPresetTuningChanged IsPresetTuningChanged - *@ENG_START_DOX @brief Checks if the preset tuning settings are changed. @ENG_END_DOX - * - *@syntax - *@codeStart - * adlx_bool IsPresetTuningChanged () - *@codeEnd - * - *@params - *N/A - * - *@retvalues - *@ENG_START_DOX If the preset tuning settings are changed, __true__ is returned.
- * If the preset tuning settings are not changed, __false__ is returned.
@ENG_END_DOX - * - *@addinfo - *@ENG_START_DOX - * __Note:__ To obtain the GPU, use @ref DOX_IADLXGPUTuningChangedEvent_GetGPU. - *@ENG_END_DOX - * - *@copydoc IADLXGPUTuningChangedEvent_REQ_TABLE - * - */ - virtual adlx_bool ADLX_STD_CALL IsPresetTuningChanged () = 0; - - /** - *@page DOX_IADLXGPUTuningChangedEvent_IsManualGPUCLKTuningChanged IsManualGPUCLKTuningChanged - *@ENG_START_DOX @brief Checks if the manual graphic clock tuning settings are changed. @ENG_END_DOX - * - *@syntax - *@codeStart - * adlx_bool IsManualGPUCLKTuningChanged () - *@codeEnd - * - *@params - *N/A - * - *@retvalues - *@ENG_START_DOX If the manual graphic clock tuning settings are changed, __true__ is returned.
- * If the manual graphic clock tuning settings are not changed, __false__ is returned.
@ENG_END_DOX - * - *@addinfo - *@ENG_START_DOX - * __Note:__ To obtain the GPU, use @ref DOX_IADLXGPUTuningChangedEvent_GetGPU. - *@ENG_END_DOX - * - *@copydoc IADLXGPUTuningChangedEvent_REQ_TABLE - * - */ - virtual adlx_bool ADLX_STD_CALL IsManualGPUCLKTuningChanged () = 0; - - /** - *@page DOX_IADLXGPUTuningChangedEvent_IsManualVRAMTuningChanged IsManualVRAMTuningChanged - *@ENG_START_DOX @brief Checks if the manual VRAM tuning settings are changed. @ENG_END_DOX - * - *@syntax - *@codeStart - * adlx_bool IsManualVRAMTuningChanged () - *@codeEnd - * - *@params - *N/A - * - *@retvalues - *@ENG_START_DOX If the manual VRAM tuning settings are changed, __true__ is returned.
- * If the manual VRAM tuning settings are not changed, __false__ is returned.
@ENG_END_DOX - * - *@addinfo - *@ENG_START_DOX - * __Note:__ To obtain the GPU, use @ref DOX_IADLXGPUTuningChangedEvent_GetGPU. - *@ENG_END_DOX - * - *@copydoc IADLXGPUTuningChangedEvent_REQ_TABLE - * - */ - virtual adlx_bool ADLX_STD_CALL IsManualVRAMTuningChanged () = 0; - - /** - *@page DOX_IADLXGPUTuningChangedEvent_IsManualFanTuningChanged IsManualFanTuningChanged - *@ENG_START_DOX @brief Checks if the manual fan tuning settings are changed. @ENG_END_DOX - * - *@syntax - *@codeStart - * adlx_bool IsManualFanTuningChanged () - *@codeEnd - * - *@params - *N/A - * - *@retvalues - *@ENG_START_DOX If the manual fan tuning settings are changed, __true__ is returned.
- * If the manual fan tuning settings are not changed, __false__ is returned.
@ENG_END_DOX - * - *@addinfo - *@ENG_START_DOX - * __Note:__ To obtain the GPU, use @ref DOX_IADLXGPUTuningChangedEvent_GetGPU. - *@ENG_END_DOX - * - *@copydoc IADLXGPUTuningChangedEvent_REQ_TABLE - * - */ - virtual adlx_bool ADLX_STD_CALL IsManualFanTuningChanged () = 0; - - /** - *@page DOX_IADLXGPUTuningChangedEvent_IsManualPowerTuningChanged IsManualPowerTuningChanged - *@ENG_START_DOX @brief Checks if the manual power tuning settings are changed. @ENG_END_DOX - * - *@syntax - *@codeStart - * adlx_bool IsManualPowerTuningChanged () - *@codeEnd - * - *@params - *N/A - * - *@retvalues - *@ENG_START_DOX If the manual power tuning settings are changed, __true__ is returned.
- * If the manual power tuning settings are not changed, __false__ is returned.
@ENG_END_DOX - * - *@addinfo - *@ENG_START_DOX - * __Note:__ To obtain the GPU, use @ref DOX_IADLXGPUTuningChangedEvent_GetGPU. - *@ENG_END_DOX - * - *@copydoc IADLXGPUTuningChangedEvent_REQ_TABLE - * - */ - virtual adlx_bool ADLX_STD_CALL IsManualPowerTuningChanged () = 0; - }; //IADLXGPUTuningChangedEvent - //---------------------------------------------------------------------------------------------- - typedef IADLXInterfacePtr_T IADLXGPUTuningChangedEventPtr; -} //namespace adlx -#else //__cplusplus -typedef struct IADLXGPU IADLXGPU; - -ADLX_DECLARE_IID (IADLXGPUTuningChangedEvent, L"IADLXGPUTuningChangedEvent") -typedef struct IADLXGPUTuningChangedEvent IADLXGPUTuningChangedEvent; - -typedef struct IADLXGPUTuningChangedEventVtbl -{ - //IADLXInterface - adlx_long (ADLX_STD_CALL *Acquire)(IADLXGPUTuningChangedEvent* pThis); - adlx_long (ADLX_STD_CALL *Release)(IADLXGPUTuningChangedEvent* pThis); - ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLXGPUTuningChangedEvent* pThis, const wchar_t* interfaceId, void** ppInterface); - - //IADLXChangedEvent - ADLX_SYNC_ORIGIN(ADLX_STD_CALL* GetOrigin)(IADLXGPUTuningChangedEvent* pThis); - - // IADLXAutomaticTuningChangedEvent interface - ADLX_RESULT (ADLX_STD_CALL *GetGPU)(IADLXGPUTuningChangedEvent* pThis, IADLXGPU** ppGPU); - - adlx_bool (ADLX_STD_CALL *IsAutomaticTuningChanged)(IADLXGPUTuningChangedEvent* pThis); - adlx_bool (ADLX_STD_CALL *IsPresetTuningChanged)(IADLXGPUTuningChangedEvent* pThis); - adlx_bool (ADLX_STD_CALL *IsManualGPUCLKTuningChanged)(IADLXGPUTuningChangedEvent* pThis); - adlx_bool (ADLX_STD_CALL *IsManualVRAMTuningChanged)(IADLXGPUTuningChangedEvent* pThis); - adlx_bool (ADLX_STD_CALL *IsManualFanTuningChanged)(IADLXGPUTuningChangedEvent* pThis); - adlx_bool (ADLX_STD_CALL *IsManualPowerTuningChanged)(IADLXGPUTuningChangedEvent* pThis); -} IADLXGPUTuningChangedEventVtbl; - -struct IADLXGPUTuningChangedEvent { const IADLXGPUTuningChangedEventVtbl *pVtbl; }; -#endif //__cplusplus -#pragma endregion IADLXGPUTuningChangedEvent - -//GPU Tuning changed listener interface. To be implemented in application and passed in IADLXGPUTuningChangedHandling::IADLXGPUTuningChangedListener() -#pragma region IADLXGPUTuningChangedListener -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLXGPUTuningChangedListener - { - public: - /** - *@page DOX_IADLXGPUTuningChangedListener_OnGPUTuningChanged OnGPUTuningChanged - *@ENG_START_DOX @brief __OnGPUTuningChanged__ is called by ADLX when GPU tuning changes. @ENG_END_DOX - * - *@syntax - *@codeStart - * adlx_bool OnGPUTuningChanged (@ref DOX_IADLXGPUTuningChangedEvent* pGPUTuningChangedEvent) - *@codeEnd - * - *@params - *@paramrow{1.,[in] ,pGPUTuningChangedEvent,@ref DOX_IADLXGPUTuningChangedEvent* ,@ENG_START_DOX The pointer to a GPU tuning change event. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the application requires ADLX to continue notifying the next listener, __true__ must be returned.
- * If the application requires ADLX to stop notifying the next listener, __false__ must be returned.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX Once the application registers to the notifications with @ref DOX_IADLXGPUTuningChangedHandling_AddGPUTuningEventListener, ADLX will call this method until the application unregisters from the notifications with @ref DOX_IADLXGPUTuningChangedHandling_RemoveGPUTuningEventListener. - * The method should return quickly to not block the execution path in ADLX. If the method requires a long processing of the event notification, the application must hold onto a reference to the GPU tuning change event with @ref DOX_IADLXInterface_Acquire and make it available on an asynchronous thread and return immediately. When the asynchronous thread is done processing it must discard the GPU tuning change event with @ref DOX_IADLXInterface_Release. @ENG_END_DOX - * - *@copydoc IADLXGPUTuningChangedListener_REQ_TABLE - * - */ - virtual adlx_bool ADLX_STD_CALL OnGPUTuningChanged (IADLXGPUTuningChangedEvent* pGPUTuningChangedEvent) = 0; - }; //IADLXGPUTuningChangedListener -} //namespace adlx -#else //__cplusplus -typedef struct IADLXGPUTuningChangedListener IADLXGPUTuningChangedListener; - -typedef struct IADLXGPUTuningChangedListenerVtbl -{ - // IADLXGPUTuningChangedListener interface - adlx_bool (ADLX_STD_CALL *OnGPUTuningChanged)(IADLXGPUTuningChangedListener* pThis, IADLXGPUTuningChangedEvent* pGPUTuningChangedEvent); -} IADLXGPUTuningChangedListenerVtbl; - -struct IADLXGPUTuningChangedListener { const IADLXGPUTuningChangedListenerVtbl *pVtbl; }; -#endif //__cplusplus -#pragma endregion IADLXGPUTuningChangedListener - -//Interface that allows registration to gpu tuning-related events: -// - GPU Tuning List changed -// - Automatic Tuning changed -// - Preset Tuning changed -// - Manual Tuning changed -#pragma region IADLXGPUTuningChangedHandling -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLXGPUTuningChangedHandling : public IADLXInterface - { - public: - ADLX_DECLARE_IID (L"IADLXGPUTuningChangedHandling") - /** - *@page DOX_IADLXGPUTuningChangedHandling_AddGPUTuningEventListener AddGPUTuningEventListener - *@ENG_START_DOX @brief Registers an event listener for notifications when the GPU tuning changes. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT AddGPUTuningEventListener (@ref DOX_IADLXGPUTuningChangedListener* pGPUTuningChangedListener); - *@codeEnd - * - *@params - *@paramrow{1.,[in] ,pGPUTuningChangedListener,@ref DOX_IADLXGPUTuningChangedListener* ,@ENG_START_DOX The pointer to the event listener interface to register for receiving GPU tuning change notifications. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the event listener is successfully registered, __ADLX_OK__ is returned.
- * If the event listener is not successfully registered, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX After the event listener is successfully registered, ADLX will call @ref DOX_IADLXGPUTuningChangedListener_OnGPUTuningChanged method of the listener when GPU tuning changes.
- * The event listener instance must exist until the application unregisters the event listener with @ref DOX_IADLXGPUTuningChangedHandling_RemoveGPUTuningEventListener.
@ENG_END_DOX - * - *@copydoc IADLXGPUTuningChangedHandling_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL AddGPUTuningEventListener (IADLXGPUTuningChangedListener* pGPUTuningChangedListener) = 0; - - /** - *@page DOX_IADLXGPUTuningChangedHandling_RemoveGPUTuningEventListener RemoveGPUTuningEventListener - *@ENG_START_DOX @brief Unregisters an event listener from the GPU tuning event list. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT RemoveGPUTuningEventListener (@ref DOX_IADLXGPUTuningChangedListener* pGPUTuningChangedListener) - *@codeEnd - * - *@params - *@paramrow{1.,[in] ,pGPUTuningChangedListener,@ref DOX_IADLXGPUTuningChangedListener* ,@ENG_START_DOX The pointer to the event listener interface to unregister from receiving GPU tuning change notifications. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the event listener is successfully unregistered, __ADLX_OK__ is returned.
- * If the event listener is not successfully unregistered, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX After the event listener is successfully unregistered, ADLX will no longer call @ref DOX_IADLXGPUTuningChangedListener_OnGPUTuningChanged method of the listener when GPU tuning changes. - * The application can discard the event listener instance. @ENG_END_DOX - * - *@copydoc IADLXGPUTuningChangedHandling_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL RemoveGPUTuningEventListener (IADLXGPUTuningChangedListener* pGPUTuningChangedListener) = 0; - }; // IADLXGPUTuningChangedHandling - //---------------------------------------------------------------------------------------------- - typedef IADLXInterfacePtr_T IADLXGPUTuningChangedHandlingPtr; -} //namespace adlx -#else //__cplusplus -ADLX_DECLARE_IID (IADLXGPUTuningChangedHandling, L"IADLXGPUTuningChangedHandling") -typedef struct IADLXGPUTuningChangedHandling IADLXGPUTuningChangedHandling; - -typedef struct IADLXGPUTuningChangedHandlingVtbl -{ - //IADLXInterface - adlx_long (ADLX_STD_CALL *Acquire)(IADLXGPUTuningChangedHandling* pThis); - adlx_long (ADLX_STD_CALL *Release)(IADLXGPUTuningChangedHandling* pThis); - ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLXGPUTuningChangedHandling* pThis, const wchar_t* interfaceId, void** ppInterface); - - // IADLXGPUTuningChangedHandling interface - ADLX_RESULT (ADLX_STD_CALL *AddGPUTuningEventListener)(IADLXGPUTuningChangedHandling* pThis, IADLXGPUTuningChangedListener* pGPUTuningChangedListener); - ADLX_RESULT (ADLX_STD_CALL *RemoveGPUTuningEventListener)(IADLXGPUTuningChangedHandling* pThis, IADLXGPUTuningChangedListener* pGPUTuningChangedListener); -} IADLXGPUTuningChangedHandlingVtbl; - -struct IADLXGPUTuningChangedHandling { const IADLXGPUTuningChangedHandlingVtbl *pVtbl; }; -#endif //__cplusplus -#pragma endregion IADLXGPUTuningChangedHandling - - -//GPU Tuning Services interface -#pragma region IADLXGPUTuningServices -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLXGPUTuningServices : public IADLXInterface - { - public: - ADLX_DECLARE_IID (L"IADLXGPUTuningServices") - - /** - * @page DOX_IADLXGPUTuningServices_GetGPUTuningChangedHandling GetGPUTuningChangedHandling - * @ENG_START_DOX - * @brief Gets the reference counted interface that allows registering and unregistering for notifications when GPU tuning changes. - * @ENG_END_DOX - * - * @syntax - * @codeStart - * @ref ADLX_RESULT GetGPUTuningChangedHandling (@ref DOX_IADLXGPUTuningChangedHandling** ppGPUTuningChangedHandling) - * @codeEnd - * - * @params - * @paramrow{1.,[out] ,ppGPUTuningChangedHandling,@ref DOX_IADLXGPUTuningChangedHandling** ,@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 __*ppGPUTuningChangedHandling__ to __nullptr__. @ENG_END_DOX} - * - * @retvalues - * @ENG_START_DOX - * If the interface is successfully returned, __ADLX_OK__ is returned.
- * If the interface is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
- * @ENG_END_DOX - * - * @detaileddesc - * @ENG_START_DOX - * @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. - * @ENG_END_DOX - * - * @addinfo - * @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 - * - * @copydoc IADLXGPUTuningServices_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetGPUTuningChangedHandling (IADLXGPUTuningChangedHandling** ppGPUTuningChangedHandling) = 0; - - /** - *@page DOX_IADLXGPUTuningServices_IsAtFactory IsAtFactory - *@ENG_START_DOX @brief Checks if the GPU tuning on a GPU is set to factory settings. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsAtFactory (@ref DOX_IADLXGPU* pGPU, adlx_bool* isFactory) - *@codeEnd - * - *@params - *@paramrow{1.,[in] ,pGPU,@ref DOX_IADLXGPU* ,@ENG_START_DOX The pointer to the GPU interface. @ENG_END_DOX} - *@paramrow{2.,[out] ,isFactory,adlx_bool* ,@ENG_START_DOX The pointer to a variable where the state of the GPU tuning is returned. The variable is __true__ if the GPU tuning is set to factory settings. The variable is __false__ if the GPU tuning is not set to factory settings. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of the GPU tuning is successfully returned, __ADLX_OK__ is returned.
- * If the state of the GPU tuning is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@copydoc IADLXGPUTuningServices_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsAtFactory (IADLXGPU* pGPU, adlx_bool* isFactory) = 0; - - /** - *@page DOX_IADLXGPUTuningServices_ResetToFactory ResetToFactory - *@ENG_START_DOX @brief Reset the GPU tuning to factory settings. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT ResetToFactory (@ref DOX_IADLXGPU* pGPU) - *@codeEnd - * - *@params - *@paramrow{1.,[in] ,pGPU,@ref DOX_IADLXGPU* ,@ENG_START_DOX The pointer to the GPU interface. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the factory settings are successfully reset, __ADLX_OK__ is returned.
- * If the factory settings are not successfully reset, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The method resets settings of Auto Tuning, Manual GPU Tuning, Manual Fan Tuning, Manual VRAM Tuning and Manual Power Tuning. @ENG_END_DOX - * - *@copydoc IADLXGPUTuningServices_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL ResetToFactory (IADLXGPU* pGPU) = 0; - - /** - *@page DOX_IADLXGPUTuningServices_IsSupportedAutoTuning IsSupportedAutoTuning - *@ENG_START_DOX @brief Checks if the automatic tuning is supported on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupportedAutoTuning (@ref DOX_IADLXGPU* pGPU, adlx_bool* supported) - *@codeEnd - * - *@params - *@paramrow{1.,[in] ,pGPU,@ref DOX_IADLXGPU* ,@ENG_START_DOX The pointer to the GPU interface. @ENG_END_DOX} - *@paramrow{2.,[out] ,supported,adlx_bool* ,@ENG_START_DOX The pointer to a variable where the state of automatic tuning is returned. The variable is __true__ if automatic tuning is supported. The variable is __false__ if automatic tuning is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of automatic tuning is successfully returned, __ADLX_OK__ is returned.
- * If the state of automatic tuning is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@copydoc IADLXGPUTuningServices_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupportedAutoTuning (IADLXGPU* pGPU, adlx_bool* supported) = 0; - - /** - *@page DOX_IADLXGPUTuningServices_IsSupportedPresetTuning IsSupportedPresetTuning - *@ENG_START_DOX @brief Checks if the preset tuning is supported on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupportedPresetTuning (@ref DOX_IADLXGPU* pGPU, adlx_bool* supported) - *@codeEnd - * - *@params - *@paramrow{1.,[in] ,pGPU,@ref DOX_IADLXGPU* ,@ENG_START_DOX The pointer to the GPU interface. @ENG_END_DOX} - *@paramrow{2.,[out] ,supported,adlx_bool* ,@ENG_START_DOX The pointer to a variable where the state of preset tuning is returned. The variable is __true__ if preset tuning is supported. The variable is __false__ if preset tuning is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of preset tuning is successfully returned, __ADLX_OK__ is returned.
- * If the state of preset tuning is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@copydoc IADLXGPUTuningServices_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupportedPresetTuning (IADLXGPU* pGPU, adlx_bool* supported) = 0; - - /** - *@page DOX_IADLXGPUTuningServices_IsSupportedManualGFXTuning IsSupportedManualGFXTuning - *@ENG_START_DOX @brief Checks if the manual graphic tuning is supported on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupportedManualGFXTuning (@ref DOX_IADLXGPU* pGPU, adlx_bool* supported) - *@codeEnd - * - *@params - *@paramrow{1.,[in] ,pGPU,@ref DOX_IADLXGPU* ,@ENG_START_DOX The pointer to the GPU interface. @ENG_END_DOX} - *@paramrow{2.,[out] ,supported,adlx_bool* ,@ENG_START_DOX The pointer to a variable where the state of manual graphic tuning is returned. The variable is __true__ if manual graphic tuning is supported. The variable is __false__ if manual graphic tuning is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of manual graphic tuning is successfully returned, __ADLX_OK__ is returned.
- * If the state of manual graphic tuning is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@copydoc IADLXGPUTuningServices_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupportedManualGFXTuning (IADLXGPU* pGPU, adlx_bool* supported) = 0; - - /** - *@page DOX_IADLXGPUTuningServices_IsSupportedManualVRAMTuning IsSupportedManualVRAMTuning - *@ENG_START_DOX @brief Checks if the manual VRAM Tuning is supported on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupportedManualVRAMTuning (@ref DOX_IADLXGPU* pGPU, adlx_bool* supported) - *@codeEnd - * - *@params - *@paramrow{1.,[in] ,pGPU,@ref DOX_IADLXGPU* ,@ENG_START_DOX The pointer to the GPU interface. @ENG_END_DOX} - *@paramrow{2.,[out] ,supported,adlx_bool* ,@ENG_START_DOX The pointer to a variable where the state of manual VRAM tuning is returned. The variable is __true__ if manual VRAM tuning is supported. The variable is __false__ if manual VRAM tuning is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of manual VRAM tuning is successfully returned, __ADLX_OK__ is returned.
- * If the state of manual VRAM tuning is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@copydoc IADLXGPUTuningServices_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupportedManualVRAMTuning (IADLXGPU* pGPU, adlx_bool* supported) = 0; - - /** - *@page DOX_IADLXGPUTuningServices_IsSupportedManualFanTuning IsSupportedManualFanTuning - *@ENG_START_DOX @brief Checks if the manual fan tuning is supported on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupportedManualFanTuning (@ref DOX_IADLXGPU* pGPU, adlx_bool* supported) - *@codeEnd - * - *@params - *@paramrow{1.,[in] ,pGPU,@ref DOX_IADLXGPU* ,@ENG_START_DOX The pointer to the GPU interface. @ENG_END_DOX} - *@paramrow{2.,[out] ,supported,adlx_bool* ,@ENG_START_DOX The pointer to a variable where the state of manual fan tuning is returned. The variable is __true__ if manual fan tuning is supported. The variable is __false__ if manual fan tuning is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of manual fan tuning is successfully returned, __ADLX_OK__ is returned.
- * If the state of manual fan tuning is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@copydoc IADLXGPUTuningServices_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupportedManualFanTuning (IADLXGPU* pGPU, adlx_bool* supported) = 0; - - /** - *@page DOX_IADLXGPUTuningServices_IsSupportedManualPowerTuning IsSupportedManualPowerTuning - *@ENG_START_DOX @brief Checks if the manual power tuning is supported on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupportedManualPowerTuning (@ref DOX_IADLXGPU* pGPU, adlx_bool* supported) - *@codeEnd - * - *@params - *@paramrow{1.,[in] ,pGPU,@ref DOX_IADLXGPU* ,@ENG_START_DOX The pointer to the GPU interface. @ENG_END_DOX} - *@paramrow{2.,[out] ,supported,adlx_bool* ,@ENG_START_DOX The pointer to a variable where the state of manual power tuning is returned. The variable is __true__ if manual power tuning is supported. The variable is __false__ if manual power tuning is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of manual power tuning is successfully returned, __ADLX_OK__ is returned.
- * If the state of manual power tuning is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@copydoc IADLXGPUTuningServices_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupportedManualPowerTuning (IADLXGPU* pGPU, adlx_bool* supported) = 0; - - /** - *@page DOX_IADLXGPUTuningServices_GetAutoTuning GetAutoTuning - *@ENG_START_DOX @brief Gets the reference counted automatic tuning interface of a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetAutoTuning (@ref DOX_IADLXGPU* pGPU, @ref DOX_IADLXInterface** ppAutoTuning) - *@codeEnd - * - *@params - *@paramrow{1.,[in] ,pGPU,@ref DOX_IADLXGPU* ,@ENG_START_DOX The pointer to the GPU interface. @ENG_END_DOX} - *@paramrow{2.,[out] ,ppAutoTuning,@ref DOX_IADLXInterface** ,@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 __*ppAutoTuning__ to __nullptr__. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the interface is successfully returned, __ADLX_OK__ is returned.
- * If the interface is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The method returns an @ref DOX_IADLXInterface interface. To get the @ref DOX_IADLXGPUAutoTuning interface, which is the automatic tuning interface, the application must call @ref DOX_IADLXInterface_QueryInterface in the returned @ref DOX_IADLXInterface.
- * The @ref DOX_IADLXInterface interface and the @ref DOX_IADLXGPUAutoTuning interface must be discarded with @ref DOX_IADLXInterface_Release when they are no longer needed.
@ENG_END_DOX - *@addinfo - *@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 - * - *@copydoc IADLXGPUTuningServices_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetAutoTuning (IADLXGPU* pGPU, IADLXInterface** ppAutoTuning) = 0; - - /** - *@page DOX_IADLXGPUTuningServices_GetPresetTuning GetPresetTuning - *@ENG_START_DOX @brief Gets the reference counted preset tuning interface of a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetPresetTuning (@ref DOX_IADLXGPU* pGPU, @ref DOX_IADLXInterface** ppPresetTuning) - *@codeEnd - * - *@params - *@paramrow{1.,[in] ,pGPU,@ref DOX_IADLXGPU* ,@ENG_START_DOX The pointer to the GPU interface. @ENG_END_DOX} - *@paramrow{2.,[out] ,ppPresetTuning,@ref DOX_IADLXInterface** ,@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 __*ppPresetTuning__ to __nullptr__. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the interface is successfully returned, __ADLX_OK__ is returned.
- * If the interface is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The method returns an @ref DOX_IADLXInterface interface. To get the @ref DOX_IADLXGPUPresetTuning interface, which is the preset tuning interface, the application must call @ref DOX_IADLXInterface_QueryInterface in the returned @ref DOX_IADLXInterface.
- * The @ref DOX_IADLXInterface interface and the @ref DOX_IADLXGPUPresetTuning interface must be discarded with @ref DOX_IADLXInterface_Release when they are no longer needed.
@ENG_END_DOX - *@addinfo - *@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 - * - *@copydoc IADLXGPUTuningServices_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetPresetTuning (IADLXGPU* pGPU, IADLXInterface** ppPresetTuning) = 0; - - /** - *@page DOX_IADLXGPUTuningServices_GetManualGFXTuning GetManualGFXTuning - *@ENG_START_DOX @brief Gets the reference counted manual graphics tuning interface of a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetManualGFXTuning (@ref DOX_IADLXGPU* pGPU, @ref DOX_IADLXInterface** ppManualGFXTuning) - *@codeEnd - * - *@params - *@paramrow{1.,[in] ,pGPU,@ref DOX_IADLXGPU* ,@ENG_START_DOX The pointer to the GPU interface. @ENG_END_DOX} - *@paramrow{2.,[out] ,ppManualGFXTuning,@ref DOX_IADLXInterface** ,@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 __*ppManualGFXTuning__ to __nullptr__. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the interface is successfully returned, __ADLX_OK__ is returned.
- * If the interface is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
- * @ENG_END_DOX - *@detaileddesc - *@ENG_START_DOX @details Different GPUs support different manual graphics tuning functionality.
- * ADLX provides the @ref DOX_IADLXManualGraphicsTuning1 interface or the @ref DOX_IADLXManualGraphicsTuning2 interface to obtain the supported manual graphics tuning interface.
- * To get the manual graphics tuning interface, the application must call @ref DOX_IADLXInterface_QueryInterface in the returned @ref DOX_IADLXInterface.
- * The @ref DOX_IADLXInterface interface and the manual graphics tuning interface must be discarded with @ref DOX_IADLXInterface_Release when they are no longer needed. @ENG_END_DOX - * - *@addinfo - *@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 - * - *@copydoc IADLXGPUTuningServices_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetManualGFXTuning (IADLXGPU* pGPU, IADLXInterface** ppManualGFXTuning) = 0; - - /** - *@page DOX_IADLXGPUTuningServices_GetManualVRAMTuning GetManualVRAMTuning - *@ENG_START_DOX @brief Gets the reference counted manual VRAM tuning interface of a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetManualVRAMTuning (@ref DOX_IADLXGPU* pGPU, @ref DOX_IADLXInterface** ppManualVRAMTuning) - *@codeEnd - * - *@params - *@paramrow{1.,[in] ,pGPU,@ref DOX_IADLXGPU* ,@ENG_START_DOX The pointer to the GPU interface. @ENG_END_DOX} - *@paramrow{2.,[out] ,ppManualVRAMTuning,@ref DOX_IADLXInterface** ,@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 __*ppManualVRAMTuning__ to __nullptr__. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the interface is successfully returned, __ADLX_OK__ is returned.
- * If the interface is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
- * @ENG_END_DOX - *@detaileddesc - *@ENG_START_DOX @details Different GPUs support different manual VRAM tuning functionality.
- * ADLX provides the @ref DOX_IADLXManualVRAMTuning1 interface or the @ref DOX_IADLXManualVRAMTuning2 interface to obtain the supported manual VRAM tuning interface.
- * To get the manual VRAM tuning interface, the application must call @ref DOX_IADLXInterface_QueryInterface in the returned @ref DOX_IADLXInterface.
- * The @ref DOX_IADLXInterface interface and the manual VRAM tuning interface must be discarded with @ref DOX_IADLXInterface_Release when they are no longer needed. @ENG_END_DOX - * - *@addinfo - *@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 - * - *@copydoc IADLXGPUTuningServices_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetManualVRAMTuning (IADLXGPU* pGPU, IADLXInterface** ppManualVRAMTuning) = 0; - - /** - *@page DOX_IADLXGPUTuningServices_GetManualFanTuning GetManualFanTuning - *@ENG_START_DOX @brief Gets the reference counted manual fan tuning interface of a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetManualFanTuning (@ref DOX_IADLXGPU* pGPU, @ref DOX_IADLXInterface** ppManualFanTuning) - *@codeEnd - * - *@params - *@paramrow{1.,[in] ,pGPU,@ref DOX_IADLXGPU* ,@ENG_START_DOX The pointer to the GPU interface. @ENG_END_DOX} - *@paramrow{2.,[out] ,ppManualFanTuning,@ref DOX_IADLXInterface** ,@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 __*ppManualFanTuning__ to __nullptr__. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the interface is successfully returned, __ADLX_OK__ is returned.
- * If the interface is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
- * @ENG_END_DOX - *@detaileddesc - *@ENG_START_DOX @details The method returns an @ref DOX_IADLXInterface interface. To get the @ref DOX_IADLXManualFanTuning interface, which is the manual fan tuning interface, the application must call @ref DOX_IADLXInterface_QueryInterface in the returned @ref DOX_IADLXInterface.
- * The @ref DOX_IADLXInterface interface and the @ref DOX_IADLXManualFanTuning interface must be discarded with @ref DOX_IADLXInterface_Release when they are no longer needed.
@ENG_END_DOX - * - *@addinfo - *@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 - * - *@copydoc IADLXGPUTuningServices_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetManualFanTuning (IADLXGPU* pGPU, IADLXInterface** ppManualFanTuning) = 0; - - /** - *@page DOX_IADLXGPUTuningServices_GetManualPowerTuning GetManualPowerTuning - *@ENG_START_DOX @brief Gets the reference counted manual power tuning interface of a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetManualPowerTuning (@ref DOX_IADLXGPU* pGPU, @ref DOX_IADLXInterface** ppManualPowerTuning) - *@codeEnd - * - *@params - *@paramrow{1.,[in] ,pGPU,@ref DOX_IADLXGPU* ,@ENG_START_DOX The pointer to the GPU interface. @ENG_END_DOX} - *@paramrow{2.,[out] ,ppManualPowerTuning,@ref DOX_IADLXInterface** ,@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 __*ppManualPowerTuning__ to __nullptr__. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the interface is successfully returned, __ADLX_OK__ is returned.
- * If the interface is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The method returns an @ref DOX_IADLXInterface interface. To get the @ref DOX_IADLXManualPowerTuning interface, which is the manual power tuning interface, the application must call @ref DOX_IADLXInterface_QueryInterface in the returned @ref DOX_IADLXInterface.
- * The @ref DOX_IADLXInterface interface and the @ref DOX_IADLXManualPowerTuning interface must be discarded with @ref DOX_IADLXInterface_Release when they are no longer needed.
@ENG_END_DOX - *@addinfo - *@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 - * - *@copydoc IADLXGPUTuningServices_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetManualPowerTuning (IADLXGPU* pGPU, IADLXInterface** ppManualPowerTuning) = 0; - }; //IADLXGPUTuningServices - //---------------------------------------------------------------------------------------------- - typedef IADLXInterfacePtr_T IADLXGPUTuningServicesPtr; -} //namespace adlx -#else //__cplusplus -ADLX_DECLARE_IID (IADLXGPUTuningServices, L"IADLXGPUTuningServices") -typedef struct IADLXGPUTuningServices IADLXGPUTuningServices; - -typedef struct IADLXGPUTuningServicesVtbl -{ - //IADLXInterface - adlx_long (ADLX_STD_CALL *Acquire)(IADLXGPUTuningServices* pThis); - adlx_long (ADLX_STD_CALL *Release)(IADLXGPUTuningServices* pThis); - ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLXGPUTuningServices* pThis, const wchar_t* interfaceId, void** ppInterface); - - //IADLXGPUTuningServices - ADLX_RESULT (ADLX_STD_CALL *GetGPUTuningChangedHandling)(IADLXGPUTuningServices* pThis, IADLXGPUTuningChangedHandling** ppGPUTuningChangedHandling); - ADLX_RESULT (ADLX_STD_CALL *IsAtFactory)(IADLXGPUTuningServices* pThis, IADLXGPU* pGPU, adlx_bool* isFactory); - ADLX_RESULT (ADLX_STD_CALL *ResetToFactory)(IADLXGPUTuningServices* pThis, IADLXGPU* pGPU); - - ADLX_RESULT (ADLX_STD_CALL *IsSupportedAutoTuning)(IADLXGPUTuningServices* pThis, IADLXGPU* pGPU, adlx_bool* supported); - ADLX_RESULT (ADLX_STD_CALL *IsSupportedPresetTuning)(IADLXGPUTuningServices* pThis, IADLXGPU* pGPU, adlx_bool* supported); - ADLX_RESULT (ADLX_STD_CALL *IsSupportedManualGFXTuning)(IADLXGPUTuningServices* pThis, IADLXGPU* pGPU, adlx_bool* supported); - ADLX_RESULT (ADLX_STD_CALL *IsSupportedManualVRAMTuning)(IADLXGPUTuningServices* pThis, IADLXGPU* pGPU, adlx_bool* supported); - ADLX_RESULT (ADLX_STD_CALL *IsSupportedManualFanTuning)(IADLXGPUTuningServices* pThis, IADLXGPU* pGPU, adlx_bool* supported); - ADLX_RESULT (ADLX_STD_CALL *IsSupportedManualPowerTuning)(IADLXGPUTuningServices* pThis, IADLXGPU* pGPU, adlx_bool* supported); - - ADLX_RESULT (ADLX_STD_CALL *GetAutoTuning)(IADLXGPUTuningServices* pThis, IADLXGPU* pGPU, IADLXInterface** ppAutoTuning); - ADLX_RESULT (ADLX_STD_CALL *GetPresetTuning)(IADLXGPUTuningServices* pThis, IADLXGPU* pGPU, IADLXInterface** ppPresetTuning); - ADLX_RESULT (ADLX_STD_CALL *GetManualGFXTuning)(IADLXGPUTuningServices* pThis, IADLXGPU* pGPU, IADLXInterface** ppManualGFXTuning); - ADLX_RESULT (ADLX_STD_CALL *GetManualVRAMTuning)(IADLXGPUTuningServices* pThis, IADLXGPU* pGPU, IADLXInterface** ppManualVRAMTuning); - ADLX_RESULT (ADLX_STD_CALL *GetManualFanTuning)(IADLXGPUTuningServices* pThis, IADLXGPU* pGPU, IADLXInterface** ppManualFanTuning); - ADLX_RESULT (ADLX_STD_CALL *GetManualPowerTuning)(IADLXGPUTuningServices* pThis, IADLXGPU* pGPU, IADLXInterface** ppManualPowerTuning); -}IADLXGPUTuningServicesVtbl; - -struct IADLXGPUTuningServices { const IADLXGPUTuningServicesVtbl *pVtbl; }; -#endif //__cplusplus -#pragma endregion IADLXGPUTuningServices - -#endif//ADLX_IGPUTUNING_H diff --git a/src/adlx/sdk/Include/IGPUTuning1.h b/src/adlx/sdk/Include/IGPUTuning1.h deleted file mode 100644 index 19b363b..0000000 --- a/src/adlx/sdk/Include/IGPUTuning1.h +++ /dev/null @@ -1,197 +0,0 @@ -// -// Copyright (c) 2021 - 2023 Advanced Micro Devices, Inc. All rights reserved. -// -//------------------------------------------------------------------------------------------------- - -#ifndef ADLX_IGPUTUNING1_H -#define ADLX_IGPUTUNING1_H -#pragma once - -#include "ADLXStructures.h" -#include "IGPUTuning.h" - -//------------------------------------------------------------------------------------------------- -//IGPUTuning1.h - Interfaces for ADLX GPU Tuning functionality - -#pragma region IADLXGPUTuningServices1 -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLXGPU; - class ADLX_NO_VTABLE IADLXSmartAccessMemory; - class ADLX_NO_VTABLE IADLXGPUTuningServices1 : public IADLXGPUTuningServices - { - public: - ADLX_DECLARE_IID(L"IADLXGPUTuningServices1") - - /** - *@page DOX_IADLXGPUTuningServices1_GetSmartAccessMemory GetSmartAccessMemory - *@ENG_START_DOX @brief Gets the reference counted AMD SmartAccess Memory interface for a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetSmartAccessMemory (@ref DOX_IADLXGPU* pGPU, @ref DOX_IADLXSmartAccessMemory** ppSmartAccessMemory) - *@codeEnd - * - *@params - *@paramrow{1.,[in] ,pGPU,@ref DOX_IADLXGPU* ,@ENG_START_DOX The pointer to the GPU interface. @ENG_END_DOX} - *@paramrow{2.,[out],ppSmartAccessMemory,@ref DOX_IADLXSmartAccessMemory**,@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 __*ppSmartAccessMemory__ to __nullptr__. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX - * If the interface is successfully returned, __ADLX_OK__ is returned.
- * If the interface is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when its no longer needed. @ENG_END_DOX - * - *@addinfo - *@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 - * - *@copydoc IADLXGPUTuningServices1_REQ_TABLE - */ - virtual ADLX_RESULT ADLX_STD_CALL GetSmartAccessMemory(IADLXGPU* pGPU, IADLXSmartAccessMemory** ppSmartAccessMemory) = 0; - }; //IADLXGPUTuningServices1 - typedef IADLXInterfacePtr_T IADLXGPUTuningServices1Ptr; -} // namespace adlx -#else // __cplusplus -ADLX_DECLARE_IID(IADLXGPUTuningServices1, L"IADLXGPUTuningServices1") -typedef struct IADLXSmartAccessMemory IADLXSmartAccessMemory; -typedef struct IADLXGPUTuningServices1 IADLXGPUTuningServices1; - -typedef struct IADLXGPUTuningServices1Vtbl -{ - //IADLXInterface - adlx_long(ADLX_STD_CALL* Acquire)(IADLXGPUTuningServices1* pThis); - adlx_long(ADLX_STD_CALL* Release)(IADLXGPUTuningServices1* pThis); - ADLX_RESULT(ADLX_STD_CALL* QueryInterface)(IADLXGPUTuningServices1* pThis, const wchar_t* interfaceId, void** ppInterface); - - //IADLXGPUTuningServices - ADLX_RESULT(ADLX_STD_CALL* GetGPUTuningChangedHandling)(IADLXGPUTuningServices1* pThis, IADLXGPUTuningChangedHandling** ppGPUTuningChangedHandling); - ADLX_RESULT(ADLX_STD_CALL* IsAtFactory)(IADLXGPUTuningServices1* pThis, IADLXGPU* pGPU, adlx_bool* isFactory); - ADLX_RESULT(ADLX_STD_CALL* ResetToFactory)(IADLXGPUTuningServices1* pThis, IADLXGPU* pGPU); - - ADLX_RESULT(ADLX_STD_CALL* IsSupportedAutoTuning)(IADLXGPUTuningServices1* pThis, IADLXGPU* pGPU, adlx_bool* supported); - ADLX_RESULT(ADLX_STD_CALL* IsSupportedPresetTuning)(IADLXGPUTuningServices1* pThis, IADLXGPU* pGPU, adlx_bool* supported); - ADLX_RESULT(ADLX_STD_CALL* IsSupportedManualGFXTuning)(IADLXGPUTuningServices1* pThis, IADLXGPU* pGPU, adlx_bool* supported); - ADLX_RESULT(ADLX_STD_CALL* IsSupportedManualVRAMTuning)(IADLXGPUTuningServices1* pThis, IADLXGPU* pGPU, adlx_bool* supported); - ADLX_RESULT(ADLX_STD_CALL* IsSupportedManualFanTuning)(IADLXGPUTuningServices1* pThis, IADLXGPU* pGPU, adlx_bool* supported); - ADLX_RESULT(ADLX_STD_CALL* IsSupportedManualPowerTuning)(IADLXGPUTuningServices1* pThis, IADLXGPU* pGPU, adlx_bool* supported); - - ADLX_RESULT(ADLX_STD_CALL* GetAutoTuning)(IADLXGPUTuningServices1* pThis, IADLXGPU* pGPU, IADLXInterface** ppAutoTuning); - ADLX_RESULT(ADLX_STD_CALL* GetPresetTuning)(IADLXGPUTuningServices1* pThis, IADLXGPU* pGPU, IADLXInterface** ppPresetTuning); - ADLX_RESULT(ADLX_STD_CALL* GetManualGFXTuning)(IADLXGPUTuningServices1* pThis, IADLXGPU* pGPU, IADLXInterface** ppManualGFXTuning); - ADLX_RESULT(ADLX_STD_CALL* GetManualVRAMTuning)(IADLXGPUTuningServices1* pThis, IADLXGPU* pGPU, IADLXInterface** ppManualVRAMTuning); - ADLX_RESULT(ADLX_STD_CALL* GetManualFanTuning)(IADLXGPUTuningServices1* pThis, IADLXGPU* pGPU, IADLXInterface** ppManualFanTuning); - ADLX_RESULT(ADLX_STD_CALL* GetManualPowerTuning)(IADLXGPUTuningServices1* pThis, IADLXGPU* pGPU, IADLXInterface** ppManualPowerTuning); - - //IADLXGPUTuningServices1 - ADLX_RESULT(ADLX_STD_CALL* GetSmartAccessMemory)(IADLXGPUTuningServices1* pThis, IADLXGPU* pGPU, IADLXSmartAccessMemory** ppSmartAccessMemory); -}IADLXGPUTuningServices1Vtbl; - -struct IADLXGPUTuningServices1 { const IADLXGPUTuningServices1Vtbl* pVtbl; }; -#endif // __cplusplus -#pragma endregion IADLXGPUTuningServices1 - -#pragma region IADLXGPUTuningChangedEvent1 -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLXGPUTuningChangedEvent1 : public IADLXGPUTuningChangedEvent - { - public: - ADLX_DECLARE_IID(L"IADLXGPUTuningChangedEvent1") - - /** - *@page DOX_IADLXGPUTuningChangedEvent1_IsSmartAccessMemoryChanged IsSmartAccessMemoryChanged - *@ENG_START_DOX @brief Checks for changes to the AMD SmartAccess Memory settings. @ENG_END_DOX - * - *@syntax - *@codeStart - * adlx_bool IsSmartAccessMemoryChanged () - *@codeEnd - * - *@params - *N/A - * - *@retvalues - *@ENG_START_DOX If AMD SmartAccess Memory settings are changed, __true__ is returned.
- * If AMD SmartAccess Memory settings are not changed, __false__ is returned.
@ENG_END_DOX - * - *@addinfo - *@ENG_START_DOX - * __Note:__ To obtain the GPU, use @ref DOX_IADLXGPUTuningChangedEvent_GetGPU. - * @ENG_END_DOX - * - *@copydoc IADLXGPUTuningChangedEvent1_REQ_TABLE - * - */ - virtual adlx_bool ADLX_STD_CALL IsSmartAccessMemoryChanged() = 0; - - /** - *@page DOX_IADLXGPUTuningChangedEvent1_GetSmartAccessMemoryStatus GetSmartAccessMemoryStatus - *@ENG_START_DOX @brief Gets the current AMD SmartAccess Memory status. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetSmartAccessMemoryStatus (adlx_bool* pEnabled, adlx_bool* pCompleted) - *@codeEnd - * - *@params - *@paramrow{1.,[out] ,pEnabled,adlx_bool* ,@ENG_START_DOX The pointer to a variable where the current state of AMD SmartAccess Memory is returned. The variable is __true__ if AMD SmartAccess Memory is enabled. The variable is __false__ if AMD SmartAccess Memory is disabled. @ENG_END_DOX} - *@paramrow{2.,[out] ,pEnabled,adlx_bool* ,@ENG_START_DOX The pointer to a variable where the complete state of AMD SmartAccess Memory is returned. The variable is __true__ if AMD SmartAccess Memory is completed. The variable is __false__ if AMD SmartAccess Memory is not completed. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the interface is successfully returned, __ADLX_OK__ is returned.
- * If the interface is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@addinfo - *@ENG_START_DOX - * __Note:__ Use @ref DOX_IADLXGPUTuningChangedEvent_GetGPU to obtain the GPU. - * @ENG_END_DOX - * - *@copydoc IADLXGPUTuningChangedEvent1_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetSmartAccessMemoryStatus(adlx_bool* pEnabled, adlx_bool* pCompleted) = 0; - }; - //---------------------------------------------------------------------------------------------- - typedef IADLXInterfacePtr_T IADLXGPUTuningChangedEvent1Ptr; -} //namespace adlx -#else //__cplusplus -ADLX_DECLARE_IID(IADLXGPUTuningChangedEvent1, L"IADLXGPUTuningChangedEvent1") - -typedef struct IADLXGPUTuningChangedEvent1 IADLXGPUTuningChangedEvent1; - -typedef struct IADLXGPUTuningChangedEvent1Vtbl -{ - // IADLXInterface - adlx_long(ADLX_STD_CALL* Acquire)(IADLXGPUTuningChangedEvent1* pThis); - adlx_long(ADLX_STD_CALL* Release)(IADLXGPUTuningChangedEvent1* pThis); - ADLX_RESULT(ADLX_STD_CALL* QueryInterface)(IADLXGPUTuningChangedEvent1* pThis, const wchar_t* interfaceId, void** ppInterface); - - // IADLXChangedEvent - ADLX_SYNC_ORIGIN(ADLX_STD_CALL* GetOrigin)(IADLXGPUTuningChangedEvent1* pThis); - - // IADLXGPUTuningChangedEvent - ADLX_RESULT(ADLX_STD_CALL* GetGPU)(IADLXGPUTuningChangedEvent1* pThis, IADLXGPU** ppGPU); - adlx_bool(ADLX_STD_CALL* IsAutomaticTuningChanged)(IADLXGPUTuningChangedEvent1* pThis); - adlx_bool(ADLX_STD_CALL* IsPresetTuningChanged)(IADLXGPUTuningChangedEvent1* pThis); - adlx_bool(ADLX_STD_CALL* IsManualGPUCLKTuningChanged)(IADLXGPUTuningChangedEvent1* pThis); - adlx_bool(ADLX_STD_CALL* IsManualVRAMTuningChanged)(IADLXGPUTuningChangedEvent1* pThis); - adlx_bool(ADLX_STD_CALL* IsManualFanTuningChanged)(IADLXGPUTuningChangedEvent1* pThis); - adlx_bool(ADLX_STD_CALL* IsManualPowerTuningChanged)(IADLXGPUTuningChangedEvent1* pThis); - - // IADLXGPUTuningChangedEvent1 - adlx_bool(ADLX_STD_CALL* IsSmartAccessMemoryChanged)(IADLXGPUTuningChangedEvent1* pThis); - ADLX_RESULT(ADLX_STD_CALL* GetSmartAccessMemoryStatus)(IADLXGPUTuningChangedEvent1* pThis, adlx_bool* pEnabled, adlx_bool* pCompleted); -} IADLXGPUTuningChangedEvent1Vtbl; - -struct IADLXGPUTuningChangedEvent1 { const IADLXGPUTuningChangedEvent1Vtbl* pVtbl; }; -#endif //__cplusplus -#pragma endregion IADLXGPUTuningChangedEvent1 - -#endif // ADLX_IGPUTUNING1_H diff --git a/src/adlx/sdk/Include/II2C.h b/src/adlx/sdk/Include/II2C.h deleted file mode 100644 index b6ca2cb..0000000 --- a/src/adlx/sdk/Include/II2C.h +++ /dev/null @@ -1,198 +0,0 @@ -// -// Copyright (c) 2021 - 2023 Advanced Micro Devices, Inc. All rights reserved. -// -//------------------------------------------------------------------------------------------------- - -#ifndef ADLX_II2C_H -#define ADLX_II2C_H -#pragma once - -#include "ADLXDefines.h" - -//------------------------------------------------------------------------------------------------- -//II2C.h - Interfaces for ADLX GPU I2C functionality - -//I2C setting interface -#pragma region IADLXI2C -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLXI2C : public IADLXInterface - { - public: - ADLX_DECLARE_IID (L"IADLXI2C") - - /** - *@page DOX_IADLXI2C_Version Version - *@ENG_START_DOX @brief Retrieves the major and minor software version of I2C interface on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT Version (adlx_int* major, adlx_int* minor) - *@codeEnd - * - *@params - * @paramrow{1.,[out],major,adlx_int*,@ENG_START_DOX A pointer to a variable where the I2C major version is returned. @ENG_END_DOX} - * @paramrow{2.,[out],minor,adlx_int*,@ENG_START_DOX A pointer to a variable where the I2C minor version is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the I2C major version and the I2C minor version are successfully returned, __ADLX_OK__ is returned.
- * If the I2C major version and the I2C minor version are not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * - * - *@copydoc IADLXI2C_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL Version (adlx_int* major, adlx_int* minor) = 0; - - /** - *@page DOX_IADLXI2C_IsSupported IsSupported - *@ENG_START_DOX @brief Checks if the OEM device data can be read and written through the I2C bus on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupported (@ref ADLX_I2C_LINE line, adlx_int address, adlx_bool* isSupported) - *@codeEnd - * - *@params - * @paramrow{1.,[in],line,@ref ADLX_I2C_LINE,@ENG_START_DOX The I2C line. @ENG_END_DOX} - * @paramrow{2.,[in],address,adlx_int,@ENG_START_DOX The 7-bit I2C slave device address which is shifted one bit to the left. @ENG_END_DOX} - * @paramrow{2.,[out],isSupported,adlx_bool*,@ENG_START_DOX A pointer to a variable where the status of the I2C bus read and write is returned. The variable is __true__ if the OEM device data can be read and written through the I2C bus. The variable is __false__ if the OEM device data cannot be read and written through the I2C bus. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the status of the I2C bus read and write is successfully returned, __ADLX_OK__ is returned.
- * If the status of the I2C bus read and write is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * - * - *@copydoc IADLXI2C_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupported (ADLX_I2C_LINE line, adlx_int address, adlx_bool* isSupported) = 0; - - /** - *@page DOX_IADLXI2C_Read Read - *@ENG_START_DOX @brief Reads the OEM device data through the I2C bus of a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT Read (@ref ADLX_I2C_LINE line, adlx_int speed, adlx_int address, adlx_int offset, adlx_int dataSize, adlx_byte* data) - *@codeEnd - * - *@params - * @paramrow{1.,[in],line,@ref ADLX_I2C_LINE,@ENG_START_DOX The I2C line. @ENG_END_DOX} - * @paramrow{2.,[in],speed,adlx_int,@ENG_START_DOX The I2C clock speed (in KHz). @ENG_END_DOX} - * @paramrow{3.,[in],address,adlx_int,@ENG_START_DOX The 7-bit I2C slave device address which is shifted one bit to the left. @ENG_END_DOX} - * @paramrow{4.,[in],offset,adlx_int,@ENG_START_DOX The offset of the data from the address. @ENG_END_DOX} - * @paramrow{5.,[in],dataSize,adlx_int,@ENG_START_DOX The size (in bytes) of the buffer for the OEM device data. @ENG_END_DOX} - * @paramrow{6.,[in],data,adlx_byte*,@ENG_START_DOX The address to the buffer with the new OEM data. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the OEM device data is successfully returned, __ADLX_OK__ is returned.
- * If the OEM device data is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The application is responsible to allocate a buffer sufficiently large to hold the requested OEM device data. @ENG_END_DOX - * - * - *@copydoc IADLXI2C_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL Read (ADLX_I2C_LINE line, adlx_int speed, adlx_int address, adlx_int offset, adlx_int dataSize, adlx_byte* data) = 0; - - /** - *@page DOX_IADLXI2C_RepeatedStartRead RepeatedStartRead - *@ENG_START_DOX @brief Repeat start reads the OEM device data through the I2C bus of a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT RepeatedStartRead (@ref ADLX_I2C_LINE line, adlx_int speed, adlx_int address, adlx_int offset, adlx_int dataSize, adlx_byte* data) - *@codeEnd - * - *@params - * @paramrow{1.,[in],line,@ref ADLX_I2C_LINE,@ENG_START_DOX The I2C line. @ENG_END_DOX} - * @paramrow{2.,[in],speed,adlx_int,@ENG_START_DOX The I2C clock speed (in KHz). @ENG_END_DOX} - * @paramrow{3.,[in],address,adlx_int,@ENG_START_DOX The 7-bit I2C slave device address which is shifted one bit to the left. @ENG_END_DOX} - * @paramrow{4.,[in],offset,adlx_int,@ENG_START_DOX The offset of the data from the address. @ENG_END_DOX} - * @paramrow{5.,[in],dataSize,adlx_int,@ENG_START_DOX The size (in bytes) of the buffer for the OEM device data. @ENG_END_DOX} - * @paramrow{6.,[in],data,adlx_byte*,@ENG_START_DOX The address to the buffer with the new OEM data. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the OEM device data is successfully returned, __ADLX_OK__ is returned.
- * If the OEM device data is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The application is responsible to allocate a buffer sufficiently large to hold the requested OEM device data. @ENG_END_DOX - * - * - *@copydoc IADLXI2C_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL RepeatedStartRead (ADLX_I2C_LINE line, adlx_int speed, adlx_int address, adlx_int offset, adlx_int dataSize, adlx_byte* data) = 0; - - /** - *@page DOX_IADLXI2C_Write Write - *@ENG_START_DOX @brief Writes the OEM device data through the I2C bus of a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT Write (@ref ADLX_I2C_LINE line, adlx_int speed, adlx_int address, adlx_int offset, adlx_int dataSize, adlx_byte* data) - *@codeEnd - * - *@params - * @paramrow{1.,[in],line,@ref ADLX_I2C_LINE,@ENG_START_DOX The I2C line. @ENG_END_DOX} - * @paramrow{2.,[in],speed,adlx_int,@ENG_START_DOX The I2C clock speed (in KHz). @ENG_END_DOX} - * @paramrow{3.,[in],address,adlx_int,@ENG_START_DOX The 7-bit I2C slave device address which is shifted one bit to the left. @ENG_END_DOX} - * @paramrow{4.,[in],offset,adlx_int,@ENG_START_DOX The offset of the data from the address. @ENG_END_DOX} - * @paramrow{5.,[in],dataSize,adlx_int,@ENG_START_DOX The size (in bytes) of the buffer for the OEM device data. @ENG_END_DOX} - * @paramrow{6.,[in],data,adlx_byte*,@ENG_START_DOX . The address to the buffer with the new OEM data. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the OEM device data is successfully written, __ADLX_OK__ is returned.
- * If the OEM device data is not successfully written, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The application is responsible to allocate a buffer sufficiently large to hold the requested OEM device data. @ENG_END_DOX - * - * - *@copydoc IADLXI2C_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL Write (ADLX_I2C_LINE line, adlx_int speed, adlx_int address, adlx_int offset, adlx_int dataSize, adlx_byte* data) = 0; - - }; //IADLXI2C - //---------------------------------------------------------------------------------------------- - typedef IADLXInterfacePtr_T IADLXI2CPtr; -} //namespace adlx -#else //__cplusplus -ADLX_DECLARE_IID (IADLXI2C, L"IADLXI2C") - -typedef struct IADLXI2C IADLXI2C; - -typedef struct IADLXI2CVtbl -{ - //IADLXInterface - adlx_long (ADLX_STD_CALL *Acquire)(IADLXI2C* pThis); - adlx_long (ADLX_STD_CALL *Release)(IADLXI2C* pThis); - ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLXI2C* pThis, const wchar_t* interfaceId, void** ppInterface); - - //IADLXI2C - ADLX_RESULT(ADLX_STD_CALL *Version)(IADLXI2C* pThis, adlx_int* major, adlx_int* minor); - ADLX_RESULT(ADLX_STD_CALL *IsSupported)(IADLXI2C* pThis, ADLX_I2C_LINE line, adlx_int address, adlx_bool* isSupported); - ADLX_RESULT(ADLX_STD_CALL *Read)(IADLXI2C* pThis, ADLX_I2C_LINE line, adlx_int speed, adlx_int address, adlx_int offset, adlx_int dataSize, adlx_byte* data); - ADLX_RESULT(ADLX_STD_CALL *RepeatedStartRead)(IADLXI2C* pThis, ADLX_I2C_LINE line, adlx_int speed, adlx_int address, adlx_int offset, adlx_int dataSize, adlx_byte* data); - ADLX_RESULT(ADLX_STD_CALL *Write)(IADLXI2C* pThis, ADLX_I2C_LINE line, adlx_int speed, adlx_int address, adlx_int offset, adlx_int dataSize, adlx_byte* data); - -}IADLXI2CVtbl; - -struct IADLXI2C { const IADLXI2CVtbl *pVtbl; }; -#endif //__cplusplus -#pragma endregion IADLXI2C - -#endif //ADLX_II2C_H diff --git a/src/adlx/sdk/Include/ILog.h b/src/adlx/sdk/Include/ILog.h deleted file mode 100644 index 40f2a79..0000000 --- a/src/adlx/sdk/Include/ILog.h +++ /dev/null @@ -1,72 +0,0 @@ -// -// Copyright (c) 2021 - 2023 Advanced Micro Devices, Inc. All rights reserved. -// -//------------------------------------------------------------------------------------------------- - -//------------------------------------------------------------------------------------------------- -//ILog.h - Interfaces for ADLX log functionality -#ifndef ADLX_LOG_H -#define ADLX_LOG_H -#pragma once - -#include "ADLXDefines.h" - -#pragma region IADLXLog interface -#if defined (__cplusplus) - -namespace adlx -{ - class ADLX_NO_VTABLE IADLXLog - { - public: - /** - * @page DOX_IADLXLog_WriteLog WriteLog - * @ENG_START_DOX - * @brief The __WriteLog__ method is called by ADLX when a new ADLX log message is available. - * @ENG_END_DOX - * @syntax - * @codeStart - * @ref ADLX_RESULT WriteLog (const wchar_t* msg) - * @codeEnd - * - * @params - * @paramrow{1.,[out], msg, const wchar_t*, @ENG_START_DOX The new log message from the internal code execution of ADLX. @ENG_END_DOX} - * - * @retvalues - * @ENG_START_DOX - * The method must return __ADLX_OK__.
- * @ENG_END_DOX - * - * @detaileddesc - * @ENG_START_DOX - * @details Once the application enables the ADLX logs with @ref DOX_IADLXSystem_EnableLog using __APPLICATION__ for the @ref ADLX_LOG_DESTINATION parameter, ADLX will call this method when a new log trace is generated.
- * The method should return quickly to not block the execution path in ADLX. If the method requires a long processing of the log trace, the application must copy the log message and process it asynchronously. - * @ENG_END_DOX - * - * @copydoc IADLXLog_REQ_TABLE - * - * @seealso - * @ref DOX_IADLXSystem_EnableLog - */ - virtual ADLX_RESULT ADLX_STD_CALL WriteLog (const wchar_t* msg) = 0; - }; //IADLXLog -} -#else -ADLX_DECLARE_IID (IADLXLog, L"IADLXLog"); -typedef struct IADLXLog IADLXLog; - -typedef struct IADLXLogVtbl -{ - //IADLXLog - ADLX_RESULT (ADLX_STD_CALL *WriteLog)(IADLXLog* pThis, const wchar_t* msg); -} IADLXLogVtbl; - -struct IADLXLog -{ - const IADLXLogVtbl *pVtbl; -}; - -#endif -#pragma region IADLXLog interface - -#endif //ADLX_LOG_H diff --git a/src/adlx/sdk/Include/IPerformanceMonitoring.h b/src/adlx/sdk/Include/IPerformanceMonitoring.h deleted file mode 100644 index 1d30caf..0000000 --- a/src/adlx/sdk/Include/IPerformanceMonitoring.h +++ /dev/null @@ -1,2520 +0,0 @@ -// -// Copyright (c) 2021 - 2023 Advanced Micro Devices, Inc. All rights reserved. -// -//------------------------------------------------------------------------------------------------- - -#ifndef ADLX_IPERFORMANCEMONITORING_H -#define ADLX_IPERFORMANCEMONITORING_H -#pragma once - -#include "ADLXStructures.h" -#include "ICollections.h" - -//------------------------------------------------------------------------------------------------- -//IPerformanceMonitoring.h - Interfaces for ADLX Performance Monitoring functionality -#pragma region IADLXGPUMetricsSupport -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLXGPUMetricsSupport : public IADLXInterface - { - public: - ADLX_DECLARE_IID (L"IADLXGPUMetricsSupport") - - /** - *@page DOX_IADLXGPUMetricsSupport_IsSupportedGPUUsage IsSupportedGPUUsage - *@ENG_START_DOX @brief Checks if the GPU usage metric reporting is supported on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupportedGPUUsage (adlx_bool* supported) - *@codeEnd - * - *@params - *@paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of GPU usage metric reporting is returned. The variable is __true__ if the GPU usage metric reporting is supported\. The variable is __false__ if the GPU usage metric reporting is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of GPU usage metric reporting is successfully returned, __ADLX_OK__ is returned.
- *If the state of GPU usage metric reporting is not successfully returned, an error code is returned.
- *Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * - *@copydoc IADLXGPUMetricsSupport_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupportedGPUUsage (adlx_bool* supported) = 0; - /** - *@page DOX_IADLXGPUMetricsSupport_IsSupportedGPUClockSpeed IsSupportedGPUClockSpeed - *@ENG_START_DOX @brief Checks if the GPU clock speed metric reporting is supported on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupportedGPUClockSpeed (adlx_bool* supported) - *@codeEnd - * - *@params - *@paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of GPU clock speed metric reporting is returned. The variable is __true__ if the GPU clock speed metric reporting is supported\. The variable is __false__ if the GPU clock speed metric reporting is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of GPU clock speed metric reporting is successfully returned, __ADLX_OK__ is returned.
- *If the state of GPU clock speed metric reporting is not successfully returned, an error code is returned.
- *Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * - *@copydoc IADLXGPUMetricsSupport_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupportedGPUClockSpeed (adlx_bool* supported) = 0; - /** - *@page DOX_IADLXGPUMetricsSupport_IsSupportedGPUVRAMClockSpeed IsSupportedGPUVRAMClockSpeed - *@ENG_START_DOX @brief Checks if the GPU memory clock speed metric reporting is supported on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupportedGPUVRAMClockSpeed (adlx_bool* supported) - *@codeEnd - * - *@params - *@paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of GPU memory clock speed metric reporting is returned. The variable is __true__ if the GPU memory clock speed metric reporting is supported\. The variable is __false__ if the GPU memory clock speed metric reporting is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of GPU memory clock speed metric reporting is successfully returned, __ADLX_OK__ is returned.
- *If the state of GPU memory clock speed metric reporting is not successfully returned, an error code is returned.
- *Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * - *@copydoc IADLXGPUMetricsSupport_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupportedGPUVRAMClockSpeed (adlx_bool* supported) = 0; - /** - *@page DOX_IADLXGPUMetricsSupport_IsSupportedGPUTemperature IsSupportedGPUTemperature - *@ENG_START_DOX @brief Checks if the GPU temperature metric reporting is supported on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupportedGPUTemperature (adlx_bool* supported) - *@codeEnd - * - *@params - *@paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of GPU temperature metric reporting is returned. The variable is __true__ if the GPU temperature metric reporting is supported\. The variable is __false__ if the GPU temperature metric reporting is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of GPU temperature metric reporting is successfully returned, __ADLX_OK__ is returned.
- *If the state of GPU temperature metric reporting is not successfully returned, an error code is returned.
- *Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * - *@copydoc IADLXGPUMetricsSupport_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupportedGPUTemperature (adlx_bool* supported) = 0; - /** - *@page DOX_IADLXGPUMetricsSupport_IsSupportedGPUHotspotTemperature IsSupportedGPUHotspotTemperature - *@ENG_START_DOX @brief Checks if the GPU hotspot temperature metric reporting is supported on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupportedGPUHotspotTemperature (adlx_bool* supported) - *@codeEnd - * - *@params - *@paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of GPU temperature metric reporting is returned. The variable is __true__ if the GPU hotspot temperature metric reporting is supported\. The variable is __false__ if the GPU hotspot temperature metric reporting is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of GPU hotspot temperature metric reporting is successfully returned, __ADLX_OK__ is returned.
- *If the state of GPU hotspot temperature metric reporting is not successfully returned, an error code is returned.
- *Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * - *@copydoc IADLXGPUMetricsSupport_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupportedGPUHotspotTemperature (adlx_bool* supported) = 0; - /** - *@page DOX_IADLXGPUMetricsSupport_IsSupportedGPUPower IsSupportedGPUPower - *@ENG_START_DOX @brief Checks if the GPU power metric reporting is supported on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupportedGPUPower (adlx_bool* supported) - *@codeEnd - * - *@params - *@paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of GPU power metric reporting is returned. The variable is __true__ if the GPU power metric reporting is supported\. The variable is __false__ if the GPU power metric reporting is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of GPU power metric reporting is successfully returned, __ADLX_OK__ is returned.
- *If the state of GPU power metric reporting is not successfully returned, an error code is returned.
- *Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * - *@copydoc IADLXGPUMetricsSupport_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupportedGPUPower (adlx_bool* supported) = 0; - /** - *@page DOX_IADLXGPUMetricsSupport_IsSupportedGPUTotalBoardPower IsSupportedGPUTotalBoardPower - *@ENG_START_DOX @brief Checks if the GPU total board power metric reporting is supported on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupportedGPUTotalBoardPower (adlx_bool* supported) - *@codeEnd - * - *@params - *@paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of GPU total board power metric reporting is returned. The variable is __true__ if the GPU total board power metric reporting is supported\. The variable is __false__ if the GPU total board power metric reporting is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of GPU total board power metric reporting is successfully returned, __ADLX_OK__ is returned.
- *If the state of GPU total board power metric reporting is not successfully returned, an error code is returned.
- *Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * - *@copydoc IADLXGPUMetricsSupport_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupportedGPUTotalBoardPower(adlx_bool* supported) = 0; - /** - *@page DOX_IADLXGPUMetricsSupport_IsSupportedGPUFanSpeed IsSupportedGPUFanSpeed - *@ENG_START_DOX @brief Checks if the GPU fan speed metric reporting is supported on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupportedGPUFanSpeed (adlx_bool* supported) - *@codeEnd - * - *@params - *@paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of GPU fan speed metric reporting is returned. The variable is __true__ if the GPU fan speed metric reporting is supported\. The variable is __false__ if the GPU fan speed metric reporting is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of GPU fan speed metric reporting is successfully returned, __ADLX_OK__ is returned.
- *If the state of GPU fan speed metric reporting is not successfully returned, an error code is returned.
- *Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * - *@copydoc IADLXGPUMetricsSupport_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupportedGPUFanSpeed (adlx_bool* supported) = 0; - /** - *@page DOX_IADLXGPUMetricsSupport_IsSupportedGPUVRAM IsSupportedGPUVRAM - *@ENG_START_DOX @brief Checks if the GPU VRAM usage metric reporting is supported on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupportedGPUVRAM (adlx_bool* supported) - *@codeEnd - * - *@params - *@paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of GPU VRAM usage metric reporting is returned. The variable is __true__ if the GPU VRAM usage metric reporting is supported. The variable is __false__ if the GPU VRAM usage metric reporting is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of GPU VRAM usage metric reporting is successfully returned, __ADLX_OK__ is returned.
- *If the state of GPU VRAM usage metric reporting is not successfully returned, an error code is returned.
- *Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * - *@copydoc IADLXGPUMetricsSupport_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupportedGPUVRAM (adlx_bool* supported) = 0; - /** - *@page DOX_IADLXGPUMetricsSupport_IsSupportedGPUVoltage IsSupportedGPUVoltage - *@ENG_START_DOX @brief Checks if the GPU voltage metric reporting is supported on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupportedGPUVoltage (adlx_bool* supported) - *@codeEnd - * - *@params - *@paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of GPU voltage metric reporting is returned. The variable is __true__ if the GPU voltage metric reporting is supported. The variable is __false__ if the GPU voltage metric reporting is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of GPU voltage metric reporting is successfully returned, __ADLX_OK__ is returned.
- *If the state of GPU voltage metric reporting is not successfully returned, an error code is returned.
- *Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * - *@copydoc IADLXGPUMetricsSupport_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupportedGPUVoltage (adlx_bool* supported) = 0; - - /** - *@page DOX_IADLXGPUMetricsSupport_GetGPUUsageRange GetGPUUsageRange - *@ENG_START_DOX @brief Gets the minimum and maximum GPU usage on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetGPUUsageRange (adlx_int* minValue, adlx_int* maxValue) - *@codeEnd - * - *@params - * @paramrow{1.,[out],minValue,adlx_int*,@ENG_START_DOX The pointer to a variable where the minimum GPU usage (in %) is returned. @ENG_END_DOX} - * @paramrow{2.,[out],maxValue,adlx_int*,@ENG_START_DOX The pointer to a variable where the maximum GPU usage (in %) is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the GPU usage range is successfully returned, __ADLX_OK__ is returned.
- * If the GPU usage range is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The minimum and maximum GPU usage are read only. @ENG_END_DOX - * - * - *@copydoc IADLXGPUMetricsSupport_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetGPUUsageRange (adlx_int* minValue, adlx_int* maxValue) = 0; - /** - *@page DOX_IADLXGPUMetricsSupport_GetGPUClockSpeedRange GetGPUClockSpeedRange - *@ENG_START_DOX @brief Gets the minimum and maximum GPU clock speed on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetGPUClockSpeedRange (adlx_int* minValue, adlx_int* maxValue) - *@codeEnd - * - *@params - * @paramrow{1.,[out],minValue,adlx_int*,@ENG_START_DOX The pointer to a variable where the minimum GPU clock speed (in MHz) is returned. @ENG_END_DOX} - * @paramrow{2.,[out],maxValue,adlx_int*,@ENG_START_DOX The pointer to a variable where the maximum GPU clock speed (in MHz) is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the GPU clock speed range is successfully returned, __ADLX_OK__ is returned.
- * If the GPU clock speed range is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The minimum and maximum GPU clock speed are read only. @ENG_END_DOX - * - * - *@copydoc IADLXGPUMetricsSupport_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetGPUClockSpeedRange (adlx_int* minValue, adlx_int* maxValue) = 0; - /** - *@page DOX_IADLXGPUMetricsSupport_GetGPUVRAMClockSpeedRange GetGPUVRAMClockSpeedRange - *@ENG_START_DOX @brief Gets the minimum and maximum VRAM clock speed on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetGPUVRAMClockSpeedRange (adlx_int* minValue, adlx_int* maxValue) - *@codeEnd - * - *@params - * @paramrow{1.,[out],minValue,adlx_int*,@ENG_START_DOX The pointer to a variable where the minimum VRAM clock speed (in MHz) is returned. @ENG_END_DOX} - * @paramrow{2.,[out],maxValue,adlx_int*,@ENG_START_DOX The pointer to a variable where the maximum VRAM clock speed (in MHz) is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the VRAM clock speed range is successfully returned, __ADLX_OK__ is returned.
- * If the VRAM clock speed range is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The minimum and maximum VRAM clock speed are read only. @ENG_END_DOX - * - * - *@copydoc IADLXGPUMetricsSupport_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetGPUVRAMClockSpeedRange (adlx_int* minValue, adlx_int* maxValue) = 0; - /** - *@page DOX_IADLXGPUMetricsSupport_GetGPUTemperatureRange GetGPUTemperatureRange - *@ENG_START_DOX @brief Gets the minimum and maximum GPU temperature on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetGPUTemperatureRange (adlx_int* minValue, adlx_int* maxValue) - *@codeEnd - * - *@params - * @paramrow{1.,[out],minValue,adlx_int*,@ENG_START_DOX The pointer to a variable where the minimum GPU temperature (in °C) is returned. @ENG_END_DOX} - * @paramrow{2.,[out],maxValue,adlx_int*,@ENG_START_DOX The pointer to a variable where the maximum GPU temperature (in °C) is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the GPU temperature range is successfully returned, __ADLX_OK__ is returned.
- * If the GPU temperature range is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The minimum and maximum GPU temperature are read only. @ENG_END_DOX - * - * - *@copydoc IADLXGPUMetricsSupport_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetGPUTemperatureRange (adlx_int* minValue, adlx_int* maxValue) = 0; - /** - *@page DOX_IADLXGPUMetricsSupport_GetGPUHotspotTemperatureRange GetGPUHotspotTemperatureRange - *@ENG_START_DOX @brief Gets the minimum and maximum GPU hotspot temperature on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetGPUHotspotTemperatureRange (adlx_int* minValue, adlx_int* maxValue) - *@codeEnd - * - *@params - * @paramrow{1.,[out],minValue,adlx_int*,@ENG_START_DOX The pointer to a variable where the minimum GPU hotspot temperature (in °C) is returned. @ENG_END_DOX} - * @paramrow{2.,[out],maxValue,adlx_int*,@ENG_START_DOX The pointer to a variable where the maximum GPU hotspot temperature (in °C) is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the GPU hotspot temperature range is successfully returned, __ADLX_OK__ is returned.
- * If the GPU hotspot temperature range is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The minimum and maximum GPU hotspot temperature are read only. @ENG_END_DOX - * - * - *@copydoc IADLXGPUMetricsSupport_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetGPUHotspotTemperatureRange (adlx_int* minValue, adlx_int* maxValue) = 0; - /** - *@page DOX_IADLXGPUMetricsSupport_GetGPUPowerRange GetGPUPowerRange - *@ENG_START_DOX @brief Gets the minimum and maximum GPU power consumption on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetGPUPowerRange (adlx_int* minValue, adlx_int* maxValue) - *@codeEnd - * - *@params - * @paramrow{1.,[out],minValue,adlx_int*,@ENG_START_DOX The pointer to a variable where the minimum GPU power consumption (in W) is returned. @ENG_END_DOX} - * @paramrow{2.,[out],maxValue,adlx_int*,@ENG_START_DOX The pointer to a variable where the maximum GPU power consumption (in W) is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the GPU power consumption range is successfully returned, __ADLX_OK__ is returned.
- * If the GPU power consumption range is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The minimum and maximum GPU power consumption are read only. @ENG_END_DOX - * - * - *@copydoc IADLXGPUMetricsSupport_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetGPUPowerRange (adlx_int* minValue, adlx_int* maxValue) = 0; - /** - *@page DOX_IADLXGPUMetricsSupport_GetGPUFanSpeedRange GetGPUFanSpeedRange - *@ENG_START_DOX @brief Gets the minimum and maximum GPU fan speed on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetGPUFanSpeedRange (adlx_int* minValue, adlx_int* maxValue) - *@codeEnd - * - *@params - * @paramrow{1.,[out],minValue,adlx_int*,@ENG_START_DOX The pointer to a variable where the minimum GPU fan speed (in RPM) is returned. @ENG_END_DOX} - * @paramrow{2.,[out],maxValue,adlx_int*,@ENG_START_DOX The pointer to a variable where the maximum GPU fan speed (in RPM) is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the GPU fan speed range is successfully returned, __ADLX_OK__ is returned.
- * If the GPU fan speed range is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The minimum and maximum GPU fan speed are read only. @ENG_END_DOX - * - * - *@copydoc IADLXGPUMetricsSupport_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetGPUFanSpeedRange (adlx_int* minValue, adlx_int* maxValue) = 0; - /** - *@page DOX_IADLXGPUMetricsSupport_GetGPUVRAMRange GetGPUVRAMRange - *@ENG_START_DOX @brief Gets the minimum and maximum GPU memory on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetGPUVRAMRange (adlx_int* minValue, adlx_int* maxValue) - *@codeEnd - * - *@params - * @paramrow{1.,[out],minValue,adlx_int*,@ENG_START_DOX The pointer to a variable where the minimum GPU memory (in MB) is returned. @ENG_END_DOX} - * @paramrow{2.,[out],maxValue,adlx_int*,@ENG_START_DOX The pointer to a variable where the maximum GPU memory (in MB) is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the GPU memory range is successfully returned, __ADLX_OK__ is returned.
- * If the GPU memory range is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The minimum and maximum GPU memory are read only. @ENG_END_DOX - * - * - *@copydoc IADLXGPUMetricsSupport_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetGPUVRAMRange (adlx_int* minValue, adlx_int* maxValue) = 0; - /** - *@page DOX_IADLXGPUMetricsSupport_GetGPUVoltageRange GetGPUVoltageRange - *@ENG_START_DOX @brief Gets the minimum and maximum GPU voltage on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetGPUVoltageRange (adlx_int* minValue, adlx_int* maxValue) - *@codeEnd - * - *@params - * @paramrow{1.,[out],minValue,adlx_int*,@ENG_START_DOX The pointer to a variable where the minimum GPU voltage (in mV) is returned. @ENG_END_DOX} - * @paramrow{2.,[out],maxValue,adlx_int*,@ENG_START_DOX The pointer to a variable where the maximum GPU voltage (in mV) is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the GPU voltage range is successfully returned, __ADLX_OK__ is returned.
- * If the GPU voltage range is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The minimum and maximum GPU voltage are read only. @ENG_END_DOX - * - * - *@copydoc IADLXGPUMetricsSupport_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetGPUVoltageRange (adlx_int* minValue, adlx_int* maxValue) = 0; - /** - *@page DOX_IADLXGPUMetricsSupport_GetGPUTotalBoardPowerRange GetGPUTotalBoardPowerRange - *@ENG_START_DOX @brief Gets the minimum and maximum GPU total board power consumption on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetGPUTotalBoardPowerRange (adlx_int* minValue, adlx_int* maxValue) - *@codeEnd - * - *@params - * @paramrow{1.,[out],minValue,adlx_int*,@ENG_START_DOX The pointer to a variable where the minimum GPU total board power consumption (in W) is returned. @ENG_END_DOX} - * @paramrow{2.,[out],maxValue,adlx_int*,@ENG_START_DOX The pointer to a variable where the maximum GPU total board power consumption (in W) is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the GPU total board power consumption range is successfully returned, __ADLX_OK__ is returned.
- * If the GPU total board power consumption range is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The minimum and maximum GPU total board power consumption are read only. @ENG_END_DOX - * - * - *@copydoc IADLXGPUMetricsSupport_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetGPUTotalBoardPowerRange (adlx_int* minValue, adlx_int* maxValue) = 0; - /** - *@page DOX_IADLXGPUMetricsSupport_GetGPUIntakeTemperatureRange GetGPUIntakeTemperatureRange - *@ENG_START_DOX @brief Gets the minimum and maximum GPU intake temperature on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetGPUIntakeTemperatureRange (adlx_int* minValue, adlx_int* maxValue) - *@codeEnd - * - *@params - * @paramrow{1.,[out],minValue,adlx_int*,@ENG_START_DOX The pointer to a variable where the minimum GPU intake temperature (in °C) is returned. @ENG_END_DOX} - * @paramrow{2.,[out],maxValue,adlx_int*,@ENG_START_DOX The pointer to a variable where the maximum GPU intake temperature (in °C) is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the GPU intake temperature range is successfully returned, __ADLX_OK__ is returned.
- * If the GPU intake temperature range is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The minimum and maximum GPU intake temperature are read only. @ENG_END_DOX - * - * - *@copydoc IADLXGPUMetricsSupport_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetGPUIntakeTemperatureRange (adlx_int* minValue, adlx_int* maxValue) = 0; - /** - *@page DOX_IADLXGPUMetricsSupport_IsSupportedGPUIntakeTemperature IsSupportedGPUIntakeTemperature - *@ENG_START_DOX @brief Checks if the GPU intake temperature metric reporting is supported on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupportedGPUIntakeTemperature (adlx_bool* supported) - *@codeEnd - * - *@params - *@paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of GPU intake temperature metric reporting is returned. The variable is __true__ if the GPU intake temperature metric reporting is supported\. The variable is __false__ if the GPU intake temperature metric reporting is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of GPU intake temperature metric reporting is successfully returned, __ADLX_OK__ is returned.
- *If the state of GPU intake temperature metric reporting is not successfully returned, an error code is returned.
- *Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * - *@copydoc IADLXGPUMetricsSupport_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupportedGPUIntakeTemperature (adlx_bool* supported) = 0; - }; - //---------------------------------------------------------------------------------------------- - typedef IADLXInterfacePtr_T IADLXGPUMetricsSupportPtr; -} //namespace adlx -#else //__cplusplus -ADLX_DECLARE_IID (IADLXGPUMetricsSupport, L"IADLXGPUMetricsSupport") - -typedef struct IADLXGPUMetricsSupport IADLXGPUMetricsSupport; - -typedef struct IADLXGPUMetricsSupportVtbl -{ - //IADLXInterface - adlx_long (ADLX_STD_CALL* Acquire)(IADLXGPUMetricsSupport* pThis); - adlx_long (ADLX_STD_CALL* Release)(IADLXGPUMetricsSupport* pThis); - ADLX_RESULT (ADLX_STD_CALL* QueryInterface)(IADLXGPUMetricsSupport* pThis, const wchar_t* interfaceId, void** ppInterface); - - //IADLXGPUMetricsSupport - ADLX_RESULT (ADLX_STD_CALL* IsSupportedGPUUsage)(IADLXGPUMetricsSupport* pThis, adlx_bool* supported); - ADLX_RESULT (ADLX_STD_CALL* IsSupportedGPUClockSpeed)(IADLXGPUMetricsSupport* pThis, adlx_bool* supported); - ADLX_RESULT (ADLX_STD_CALL* IsSupportedGPUVRAMClockSpeed)(IADLXGPUMetricsSupport* pThis, adlx_bool* supported); - ADLX_RESULT (ADLX_STD_CALL* IsSupportedGPUTemperature)(IADLXGPUMetricsSupport* pThis, adlx_bool* supported); - ADLX_RESULT (ADLX_STD_CALL* IsSupportedGPUHotspotTemperature)(IADLXGPUMetricsSupport* pThis, adlx_bool* supported); - ADLX_RESULT (ADLX_STD_CALL* IsSupportedGPUPower)(IADLXGPUMetricsSupport* pThis, adlx_bool* supported); - ADLX_RESULT (ADLX_STD_CALL* IsSupportedGPUTotalBoardPower)(IADLXGPUMetricsSupport* pThis, adlx_bool* supported); - ADLX_RESULT (ADLX_STD_CALL* IsSupportedGPUFanSpeed)(IADLXGPUMetricsSupport* pThis, adlx_bool* supported); - ADLX_RESULT (ADLX_STD_CALL* IsSupportedGPUVRAM)(IADLXGPUMetricsSupport* pThis, adlx_bool* supported); - ADLX_RESULT (ADLX_STD_CALL* IsSupportedGPUVoltage)(IADLXGPUMetricsSupport* pThis, adlx_bool* supported); - - ADLX_RESULT (ADLX_STD_CALL* GetGPUUsageRange)(IADLXGPUMetricsSupport* pThis, adlx_int* minValue, adlx_int* maxValue); - ADLX_RESULT (ADLX_STD_CALL* GetGPUClockSpeedRange)(IADLXGPUMetricsSupport* pThis, adlx_int* minValue, adlx_int* maxValue); - ADLX_RESULT (ADLX_STD_CALL* GetGPUVRAMClockSpeedRange)(IADLXGPUMetricsSupport* pThis, adlx_int* minValue, adlx_int* maxValue); - ADLX_RESULT (ADLX_STD_CALL* GetGPUTemperatureRange)(IADLXGPUMetricsSupport* pThis, adlx_int* minValue, adlx_int* maxValue); - ADLX_RESULT (ADLX_STD_CALL* GetGPUHotspotTemperatureRange)(IADLXGPUMetricsSupport* pThis, adlx_int* minValue, adlx_int* maxValue); - ADLX_RESULT (ADLX_STD_CALL* GetGPUPowerRange)(IADLXGPUMetricsSupport* pThis, adlx_int* minValue, adlx_int* maxValue); - ADLX_RESULT (ADLX_STD_CALL* GetGPUFanSpeedRange)(IADLXGPUMetricsSupport* pThis, adlx_int* minValue, adlx_int* maxValue); - ADLX_RESULT (ADLX_STD_CALL* GetGPUVRAMRange)(IADLXGPUMetricsSupport* pThis, adlx_int* minValue, adlx_int* maxValue); - ADLX_RESULT (ADLX_STD_CALL* GetGPUVoltageRange)(IADLXGPUMetricsSupport* pThis, adlx_int* minValue, adlx_int* maxValue); - ADLX_RESULT (ADLX_STD_CALL* GetGPUTotalBoardPowerRange)(IADLXGPUMetricsSupport* pThis, adlx_int* minValue, adlx_int* maxValue); - ADLX_RESULT (ADLX_STD_CALL* GetGPUIntakeTemperatureRange)(IADLXGPUMetricsSupport* pThis, adlx_int* minValue, adlx_int* maxValue); - ADLX_RESULT (ADLX_STD_CALL* IsSupportedGPUIntakeTemperature)(IADLXGPUMetricsSupport* pThis, adlx_bool* supported); -} IADLXGPUMetricsSupportVtbl; - -struct IADLXGPUMetricsSupport { const IADLXGPUMetricsSupportVtbl *pVtbl; }; -#endif //__cplusplus -#pragma endregion IADLXGPUMetricsSupport - -#pragma region IADLXSystemMetricsSupport -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLXSystemMetricsSupport : public IADLXInterface - { - public: - ADLX_DECLARE_IID (L"IADLXSystemMetricsSupport") - - /** - *@page DOX_IADLXSystemMetricsSupport_IsSupportedCPUUsage IsSupportedCPUUsage - *@ENG_START_DOX @brief Checks if the CPU usage metric reporting is supported by the system. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupportedCPUUsage (adlx_bool* supported) - *@codeEnd - * - *@params - *@paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of CPU usage metric reporting is returned. The variable is __true__ if the CPU usage metric reporting is supported\. The variable is __false__ if the CPU usage metric reporting is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of CPU usage metric reporting is successfully returned, __ADLX_OK__ is returned.
- *If the state of CPU usage metric reporting is not successfully returned, an error code is returned.
- *Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * - *@copydoc IADLXSystemMetricsSupport_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupportedCPUUsage (adlx_bool* supported) = 0; - /** - *@page DOX_IADLXSystemMetricsSupport_IsSupportedSystemRAM IsSupportedSystemRAM - *@ENG_START_DOX @brief Checks if the RAM usage metric reporting is supported by the system. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupportedSystemRAM (adlx_bool* supported) - *@codeEnd - * - *@params - *@paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of system RAM usage metric reporting is returned. The variable is __true__ if the system RAM usage metric reporting is supported. The variable is __false__ if the system RAM usage metric reporting is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of system RAM usage metric reporting is successfully returned, __ADLX_OK__ is returned.
- *If the state of system RAM usage metric reporting is not successfully returned, an error code is returned.
- *Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * - *@copydoc IADLXSystemMetricsSupport_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupportedSystemRAM (adlx_bool* supported) = 0; - /** - *@page DOX_IADLXSystemMetricsSupport_IsSupportedSmartShift IsSupportedSmartShift - *@ENG_START_DOX @brief Checks if the SmartShift metric reporting is supported by the system. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupportedSmartShift (adlx_bool* supported) - *@codeEnd - * - *@params - *@paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of SmartShift metric reporting is returned. The variable is __true__ if the SmartShift metric reporting is supported\. The variable is __false__ if the SmartShift metric reporting is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of SmartShift metric reporting is successfully returned, __ADLX_OK__ is returned.
- *If the state of SmartShift metric reporting is not successfully returned, an error code is returned.
- *Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * - *@copydoc IADLXSystemMetricsSupport_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupportedSmartShift (adlx_bool* supported) = 0; - /** - *@page DOX_IADLXSystemMetricsSupport_GetCPUUsageRange GetCPUUsageRange - *@ENG_START_DOX @brief Gets the minimum and maximum CPU usage of a system. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetCPUUsageRange (adlx_int* minValue, adlx_int* maxValue) - *@codeEnd - * - *@params - * @paramrow{1.,[out],minValue,adlx_int*,@ENG_START_DOX The pointer to a variable where the minimum CPU usage (in %) is returned. @ENG_END_DOX} - * @paramrow{2.,[out],maxValue,adlx_int*,@ENG_START_DOX The pointer to a variable where the maximum CPU usage (in %) is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the CPU usage range is successfully returned, __ADLX_OK__ is returned.
- * If the CPU usage range is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The minimum and maximum CPU usage are read only. @ENG_END_DOX - * - * - *@copydoc IADLXSystemMetricsSupport_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetCPUUsageRange (adlx_int* minValue, adlx_int* maxValue) = 0; - /** - *@page DOX_IADLXSystemMetricsSupport_GetSystemRAMRange GetSystemRAMRange - *@ENG_START_DOX @brief Gets the minimum and maximum system RAM of a system. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetSystemRAMRange (adlx_int* minValue, adlx_int* maxValue) - *@codeEnd - * - *@params - * @paramrow{1.,[out],minValue,adlx_int*,@ENG_START_DOX The pointer to a variable where the minimum system RAM (in MB) is returned. @ENG_END_DOX} - * @paramrow{2.,[out],maxValue,adlx_int*,@ENG_START_DOX The pointer to a variable where the maximum system RAM (in MB) is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the system RAM range is successfully returned, __ADLX_OK__ is returned.
- * If the system RAM range is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The minimum and maximum system RAM are read only. @ENG_END_DOX - * - * - *@copydoc IADLXSystemMetricsSupport_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetSystemRAMRange (adlx_int* minValue, adlx_int* maxValue) = 0; - /** - *@page DOX_IADLXSystemMetricsSupport_GetSmartShiftRange GetSmartShiftRange - *@ENG_START_DOX @brief Gets the minimum and maximum SmartShift value of a system. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetSmartShiftRange (adlx_int* minValue, adlx_int* maxValue) - *@codeEnd - * - *@params - * @paramrow{1.,[out],minValue,adlx_int*,@ENG_START_DOX The pointer to a variable where the minimum SmartShift value is returned. @ENG_END_DOX} - * @paramrow{2.,[out],maxValue,adlx_int*,@ENG_START_DOX The pointer to a variable where the maximum SmartShift value is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the SmartShift value range is successfully returned, __ADLX_OK__ is returned.
- * If the SmartShift value range is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The minimum and maximum SmartShift value are read only. @ENG_END_DOX - * - * - *@copydoc IADLXSystemMetricsSupport_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetSmartShiftRange (adlx_int* minValue, adlx_int* maxValue) = 0; - }; - //---------------------------------------------------------------------------------------------- - typedef IADLXInterfacePtr_T IADLXSystemMetricsSupportPtr; -} //namespace adlx -#else //__cplusplus -ADLX_DECLARE_IID (IADLXSystemMetricsSupport, L"IADLXSystemMetricsSupport") - -typedef struct IADLXSystemMetricsSupport IADLXSystemMetricsSupport; - -typedef struct IADLXSystemMetricsSupportVtbl -{ - //IADLXInterface - adlx_long (ADLX_STD_CALL *Acquire)(IADLXSystemMetricsSupport* pThis); - adlx_long (ADLX_STD_CALL *Release)(IADLXSystemMetricsSupport* pThis); - ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLXSystemMetricsSupport* pThis, const wchar_t* interfaceId, void** ppInterface); - - //IADLXSystemMetricsSupport - ADLX_RESULT (ADLX_STD_CALL *IsSupportedCPUUsage)(IADLXSystemMetricsSupport* pThis, adlx_bool* supported); - ADLX_RESULT (ADLX_STD_CALL *IsSupportedSystemRAM)(IADLXSystemMetricsSupport* pThis, adlx_bool* supported); - ADLX_RESULT (ADLX_STD_CALL *IsSupportedSmartShift)(IADLXSystemMetricsSupport* pThis, adlx_bool* supported); - ADLX_RESULT (ADLX_STD_CALL *GetCPUUsageRange)(IADLXSystemMetricsSupport* pThis, adlx_int* minValue, adlx_int* maxValue); - ADLX_RESULT (ADLX_STD_CALL *GetSystemRAMRange)(IADLXSystemMetricsSupport* pThis, adlx_int* minValue, adlx_int* maxValue); - ADLX_RESULT (ADLX_STD_CALL *GetSmartShiftRange)(IADLXSystemMetricsSupport* pThis, adlx_int* minValue, adlx_int* maxValue); -}IADLXSystemMetricsSupportVtbl; - -struct IADLXSystemMetricsSupport { const IADLXSystemMetricsSupportVtbl *pVtbl; }; -#endif //__cplusplus -#pragma endregion IADLXSystemMetricsSupport - -#pragma region IADLXGPUMetrics -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLXGPUMetrics : public IADLXInterface - { - public: - ADLX_DECLARE_IID (L"IADLXGPUMetrics") - /** - *@page DOX_IADLXGPUMetrics_TimeStamp TimeStamp - *@ENG_START_DOX @brief Gets the timestamp of a GPU metric sample. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT TimeStamp (adlx_int64* ms) - *@codeEnd - * - *@params - *@paramrow{1.,[out] ,ms,adlx_int64* ,@ENG_START_DOX The pointer to a variable where the timestamp (in ms) is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the timestamp is successfully returned, __ADLX_OK__ is returned.
- * If the timestamp is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The timestamp is the duration (in ms) from the system epoch time to the time when the metric sample was acquired. @ENG_END_DOX - * - *@copydoc IADLXGPUMetrics_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL TimeStamp (adlx_int64* ms) = 0; - /** - *@page DOX_IADLXGPUMetrics_GPUUsage GPUUsage - *@ENG_START_DOX @brief Gets the GPU usage of a GPU metric sample. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GPUUsage (adlx_double* data) - *@codeEnd - * - *@params - *@paramrow{1.,[out] ,data,adlx_double* ,@ENG_START_DOX The pointer to a variable where the CPU usage (in %) is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the GPU usage is successfully returned, __ADLX_OK__ is returned.
- * If the GPU usage is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * - *@copydoc IADLXGPUMetrics_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GPUUsage (adlx_double* data) = 0; - /** - *@page DOX_IADLXGPUMetrics_GPUClockSpeed GPUClockSpeed - *@ENG_START_DOX @brief Gets the GPU clock speed of a GPU metric sample. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GPUClockSpeed (adlx_int* data) - *@codeEnd - * - *@params - *@paramrow{1.,[out] ,data,adlx_int* ,@ENG_START_DOX The pointer to a variable where the GPU clock speed (in MHz) is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the GPU clock speed is successfully returned, __ADLX_OK__ is returned.
- * If the GPU clock speed is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * - *@copydoc IADLXGPUMetrics_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GPUClockSpeed (adlx_int* data) = 0; - /** - *@page DOX_IADLXGPUMetrics_GPUVRAMClockSpeed GPUVRAMClockSpeed - *@ENG_START_DOX @brief Gets the VRAM clock speed of a GPU metric sample. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GPUVRAMClockSpeed (adlx_int* data) - *@codeEnd - * - *@params - *@paramrow{1.,[out] ,data,adlx_int* ,@ENG_START_DOX GPU Memory The pointer to a variable where the VRAM clock speed (in MHz) is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the VRAM clock speed is successfully returned, __ADLX_OK__ is returned.
- * If the VRAM clock speed is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * - *@copydoc IADLXGPUMetrics_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GPUVRAMClockSpeed (adlx_int* data) = 0; - /** - *@page DOX_IADLXGPUMetrics_GPUTemperature GPUTemperature - *@ENG_START_DOX - *@brief Gets the GPU temperature of a GPU metric sample. - *@details GPUTemperature reports the average temperature measured at the edge of the die of the GPU. This is sometimes referred to as ‘Edge Temperature’. - *@ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GPUTemperature (adlx_double* data) - *@codeEnd - * - *@params - *@paramrow{1.,[out] ,data,adlx_double* ,@ENG_START_DOX The pointer to a variable where the GPU temperature (in °C) is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the GPU temperature is successfully returned, __ADLX_OK__ is returned.
- * If the GPU temperature is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - *@addinfo - * @ENG_START_DOX Related method: @ref DOX_IADLXGPUMetrics_GPUHotspotTemperature, @ref DOX_IADLXGPUMetrics_GPUIntakeTemperature. @ENG_END_DOX - * - * - *@copydoc IADLXGPUMetrics_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GPUTemperature (adlx_double* data) = 0; - /** - *@page DOX_IADLXGPUMetrics_GPUHotspotTemperature GPUHotspotTemperature - *@ENG_START_DOX - *@brief Gets the GPU hotspot temperature of a GPU metric sample. - *@details GPUHotspotTemperature reports the highest temperature measured on the die of the GPU from a collection of junction temperature sensors on the die. This is sometimes referred to as ‘Junction Temperature’. - *@ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GPUHotspotTemperature (adlx_double* data) - *@codeEnd - * - *@params - *@paramrow{1.,[out] ,data,adlx_double* ,@ENG_START_DOX The pointer to a variable where the GPU hotspot temperature (in °C) is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the GPU hotspot temperature is successfully returned, __ADLX_OK__ is returned.
- * If the GPU hotspot temperature is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@addinfo - * @ENG_START_DOX Related method: @ref DOX_IADLXGPUMetrics_GPUIntakeTemperature, @ref DOX_IADLXGPUMetrics_GPUTemperature. @ENG_END_DOX - * - * - *@copydoc IADLXGPUMetrics_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GPUHotspotTemperature (adlx_double* data) = 0; - /** - *@page DOX_IADLXGPUMetrics_GPUPower GPUPower - *@ENG_START_DOX - *@brief Gets the GPU power consumption of a GPU metric sample. - *@ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GPUPower (adlx_double* data) - *@codeEnd - * - *@params - *@paramrow{1.,[out] ,data,adlx_double* ,@ENG_START_DOX The pointer to a variable where the GPU power consumption (in W) is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the GPU power is successfully returned, __ADLX_OK__ is returned.
- * If the GPU power is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * - *@copydoc IADLXGPUMetrics_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GPUPower (adlx_double* data) = 0; - /** - *@page DOX_IADLXGPUMetrics_GPUTotalBoardPower GPUTotalBoardPower - *@ENG_START_DOX @brief Gets the GPU total board power consumption of a GPU metric sample. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GPUTotalBoardPower (adlx_double* data) - *@codeEnd - * - *@params - *@paramrow{1.,[out] ,data,adlx_double* ,@ENG_START_DOX The pointer to a variable where the GPU total board power consumption (in W) is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the GPU total board power is successfully returned, __ADLX_OK__ is returned.
- * If the GPU total board power is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@addinfo - * @ENG_START_DOX The method returns power of all components on the board including VRAM. @ENG_END_DOX - * - *@copydoc IADLXGPUMetrics_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GPUTotalBoardPower(adlx_double* data) = 0; - /** - *@page DOX_IADLXGPUMetrics_GPUFanSpeed GPUFanSpeed - *@ENG_START_DOX @brief Gets the GPU fan speed of a GPU metric sample. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GPUFanSpeed (adlx_int* data) - *@codeEnd - * - *@params - *@paramrow{1.,[out] ,data,adlx_int* ,@ENG_START_DOX The pointer to a variable where the GPU fan speed (in RPM) is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the GPU fan speed is successfully returned, __ADLX_OK__ is returned.
- * If the GPU fan speed is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * - *@copydoc IADLXGPUMetrics_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GPUFanSpeed (adlx_int* data) = 0; - /** - *@page DOX_IADLXGPUMetrics_GPUVRAM GPUVRAM - *@ENG_START_DOX @brief Gets the dedicated GPU memory of a GPU metric sample. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GPUVRAM (adlx_int* data) - *@codeEnd - * - *@params - *@paramrow{1.,[out] ,data,adlx_int* ,@ENG_START_DOX The pointer to a variable where the dedicated GPU memory (in MB) is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the dedicated GPU memory is successfully returned, __ADLX_OK__ is returned.
- * If the dedicated GPU memory is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * - *@copydoc IADLXGPUMetrics_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GPUVRAM (adlx_int* data) = 0; - /** - *@page DOX_IADLXGPUMetrics_GPUVoltage GPUVoltage - *@ENG_START_DOX @brief Gets the GPU voltage of a GPU metric sample. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GPUVoltage (adlx_int* data) - *@codeEnd - * - *@params - *@paramrow{1.,[out] ,data,adlx_int* ,@ENG_START_DOX The pointer to a variable where the GPU voltage (in mV) is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the GPU voltage is successfully returned, __ADLX_OK__ is returned.
- * If the GPU voltage is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * - *@copydoc IADLXGPUMetrics_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GPUVoltage (adlx_int* data) = 0; - /** - *@page DOX_IADLXGPUMetrics_GPUIntakeTemperature GPUIntakeTemperature - *@ENG_START_DOX - *@brief Gets the GPU intake temperature of a GPU metric sample. - *@details GPUIntakeTemperature reports the fan intake temperature. - *@ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GPUIntakeTemperature (adlx_double* data) - *@codeEnd - * - *@params - *@paramrow{1.,[out] ,data,adlx_double* ,@ENG_START_DOX The pointer to a variable where the GPU intake temperature (in °C) is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the GPU intake temperature is successfully returned, __ADLX_OK__ is returned.
- * If the GPU Intake temperature is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - *@addinfo - * @ENG_START_DOX Related method: @ref DOX_IADLXGPUMetrics_GPUHotspotTemperature, @ref DOX_IADLXGPUMetrics_GPUTemperature. @ENG_END_DOX - * - * - *@copydoc IADLXGPUMetrics_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GPUIntakeTemperature (adlx_double* data) = 0; - }; - //---------------------------------------------------------------------------------------------- - typedef IADLXInterfacePtr_T IADLXGPUMetricsPtr; -} //namespace adlx -#else //__cplusplus -ADLX_DECLARE_IID (IADLXGPUMetrics, L"IADLXGPUMetrics") - -typedef struct IADLXGPUMetrics IADLXGPUMetrics; - -typedef struct IADLXGPUMetricsVtbl -{ - //IADLXInterface - adlx_long (ADLX_STD_CALL* Acquire)(IADLXGPUMetrics* pThis); - adlx_long (ADLX_STD_CALL* Release)(IADLXGPUMetrics* pThis); - ADLX_RESULT (ADLX_STD_CALL* QueryInterface)(IADLXGPUMetrics* pThis, const wchar_t* interfaceId, void** ppInterface); - - //IADLXGPUMetrics - ADLX_RESULT (ADLX_STD_CALL* TimeStamp)(IADLXGPUMetrics* pThis, adlx_int64* ms); - ADLX_RESULT (ADLX_STD_CALL* GPUUsage)(IADLXGPUMetrics* pThis, adlx_double* data); - ADLX_RESULT (ADLX_STD_CALL* GPUClockSpeed)(IADLXGPUMetrics* pThis, adlx_int* data); - ADLX_RESULT (ADLX_STD_CALL* GPUVRAMClockSpeed)(IADLXGPUMetrics* pThis, adlx_int* data); - ADLX_RESULT (ADLX_STD_CALL* GPUTemperature)(IADLXGPUMetrics* pThis, adlx_double* data); - ADLX_RESULT (ADLX_STD_CALL* GPUHotspotTemperature)(IADLXGPUMetrics* pThis, adlx_double* data); - ADLX_RESULT (ADLX_STD_CALL* GPUPower)(IADLXGPUMetrics* pThis, adlx_double* data); - ADLX_RESULT (ADLX_STD_CALL* GPUTotalBoardPower)(IADLXGPUMetrics* pThis, adlx_double* data); - ADLX_RESULT (ADLX_STD_CALL* GPUFanSpeed)(IADLXGPUMetrics* pThis, adlx_int* data); - ADLX_RESULT (ADLX_STD_CALL* GPUVRAM)(IADLXGPUMetrics* pThis, adlx_int* data); - ADLX_RESULT (ADLX_STD_CALL* GPUVoltage)(IADLXGPUMetrics* pThis, adlx_int* data); - ADLX_RESULT (ADLX_STD_CALL* GPUIntakeTemperature)(IADLXGPUMetrics* pThis, adlx_double* data); -} IADLXGPUMetricsVtbl; - -struct IADLXGPUMetrics { const IADLXGPUMetricsVtbl *pVtbl; }; -#endif //__cplusplus -#pragma endregion IADLXGPUMetrics - -#pragma region IADLXGPUMetricsList -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLXGPUMetricsList : public IADLXList - { - public: - ADLX_DECLARE_IID (L"IADLXGPUMetricsList") - //Lists must declare the type of items it holds - what was passed as ADLX_DECLARE_IID() in that interface - ADLX_DECLARE_ITEM_IID (IADLXGPUMetrics::IID ()) - - /** - * @page DOX_IADLXGPUMetricsList_At At - * @ENG_START_DOX - * @brief Returns the reference counted interface at the requested location. - * @ENG_END_DOX - * - * @syntax - * @codeStart - * @ref ADLX_RESULT At (const adlx_uint location, @ref DOX_IADLXGPUMetrics** ppItem) - * @codeEnd - * - * @params - * @paramrow{1.,[in] ,location,const adlx_uint ,@ENG_START_DOX The location of the requested interface. @ENG_END_DOX} - * @paramrow{2.,[out] ,ppItem,@ref DOX_IADLXGPUMetrics** ,@ENG_START_DOX The address of a pointer to the returned interface. If the interface is not successfully returned\, the method sets dereferenced address __*ppItem__ to __nullptr__. @ENG_END_DOX} - * - * @retvalues - * @ENG_START_DOX - * If the location is within the list bounds, __ADLX_OK__ is returned.
- * If the location is not within the list bounds, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. - * @ENG_END_DOX - * - * @detaileddesc - * @ENG_START_DOX - * @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. - * @ENG_END_DOX - * - * @addinfo - * @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 - * - * @copydoc IADLXGPUMetricsList_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL At (const adlx_uint location, IADLXGPUMetrics** ppItem) = 0; - - /** - *@page DOX_IADLXGPUMetricsList_Add_Back Add_Back - *@ENG_START_DOX @brief Adds an interface to the end of a list. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT Add_Back (@ref DOX_IADLXGPUMetrics* pItem) - *@codeEnd - * - *@params - *@paramrow{1.,[in] ,pItem,@ref DOX_IADLXGPUMetrics* ,@ENG_START_DOX The pointer to the interface to be added to the list. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the interface is added successfully to the end of the list, __ADLX_OK__ is returned.
- * If the interface is not added to the end of the list, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * - *@copydoc IADLXGPUMetricsList_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL Add_Back (IADLXGPUMetrics* pItem) = 0; - }; //IADLXGPUMetricsList - //---------------------------------------------------------------------------------------------- - typedef IADLXInterfacePtr_T IADLXGPUMetricsListPtr; -} //namespace adlx -#else //__cplusplus -ADLX_DECLARE_IID (IADLXGPUMetricsList, L"IADLXGPUMetricsList") -ADLX_DECLARE_ITEM_IID (IADLXGPUMetrics, IID_IADLXGPUMetrics ()) - -typedef struct IADLXGPUMetricsList IADLXGPUMetricsList; - -typedef struct IADLXGPUMetricsListVtbl -{ - //IADLXInterface - adlx_long (ADLX_STD_CALL *Acquire)(IADLXGPUMetricsList* pThis); - adlx_long (ADLX_STD_CALL *Release)(IADLXGPUMetricsList* pThis); - ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLXGPUMetricsList* pThis, const wchar_t* interfaceId, void** ppInterface); - - //IADLXList - adlx_uint (ADLX_STD_CALL *Size)(IADLXGPUMetricsList* pThis); - adlx_bool (ADLX_STD_CALL *Empty)(IADLXGPUMetricsList* pThis); - adlx_uint (ADLX_STD_CALL *Begin)(IADLXGPUMetricsList* pThis); - adlx_uint (ADLX_STD_CALL *End)(IADLXGPUMetricsList* pThis); - ADLX_RESULT (ADLX_STD_CALL *At)(IADLXGPUMetricsList* pThis, const adlx_uint location, IADLXInterface** ppItem); - ADLX_RESULT (ADLX_STD_CALL *Clear)(IADLXGPUMetricsList* pThis); - ADLX_RESULT (ADLX_STD_CALL *Remove_Back)(IADLXGPUMetricsList* pThis); - ADLX_RESULT (ADLX_STD_CALL *Add_Back)(IADLXGPUMetricsList* pThis, IADLXInterface* pItem); - - //IADLXGPUMetricsList - ADLX_RESULT (ADLX_STD_CALL *At_GPUMetricsList)(IADLXGPUMetricsList* pThis, const adlx_uint location, IADLXGPUMetrics** ppItem); - ADLX_RESULT (ADLX_STD_CALL *Add_Back_GPUMetricsList)(IADLXGPUMetricsList* pThis, IADLXGPUMetrics* pItem); - -}IADLXGPUMetricsListVtbl; - -struct IADLXGPUMetricsList { const IADLXGPUMetricsListVtbl *pVtbl; }; -#endif //__cplusplus -#pragma endregion IADLXGPUMetricsList - -#pragma region IADLXSystemMetrics -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLXSystemMetrics : public IADLXInterface - { - public: - ADLX_DECLARE_IID (L"IADLXSystemMetrics") - /** - *@page DOX_IADLXSystemMetrics_TimeStamp TimeStamp - *@ENG_START_DOX @brief Gets the timestamp of a system metric sample. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT TimeStamp (adlx_int64* ms) - *@codeEnd - * - *@params - *@paramrow{1.,[out] ,ms,adlx_int64* ,@ENG_START_DOX The pointer to a variable where the timestamp (in ms) is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the timestamp is successfully returned, __ADLX_OK__ is returned.
- * If the timestamp is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The timestamp is the duration (in ms) from the system epoch time to the time when the metric sample was acquired. @ENG_END_DOX - * - *@copydoc IADLXSystemMetrics_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL TimeStamp (adlx_int64* ms) = 0; - /** - *@page DOX_IADLXSystemMetrics_CPUUsage CPUUsage - *@ENG_START_DOX @brief Gets the CPU usage of a system metric sample. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT CPUUsage (adlx_double* data) - *@codeEnd - * - *@params - *@paramrow{1.,[out] ,data,adlx_double* ,@ENG_START_DOX The pointer to a variable where the CPU usage (in %) is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the CPU usage is successfully returned, __ADLX_OK__ is returned.
- * If the CPU usage is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * - *@copydoc IADLXSystemMetrics_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL CPUUsage (adlx_double* data) = 0; - /** - *@page DOX_IADLXSystemMetrics_SystemRAM SystemRAM - *@ENG_START_DOX @brief Gets the system RAM of a system metric sample. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SystemRAM (adlx_int* data) - *@codeEnd - * - *@params - *@paramrow{1.,[out] ,data,adlx_int* ,@ENG_START_DOX The pointer to a variable where the system RAM (in MB) is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the system RAM is successfully returned, __ADLX_OK__ is returned.
- * If the system RAM is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * - *@copydoc IADLXSystemMetrics_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SystemRAM (adlx_int* data) = 0; - /** - *@page DOX_IADLXSystemMetrics_SmartShift SmartShift - *@ENG_START_DOX @brief Gets the SmartShift value of a system metric sample. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SmartShift (adlx_int* data) - *@codeEnd - * - *@params - *@paramrow{1.,[out] ,data,adlx_int* ,@ENG_START_DOX The pointer to a variable where the SmartShift value is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the SmartShift value is successfully returned, __ADLX_OK__ is returned.
- * If the SmartShift value is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The value returned by SmartShift is an integer number which is within -100 to +100 range.
- * A negative value indicates that the power is shifted to the CPU.
- * A positive value indicates that the power is shifted to the GPU.
- * Considering zero as the state with no power shift, the larger the deviation from zero, the larger the power shift. @ENG_END_DOX - * - *@addinfo - *@ENG_START_DOX AMD SmartShift helps boost notebook performance by dynamically shifting the power between the CPU and the GPU depending on the workload. @ENG_END_DOX - * - *@copydoc IADLXSystemMetrics_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SmartShift (adlx_int* data) = 0; - }; - //---------------------------------------------------------------------------------------------- - typedef IADLXInterfacePtr_T IADLXSystemMetricsPtr; -} //namespace adlx -#else //__cplusplus -ADLX_DECLARE_IID (IADLXSystemMetrics, L"IADLXSystemMetrics") - -typedef struct IADLXSystemMetrics IADLXSystemMetrics; - -typedef struct IADLXSystemMetricsVtbl -{ - //IADLXInterface - adlx_long (ADLX_STD_CALL *Acquire)(IADLXSystemMetrics* pThis); - adlx_long (ADLX_STD_CALL *Release)(IADLXSystemMetrics* pThis); - ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLXSystemMetrics* pThis, const wchar_t* interfaceId, void** ppInterface); - - //IADLXSystemMetrics - ADLX_RESULT (ADLX_STD_CALL *TimeStamp)(IADLXSystemMetrics* pThis, adlx_int64* ms); - ADLX_RESULT (ADLX_STD_CALL *CPUUsage)(IADLXSystemMetrics* pThis, adlx_double* data); - ADLX_RESULT (ADLX_STD_CALL *SystemRAM)(IADLXSystemMetrics* pThis, adlx_int* data); - ADLX_RESULT (ADLX_STD_CALL *SmartShift)(IADLXSystemMetrics* pThis, adlx_int* data); -}IADLXSystemMetricsVtbl; - -struct IADLXSystemMetrics { const IADLXSystemMetricsVtbl *pVtbl; }; -#endif //__cplusplus -#pragma endregion IADLXSystemMetrics - -#pragma region IADLXSystemMetricsList -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLXSystemMetricsList : public IADLXList - { - public: - ADLX_DECLARE_IID (L"IADLXSystemMetricsList") - //Lists must declare the type of items it holds - what was passed as ADLX_DECLARE_IID() in that interface - ADLX_DECLARE_ITEM_IID (IADLXSystemMetrics::IID ()) - - /** - * @page DOX_IADLXSystemMetricsList_At At - * @ENG_START_DOX - * @brief Returns the reference counted interface at the requested location. - * @ENG_END_DOX - * - * @syntax - * @codeStart - * @ref ADLX_RESULT At (const adlx_uint location, @ref DOX_IADLXSystemMetrics** ppItem) - * @codeEnd - * - * @params - * @paramrow{1.,[in] ,location,const adlx_uint ,@ENG_START_DOX The location of the requested interface. @ENG_END_DOX} - * @paramrow{2.,[out] ,ppItem,@ref DOX_IADLXSystemMetrics** ,@ENG_START_DOX The address of a pointer to the returned interface. If the interface is not successfully returned\, the method sets dereferenced address __*ppItem__ to __nullptr__. @ENG_END_DOX} - * - * @retvalues - * @ENG_START_DOX - * If the location is within the list bounds, __ADLX_OK__ is returned.
- * If the location is not within the list bounds, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. - * @ENG_END_DOX - * - * @detaileddesc - * @ENG_START_DOX - * @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. - * @ENG_END_DOX - * - * @addinfo - * @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 - * - * @copydoc IADLXSystemMetricsList_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL At (const adlx_uint location, IADLXSystemMetrics** ppItem) = 0; - - /** - *@page DOX_IADLXSystemMetricsList_Add_Back Add_Back - *@ENG_START_DOX @brief Adds an interface to the end of a list. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT Add_Back (@ref DOX_IADLXSystemMetrics* pItem) - *@codeEnd - * - *@params - *@paramrow{1.,[in] ,pItem,@ref DOX_IADLXSystemMetrics* ,@ENG_START_DOX The pointer to the interface to be added to the list. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the interface is added successfully to the end of the list, __ADLX_OK__ is returned.
- * If the interface is not added to the end of the list, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * - *@copydoc IADLXSystemMetricsList_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL Add_Back (IADLXSystemMetrics* pItem) = 0; - }; //IADLXSystemMetricsList - //---------------------------------------------------------------------------------------------- - typedef IADLXInterfacePtr_T IADLXSystemMetricsListPtr; -} //namespace adlx -#else //__cplusplus -ADLX_DECLARE_IID (IADLXSystemMetricsList, L"IADLXSystemMetricsList") -ADLX_DECLARE_ITEM_IID (IADLXSystemMetrics, IID_IADLXSystemMetrics ()) - -typedef struct IADLXSystemMetricsList IADLXSystemMetricsList; - -typedef struct IADLXSystemMetricsListVtbl -{ - //IADLXInterface - adlx_long (ADLX_STD_CALL *Acquire)(IADLXSystemMetricsList* pThis); - adlx_long (ADLX_STD_CALL *Release)(IADLXSystemMetricsList* pThis); - ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLXSystemMetricsList* pThis, const wchar_t* interfaceId, void** ppInterface); - - //IADLXList - adlx_uint (ADLX_STD_CALL *Size)(IADLXSystemMetricsList* pThis); - adlx_bool (ADLX_STD_CALL *Empty)(IADLXSystemMetricsList* pThis); - adlx_uint (ADLX_STD_CALL *Begin)(IADLXSystemMetricsList* pThis); - adlx_uint (ADLX_STD_CALL *End)(IADLXSystemMetricsList* pThis); - ADLX_RESULT (ADLX_STD_CALL *At)(IADLXSystemMetricsList* pThis, const adlx_uint location, IADLXInterface** ppItem); - ADLX_RESULT (ADLX_STD_CALL *Clear)(IADLXSystemMetricsList* pThis); - ADLX_RESULT (ADLX_STD_CALL *Remove_Back)(IADLXSystemMetricsList* pThis); - ADLX_RESULT (ADLX_STD_CALL *Add_Back)(IADLXSystemMetricsList* pThis, IADLXInterface* pItem); - - //IADLXSystemMetricsList - ADLX_RESULT (ADLX_STD_CALL *At_SystemMetricsList)(IADLXSystemMetricsList* pThis, const adlx_uint location, IADLXSystemMetrics** ppItem); - ADLX_RESULT (ADLX_STD_CALL *Add_Back_SystemMetricsList)(IADLXSystemMetricsList* pThis, IADLXSystemMetrics* pItem); - -}IADLXSystemMetricsListVtbl; - -struct IADLXSystemMetricsList { const IADLXSystemMetricsListVtbl *pVtbl; }; -#endif //__cplusplus -#pragma endregion IADLXSystemMetricsList - -#pragma region IADLXFPS -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLXFPS : public IADLXInterface - { - public: - ADLX_DECLARE_IID (L"IADLXFPS") - /** - *@page DOX_IADLXFPS_TimeStamp TimeStamp - *@ENG_START_DOX @brief Gets the timestamp of an FPS metric sample. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT TimeStamp (adlx_int64* ms) - *@codeEnd - * - *@params - *@paramrow{1.,[out] ,ms,adlx_int64* ,@ENG_START_DOX The pointer to a variable where the timestamp (in ms) is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the timestamp is successfully returned, __ADLX_OK__ is returned.
- * If the timestamp is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The timestamp is the duration (in ms) from the system epoch time to the time when the metric sample was acquired. @ENG_END_DOX - * - *@copydoc IADLXFPS_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL TimeStamp (adlx_int64* ms) = 0; - /** - *@page DOX_IADLXFPS_FPS FPS - *@ENG_START_DOX @brief Gets the FPS when this metric set was acquired. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT FPS (adlx_int* data) - *@codeEnd - * - *@params - *@paramrow{1.,[out] ,data,adlx_int* ,@ENG_START_DOX The pointer to a variable where the FPS is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the FPS is successfully returned, __ADLX_OK__ is returned.
- * If the FPS is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * - *@copydoc IADLXFPS_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL FPS (adlx_int* data) = 0; - }; - //---------------------------------------------------------------------------------------------- - typedef IADLXInterfacePtr_T IADLXFPSPtr; -} //namespace adlx -#else //__cplusplus -ADLX_DECLARE_IID (IADLXFPS, L"IADLXFPS") - -typedef struct IADLXFPS IADLXFPS; - -typedef struct IADLXFPSVtbl -{ - //IADLXInterface - adlx_long (ADLX_STD_CALL *Acquire)(IADLXFPS* pThis); - adlx_long (ADLX_STD_CALL *Release)(IADLXFPS* pThis); - ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLXFPS* pThis, const wchar_t* interfaceId, void** ppInterface); - - //IADLXFPS - ADLX_RESULT (ADLX_STD_CALL *TimeStamp)(IADLXFPS* pThis, adlx_int64* ms); - ADLX_RESULT (ADLX_STD_CALL *FPS)(IADLXFPS* pThis, adlx_int* data); -}IADLXFPSVtbl; - -struct IADLXFPS { const IADLXFPSVtbl *pVtbl; }; -#endif //__cplusplus -#pragma endregion IADLXFPS - -#pragma region IADLXFPSList -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLXFPSList : public IADLXList - { - public: - ADLX_DECLARE_IID (L"IADLXFPSList") - //Lists must declare the type of items it holds - what was passed as ADLX_DECLARE_IID() in that interface - ADLX_DECLARE_ITEM_IID (IADLXFPS::IID ()) - - /** - * @page DOX_IADLXFPSList_At At - * @ENG_START_DOX - * @brief Returns the reference counted interface at the requested location. - * @ENG_END_DOX - * - * @syntax - * @codeStart - * @ref ADLX_RESULT At (const adlx_uint location, @ref DOX_IADLXFPS** ppItem) - * @codeEnd - * - * @params - * @paramrow{1.,[in] ,location,const adlx_uint ,@ENG_START_DOX The location of the requested interface. @ENG_END_DOX} - * @paramrow{2.,[out] ,ppItem,@ref DOX_IADLXFPS** ,@ENG_START_DOX The address of a pointer to the returned interface. If the interface is not successfully returned\, the method sets dereferenced address __*ppItem__ to __nullptr__. @ENG_END_DOX} - * - * @retvalues - * @ENG_START_DOX - * If the location is within the list bounds, __ADLX_OK__ is returned.
- * If the location is not within the list bounds, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. - * @ENG_END_DOX - * - * @detaileddesc - * @ENG_START_DOX - * @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. - * @ENG_END_DOX - * - * @addinfo - * @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 - * - * @copydoc IADLXFPSList_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL At (const adlx_uint location, IADLXFPS** ppItem) = 0; - - /** - *@page DOX_IADLXFPSList_Add_Back Add_Back - *@ENG_START_DOX @brief Adds an interface to the end of a list. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT Add_Back (@ref DOX_IADLXFPS* pItem) - *@codeEnd - * - *@params - *@paramrow{1.,[in] ,pItem,@ref DOX_IADLXFPS* ,@ENG_START_DOX The pointer to the interface to be added to the list. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the interface is added successfully to the end of the list, __ADLX_OK__ is returned.
- * If the interface is not added to the end of the list, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * - *@copydoc IADLXFPSList_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL Add_Back (IADLXFPS* pItem) = 0; - }; //IADLXFPSList - //---------------------------------------------------------------------------------------------- - typedef IADLXInterfacePtr_T IADLXFPSListPtr; -} //namespace adlx -#else //__cplusplus -ADLX_DECLARE_IID (IADLXFPSList, L"IADLXFPSList") -ADLX_DECLARE_ITEM_IID (IADLXFPS, IID_IADLXFPS ()) - -typedef struct IADLXFPSList IADLXFPSList; - -typedef struct IADLXFPSListVtbl -{ - //IADLXInterface - adlx_long (ADLX_STD_CALL *Acquire)(IADLXFPSList* pThis); - adlx_long (ADLX_STD_CALL *Release)(IADLXFPSList* pThis); - ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLXFPSList* pThis, const wchar_t* interfaceId, void** ppInterface); - - //IADLXList - adlx_uint (ADLX_STD_CALL *Size)(IADLXFPSList* pThis); - adlx_bool (ADLX_STD_CALL *Empty)(IADLXFPSList* pThis); - adlx_uint (ADLX_STD_CALL *Begin)(IADLXFPSList* pThis); - adlx_uint (ADLX_STD_CALL *End)(IADLXFPSList* pThis); - ADLX_RESULT (ADLX_STD_CALL *At)(IADLXFPSList* pThis, const adlx_uint location, IADLXInterface** ppItem); - ADLX_RESULT (ADLX_STD_CALL *Clear)(IADLXFPSList* pThis); - ADLX_RESULT (ADLX_STD_CALL *Remove_Back)(IADLXFPSList* pThis); - ADLX_RESULT (ADLX_STD_CALL *Add_Back)(IADLXFPSList* pThis, IADLXInterface* pItem); - - //IADLXFPSList - ADLX_RESULT (ADLX_STD_CALL *At_FPSList)(IADLXFPSList* pThis, const adlx_uint location, IADLXFPS** ppItem); - ADLX_RESULT (ADLX_STD_CALL *Add_Back_FPSList)(IADLXFPSList* pThis, IADLXFPS* pItem); - -}IADLXFPSListVtbl; - -struct IADLXFPSList { const IADLXFPSListVtbl *pVtbl; }; -#endif //__cplusplus -#pragma endregion IADLXFPSList - -#pragma region IADLXAllMetrics -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLXGPU; - class ADLX_NO_VTABLE IADLXAllMetrics : public IADLXInterface - { - public: - ADLX_DECLARE_IID (L"IADLXAllMetrics") - /** - *@page DOX_IADLXAllMetrics_TimeStamp TimeStamp - *@ENG_START_DOX @brief Gets the timestamp of a metric sample. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT TimeStamp (adlx_int64* ms) - *@codeEnd - * - *@params - *@paramrow{1.,[out] ,ms,adlx_int64* ,@ENG_START_DOX The pointer to a variable where the timestamp (in ms) is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the timestamp is successfully returned, __ADLX_OK__ is returned.
- * If the timestamp is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The timestamp is the duration (in ms) from the system epoch time to the time when the metric sample was acquired. @ENG_END_DOX - * - *@copydoc IADLXAllMetrics_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL TimeStamp (adlx_int64* ms) = 0; - /** - *@page DOX_IADLXAllMetrics_GetSystemMetrics GetSystemMetrics - *@ENG_START_DOX @brief Gets the reference counted system metrics interface of a metric sample. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetSystemMetrics (@ref DOX_IADLXSystemMetrics** ppSystemMetrics) - *@codeEnd - * - *@params - * @paramrow{1.,[out] ,ppSystemMetrics,@ref DOX_IADLXSystemMetrics** ,@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 __*ppSystemMetrics__ to __nullptr__. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the interface is successfully returned, __ADLX_OK__ is returned.
- * If the interface is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX - * - *@addinfo - *@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 - * - *@copydoc IADLXAllMetrics_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetSystemMetrics (IADLXSystemMetrics** ppSystemMetrics) = 0; - /** - *@page DOX_IADLXAllMetrics_GetFPS GetFPS - *@ENG_START_DOX @brief Gets the reference counted FPS metrics interface of a metric sample. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetFPS (@ref DOX_IADLXFPS** ppFPS) - *@codeEnd - * - *@params - * @paramrow{1.,[out] ,ppFPS,@ref DOX_IADLXFPS** ,@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 __*ppFPS__ to __nullptr__. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the interface is successfully returned, __ADLX_OK__ is returned.
- * If the interface is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX - * - *@addinfo - *@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 - * - *@copydoc IADLXAllMetrics_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetFPS (IADLXFPS** ppFPS) = 0; - /** - *@page DOX_IADLXAllMetrics_GetGPUMetrics GetGPUMetrics - *@ENG_START_DOX @brief Gets the reference counted GPU metrics interface of a metric sample. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetGPUMetrics (@ref DOX_IADLXGPU* pGPU, @ref DOX_IADLXGPUMetrics** ppGPUMetrics) - *@codeEnd - * - *@params - * @paramrow{1.,[in] ,pGPU,@ref DOX_IADLXGPU* ,@ENG_START_DOX The pointer to a variable where IADLXGPU interface is returned. @ENG_END_DOX} - * @paramrow{2.,[out] ,ppGPUMetrics,@ref DOX_IADLXGPUMetrics** ,@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 __*ppGPUMetrics__ to __nullptr__. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the interface is successfully returned, __ADLX_OK__ is returned.
- * If the interface is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX - * - *@addinfo - *@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 - * - *@copydoc IADLXAllMetrics_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetGPUMetrics (IADLXGPU* pGPU, IADLXGPUMetrics** ppGPUMetrics) = 0; - }; - //---------------------------------------------------------------------------------------------- - typedef IADLXInterfacePtr_T IADLXAllMetricsPtr; -} //namespace adlx -#else //__cplusplus -ADLX_DECLARE_IID (IADLXAllMetrics, L"IADLXAllMetrics") - -typedef struct IADLXAllMetrics IADLXAllMetrics; - -typedef struct IADLXAllMetricsVtbl -{ - //IADLXInterface - adlx_long (ADLX_STD_CALL *Acquire)(IADLXAllMetrics* pThis); - adlx_long (ADLX_STD_CALL *Release)(IADLXAllMetrics* pThis); - ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLXAllMetrics* pThis, const wchar_t* interfaceId, void** ppInterface); - - //IADLXAllMetrics - ADLX_RESULT (ADLX_STD_CALL *TimeStamp)(IADLXAllMetrics* pThis, adlx_int64* ms); - ADLX_RESULT (ADLX_STD_CALL *GetSystemMetrics)(IADLXAllMetrics* pThis, IADLXSystemMetrics** metrics); - ADLX_RESULT (ADLX_STD_CALL *GetFPS)(IADLXAllMetrics* pThis, IADLXFPS** metrics); - ADLX_RESULT (ADLX_STD_CALL *GetGPUMetrics)(IADLXAllMetrics* pThis, IADLXGPU* pGPU, IADLXGPUMetrics** metrics); -}IADLXAllMetricsVtbl; - -struct IADLXAllMetrics { const IADLXAllMetricsVtbl *pVtbl; }; -#endif //__cplusplus -#pragma endregion IADLXAllMetrics - -#pragma region IADLXAllMetricsList -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLXAllMetricsList : public IADLXList - { - public: - ADLX_DECLARE_IID (L"IADLXAllMetricsList") - //Lists must declare the type of items it holds - what was passed as ADLX_DECLARE_IID() in that interface - ADLX_DECLARE_ITEM_IID (IADLXAllMetrics::IID ()) - - /** - * @page DOX_IADLXAllMetricsList_At At - * @ENG_START_DOX - * @brief Returns the reference counted interface at the requested location. - * @ENG_END_DOX - * - * @syntax - * @codeStart - * @ref ADLX_RESULT At (const adlx_uint location, @ref DOX_IADLXAllMetrics** ppItem) - * @codeEnd - * - * @params - * @paramrow{1.,[in] ,location,const adlx_uint ,@ENG_START_DOX The location of the requested interface. @ENG_END_DOX} - * @paramrow{2.,[out] ,ppItem,@ref DOX_IADLXAllMetrics** ,@ENG_START_DOX The address of a pointer to the returned interface. If the interface is not successfully returned\, the method sets dereferenced address __*ppItem__ to __nullptr__. @ENG_END_DOX} - * - * @retvalues - * @ENG_START_DOX - * If the location is within the list bounds, __ADLX_OK__ is returned.
- * If the location is not within the list bounds, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. - * @ENG_END_DOX - * - * @detaileddesc - * @ENG_START_DOX - * @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. - * @ENG_END_DOX - * - * @addinfo - * @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 - * - * @copydoc IADLXAllMetricsList_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL At (const adlx_uint location, IADLXAllMetrics** ppItem) = 0; - - /** - *@page DOX_IADLXAllMetricsList_Add_Back Add_Back - *@ENG_START_DOX @brief Adds an interface to the end of a list. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT Add_Back (@ref DOX_IADLXAllMetrics* pItem) - *@codeEnd - * - *@params - *@paramrow{1.,[in] ,pItem,@ref DOX_IADLXAllMetrics* ,@ENG_START_DOX The pointer to the interface to be added to the list. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the interface is added successfully to the end of the list, __ADLX_OK__ is returned.
- * If the interface is not added to the end of the list, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details @ENG_END_DOX - * - *@copydoc IADLXAllMetricsList_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL Add_Back (IADLXAllMetrics* pItem) = 0; - }; //IADLXAllMetricsList - //---------------------------------------------------------------------------------------------- - typedef IADLXInterfacePtr_T IADLXAllMetricsListPtr; -} //namespace adlx -#else //__cplusplus -ADLX_DECLARE_IID (IADLXAllMetricsList, L"IADLXAllMetricsList") -ADLX_DECLARE_ITEM_IID (IADLXAllMetrics, IID_IADLXAllMetrics ()) - -typedef struct IADLXAllMetricsList IADLXAllMetricsList; - -typedef struct IADLXAllMetricsListVtbl -{ - //IADLXInterface - adlx_long (ADLX_STD_CALL *Acquire)(IADLXAllMetricsList* pThis); - adlx_long (ADLX_STD_CALL *Release)(IADLXAllMetricsList* pThis); - ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLXAllMetricsList* pThis, const wchar_t* interfaceId, void** ppInterface); - - //IADLXList - adlx_uint (ADLX_STD_CALL *Size)(IADLXAllMetricsList* pThis); - adlx_bool (ADLX_STD_CALL *Empty)(IADLXAllMetricsList* pThis); - adlx_uint (ADLX_STD_CALL *Begin)(IADLXAllMetricsList* pThis); - adlx_uint (ADLX_STD_CALL *End)(IADLXAllMetricsList* pThis); - ADLX_RESULT (ADLX_STD_CALL *At)(IADLXAllMetricsList* pThis, const adlx_uint location, IADLXInterface** ppItem); - ADLX_RESULT (ADLX_STD_CALL *Clear)(IADLXAllMetricsList* pThis); - ADLX_RESULT (ADLX_STD_CALL *Remove_Back)(IADLXAllMetricsList* pThis); - ADLX_RESULT (ADLX_STD_CALL *Add_Back)(IADLXAllMetricsList* pThis, IADLXInterface* pItem); - - //IADLXAllMetricsList - ADLX_RESULT (ADLX_STD_CALL *At_AllMetricsList)(IADLXAllMetricsList* pThis, const adlx_uint location, IADLXAllMetrics** ppItem); - ADLX_RESULT (ADLX_STD_CALL *Add_Back_AllMetricsList)(IADLXAllMetricsList* pThis, IADLXAllMetrics* pItem); - -}IADLXAllMetricsListVtbl; - -struct IADLXAllMetricsList { const IADLXAllMetricsListVtbl *pVtbl; }; -#endif //__cplusplus -#pragma endregion IADLXAllMetricsList - -#pragma region IADLXPerformanceMonitoringServices -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLXPerformanceMonitoringServices : public IADLXInterface - { - public: - ADLX_DECLARE_IID(L"IADLXPerformanceMonitoringServices") - /** - *@page DOX_IADLXPerformanceMonitoringServices_GetSamplingIntervalRange GetSamplingIntervalRange - *@ENG_START_DOX @brief Gets the maximum sampling interval, minimum sampling interval, and step sampling interval for the performance monitoring. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetSamplingIntervalRange (@ref ADLX_IntRange* range) - *@codeEnd - * - *@params - * @paramrow{1.,[out],range,@ref ADLX_IntRange*,@ENG_START_DOX The pointer to a variable where the sampling interval range (in millisecond) is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the sampling interval range is successfully returned, __ADLX_OK__ is returned.
- * If the sampling interval range is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The maximum sampling interval, minimum sampling interval, and step sampling interval are read only. @ENG_END_DOX - * - * - *@copydoc IADLXPerformanceMonitoringServices_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetSamplingIntervalRange (ADLX_IntRange* range) = 0; - /** - *@page DOX_IADLXPerformanceMonitoringServices_SetSamplingInterval SetSamplingInterval - *@ENG_START_DOX @brief Sets the sampling interval for the performance monitoring. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetSamplingInterval (adlx_int intervalMs) - *@codeEnd - * - *@params - *@paramrow{1.,[in] ,intervalMs,adlx_int ,@ENG_START_DOX The sampling interval (in millisecond). @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the sampling interval is successfully set, __ADLX_OK__ is returned.
- * If the sampling interval is not successfully set, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The sampling interval is the time gap between two samples. - * Obtain the sampling interval range with @ref DOX_IADLXPerformanceMonitoringServices_GetSamplingIntervalRange. The default sampling interval is 1000 ms. - * @ENG_END_DOX - * - *@copydoc IADLXPerformanceMonitoringServices_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetSamplingInterval (adlx_int askedIntervalMs) = 0; - /** - *@page DOX_IADLXPerformanceMonitoringServices_GetSamplingInterval GetSamplingInterval - *@ENG_START_DOX @brief Gets the sampling interval for performance monitoring. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetSamplingInterval (adlx_int* intervalMs) - *@codeEnd - * - *@params - *@paramrow{1.,[out] ,intervalMs,adlx_int* ,@ENG_START_DOX The pointer to a variable where the sampling interval (in millisecond) is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the sampling interval is successfully returned, __ADLX_OK__ is returned.
- * If the sampling interval is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The sampling interval is the time gap between two samples. - * Obtain the sampling interval range with @ref DOX_IADLXPerformanceMonitoringServices_GetSamplingIntervalRange. The default sampling interval is 1000 ms. - * @ENG_END_DOX - * - *@copydoc IADLXPerformanceMonitoringServices_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetSamplingInterval (adlx_int* intervalMs) = 0; - /** - *@page DOX_IADLXPerformanceMonitoringServices_GetMaxPerformanceMetricsHistorySizeRange GetMaxPerformanceMetricsHistorySizeRange - *@ENG_START_DOX @brief Gets the maximum size, minimum size, and step size for the performance monitoring buffer. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetMaxPerformanceMetricsHistorySizeRange (@ref ADLX_IntRange* range) - *@codeEnd - * - *@params - * @paramrow{1.,[out],range,@ref ADLX_IntRange*,@ENG_START_DOX The pointer to a variable where the buffer size range (in second) is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the buffer size range is successfully returned, __ADLX_OK__ is returned.
- * If the buffer size range is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The maximum buffer size, minimum buffer size, and step buffer size are read only. @ENG_END_DOX - * - * - *@copydoc IADLXPerformanceMonitoringServices_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetMaxPerformanceMetricsHistorySizeRange (ADLX_IntRange* range) = 0; - /** - *@page DOX_IADLXPerformanceMonitoringServices_SetMaxPerformanceMetricsHistorySize SetMaxPerformanceMetricsHistorySize - *@ENG_START_DOX @brief Sets the duration of the performance monitoring buffer. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetMaxPerformanceMetricsHistorySize (adlx_int sizeSec) - *@codeEnd - * - *@params - *@paramrow{1.,[in] ,sizeSec,adlx_int ,@ENG_START_DOX The buffer duration (in second). @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the buffer duration is successfully set, __ADLX_OK__ is returned.
- * If the buffer duration is not successfully set, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details Obtain the buffer duration range with @ref DOX_IADLXPerformanceMonitoringServices_GetMaxPerformanceMetricsHistorySizeRange. - * The default buffer duration is 100 s. If the monitoring continues longer than the buffer duration, the old performance samples are discarded to give buffer space to the latest samples. - * @ENG_END_DOX - * - *@copydoc IADLXPerformanceMonitoringServices_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetMaxPerformanceMetricsHistorySize (adlx_int sizeSec) = 0; - /** - *@page DOX_IADLXPerformanceMonitoringServices_GetMaxPerformanceMetricsHistorySize GetMaxPerformanceMetricsHistorySize - *@ENG_START_DOX @brief Gets the duration of the performance monitoring buffer. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetMaxPerformanceMetricsHistorySize (adlx_int* sizeSec) - *@codeEnd - * - *@params - *@paramrow{1.,[out] ,sizeSec,adlx_int* ,@ENG_START_DOX The pointer to a variable where the buffer duration (in second) is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the buffer duration is successfully returned, __ADLX_OK__ is returned.
- * If the buffer duration is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details Obtain the buffer duration range with @ref DOX_IADLXPerformanceMonitoringServices_GetMaxPerformanceMetricsHistorySizeRange. - * The default buffer duration is 100 s. If the monitoring continues longer than the buffer duration, the old performance samples are discarded to give buffer space to the latest samples. - * @ENG_END_DOX - * - *@copydoc IADLXPerformanceMonitoringServices_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetMaxPerformanceMetricsHistorySize (adlx_int* sizeSec) = 0; - /** - *@page DOX_IADLXPerformanceMonitoringServices_ClearPerformanceMetricsHistory ClearPerformanceMetricsHistory - *@ENG_START_DOX @brief Clears the buffer for performance monitoring. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT ClearPerformanceMetricsHistory () - *@codeEnd - * - *@params - * N/A - * - *@retvalues - *@ENG_START_DOX If the buffer of performance monitoring is successfully cleared, __ADLX_OK__ is returned.
- * If the buffer of performance monitoring is not successfully cleared, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - * - *@copydoc IADLXPerformanceMonitoringServices_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL ClearPerformanceMetricsHistory () = 0; - /** - *@page DOX_IADLXPerformanceMonitoringServices_GetCurrentPerformanceMetricsHistorySize GetCurrentPerformanceMetricsHistorySize - *@ENG_START_DOX @brief Gets the duration of the metrics history from the performance monitoring buffer. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetCurrentPerformanceMetricsHistorySize (adlx_int* sizeSec) - *@codeEnd - * - *@params - *@paramrow{1.,[out] ,sizeSec,adlx_int* ,@ENG_START_DOX The pointer to a variable where the duration (in second) is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the duration is successfully returned, __ADLX_OK__ is returned.
- * If the duration is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The buffer duration ranges between 50 s and 100 s. The default size is 100 s. - * If the monitoring continues longer than the buffer duration, the old performance samples are discarded to give buffer space to the new samples. @ENG_END_DOX - * - *@copydoc IADLXPerformanceMonitoringServices_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetCurrentPerformanceMetricsHistorySize (adlx_int* sizeSec) = 0; - /** - *@page DOX_IADLXPerformanceMonitoringServices_StartPerformanceMetricsTracking StartPerformanceMetricsTracking - *@ENG_START_DOX @brief Increases the count for the performance metrics tracking. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT StartPerformanceMetricsTracking () - *@codeEnd - * - *@params - * N/A - * - *@retvalues - *@ENG_START_DOX If the count is successfully increased, __ADLX_OK__ is returned.
- * If the count is not successfully increased, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details ADLX reserves one buffer for the performance data. A count is used to keep a track of the calls to the __StartPerformanceMetricsTracking__. The count is increased by one every time the tracking starts.
- * By default, the count is zero. The monitoring starts when the first call is made and the count increases by one.
- * If the monitoring continues longer than the buffer duration, the old performance samples are discarded to give buffer space to the new samples. - * @ENG_END_DOX - * - *@copydoc IADLXPerformanceMonitoringServices_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL StartPerformanceMetricsTracking () = 0; - /** - *@page DOX_IADLXPerformanceMonitoringServices_StopPerformanceMetricsTracking StopPerformanceMetricsTracking - *@ENG_START_DOX @brief Decreases the count for the performance metrics tracking. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT StopPerformanceMetricsTracking () - *@codeEnd - * - *@params - * N/A - * - *@retvalues - *@ENG_START_DOX If the count is successfully decreased, __ADLX_OK__ is returned.
- * If the count is not successfully decreased, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes @ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details ADLX reserves one buffer for the performance data. A count is used to keep a track of the calls to the __StopPerformanceMetricsTracking__.
- * When the __StopPerformanceMetricsTracking__ is called, the count is decreased by one. When the count reaches zero, the monitoring stops.
- * If the monitoring continues longer than the buffer duration, the old performance samples are discarded to give buffer space to the new samples. - * @ENG_END_DOX - * - *@copydoc IADLXPerformanceMonitoringServices_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL StopPerformanceMetricsTracking () = 0; - /** - *@page DOX_IADLXPerformanceMonitoringServices_GetAllMetricsHistory GetAllMetricsHistory - *@ENG_START_DOX @brief Gets the reference counted list of all the metrics in a time interval. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetAllMetricsHistory (adlx_int startMs, adlx_int stopMs, @ref DOX_IADLXAllMetricsList** ppMetricsList) - *@codeEnd - * - *@params - * @paramrow{1.,[in] ,startMs,adlx_int ,@ENG_START_DOX The start time of the time interval (in millisecond). @ENG_END_DOX} - * @paramrow{1.,[in] ,stopMs,adlx_int ,@ENG_START_DOX The stop time of the time interval (in millisecond). @ENG_END_DOX} - * @paramrow{1.,[out] ,ppMetricsList,@ref DOX_IADLXAllMetricsList** ,@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 __*ppMetricsList__ to __nullptr__. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the interface is successfully returned, __ADLX_OK__ is returned.
- * If the interface is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details Use the __startMs__ and __stopMs__ to specify the time intervals for fetching the history. - * - To get the reference counted list of the latest performance metric samples from the performance monitoring buffer, specify both the __startMs__ and __stopMs__ as zero.
- * - To get the reference counted list of the performance metric samples from A ms ago to the present time, specify __startMs__ as A ms and __stopMs__ as zero.
- * - To get the reference counted list of the performance metric samples from A ms ago to B ms ago, specify __startMs__ as A ms and __stopMs__ as B ms.
- * - * The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed.
- * @ENG_END_DOX - * - *@addinfo - *@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 - * - *@copydoc IADLXPerformanceMonitoringServices_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetAllMetricsHistory (adlx_int startMs, adlx_int stopMs, IADLXAllMetricsList** ppMetricsList) = 0; - /** - *@page DOX_IADLXPerformanceMonitoringServices_GetGPUMetricsHistory GetGPUMetricsHistory - *@ENG_START_DOX @brief Gets the reference counted list of GPU metrics in a time interval of a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetGPUMetricsHistory (@ref DOX_IADLXGPU* pGPU, adlx_int startMs, adlx_int stopMs, @ref DOX_IADLXGPUMetricsList** ppMetricsList) - *@codeEnd - * - *@params - * @paramrow{1.,[in] ,pGPU,@ref DOX_IADLXGPU* ,@ENG_START_DOX The pointer to the GPU interface. @ENG_END_DOX} - * @paramrow{2.,[in] ,startMs,adlx_int ,@ENG_START_DOX The start time of the time interval (in millisecond). @ENG_END_DOX} - * @paramrow{3.,[in] ,stopMs,adlx_int ,@ENG_START_DOX The stop time of the time interval (in millisecond). @ENG_END_DOX} - * @paramrow{4.,[out] ,ppMetricsList,@ref DOX_IADLXGPUMetricsList** ,@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 __*ppMetricsList__ to __nullptr__. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the interface is successfully returned, __ADLX_OK__ is returned.
- * If the interface is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details Use the __startMs__ and __stopMs__ to specify the time intervals for fetching the history. - * - To get the reference counted list of the latest performance metric samples from the performance monitoring buffer, specify both the __startMs__ and __stopMs__ as zero.
- * - To get the reference counted list of the performance metric samples from A ms ago to the present time, specify __startMs__ as A ms and __stopMs__ as zero.
- * - To get the reference counted list of the performance metric samples from A ms ago to B ms ago, specify __startMs__ as A ms and __stopMs__ as B ms.
- * - * The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed.
- * @ENG_END_DOX - * - *@addinfo - *@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 - * - *@copydoc IADLXPerformanceMonitoringServices_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetGPUMetricsHistory (IADLXGPU* pGPU, adlx_int startMs, adlx_int stopMs, IADLXGPUMetricsList** ppMetricsList) = 0; - /** - *@page DOX_IADLXPerformanceMonitoringServices_GetSystemMetricsHistory GetSystemMetricsHistory - *@ENG_START_DOX @brief Gets the reference counted list of system metrics in a time interval. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetSystemMetricsHistory (adlx_int startMs, adlx_int stopMs, @ref DOX_IADLXSystemMetricsList** ppMetricsList) - *@codeEnd - * - *@params - * @paramrow{1.,[in] ,startMs,adlx_int ,@ENG_START_DOX The start time of the time interval (in millisecond). @ENG_END_DOX} - * @paramrow{2.,[in] ,stopMs,adlx_int ,@ENG_START_DOX The stop time of the time interval (in millisecond). @ENG_END_DOX} - * @paramrow{3.,[out] ,ppMetricsList,@ref DOX_IADLXSystemMetricsList** ,@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 __*ppMetricsList__ to __nullptr__. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the interface is successfully returned, __ADLX_OK__ is returned.
- * If the interface is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details Use the __startMs__ and __stopMs__ to specify the time intervals for fetching the history. - * - To get the reference counted list of the latest performance metric samples from the performance monitoring buffer, specify both the __startMs__ and __stopMs__ as zero.
- * - To get the reference counted list of the performance metric samples from A ms ago to the present time, specify __startMs__ as A ms and __stopMs__ as zero.
- * - To get the reference counted list of the performance metric samples from A ms ago to B ms ago, specify __startMs__ as A ms and __stopMs__ as B ms.
- * - * The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed.
- * @ENG_END_DOX - * - *@addinfo - *@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 - * - *@copydoc IADLXPerformanceMonitoringServices_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetSystemMetricsHistory (adlx_int startMs, adlx_int stopMs, IADLXSystemMetricsList** ppMetricsList) = 0; - /** - *@page DOX_IADLXPerformanceMonitoringServices_GetFPSHistory GetFPSHistory - *@ENG_START_DOX @brief Gets the reference counted list of FPS metrics in a time interval. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetFPSHistory (adlx_int startMs, adlx_int stopMs, @ref DOX_IADLXFPSList** ppMetricsList) - *@codeEnd - * - *@params - * @paramrow{1.,[in] ,startMs,adlx_int ,@ENG_START_DOX The start time of the time interval (in millisecond). @ENG_END_DOX} - * @paramrow{2.,[in] ,stopMs,adlx_int ,@ENG_START_DOX The stop time of the time interval (in millisecond). @ENG_END_DOX} - * @paramrow{3.,[out] ,ppMetricsList,@ref DOX_IADLXFPSList** ,@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 __*ppMetricsList__ to __nullptr__. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the interface is successfully returned, __ADLX_OK__ is returned.
- * If the interface is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details Use the __startMs__ and __stopMs__ to specify the time intervals for fetching the history. - * - To get the reference counted list of the latest performance metric samples from the performance monitoring buffer, specify both the __startMs__ and __stopMs__ as zero.
- * - To get the reference counted list of the performance metric samples from A ms ago to the present time, specify __startMs__ as A ms and __stopMs__ as zero.
- * - To get the reference counted list of the performance metric samples from A ms ago to B ms ago, specify __startMs__ as A ms and __stopMs__ as B ms.
- * - * The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed.
- * @ENG_END_DOX - * - *@addinfo - *@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.
- * __Note:__ The FPS metric is only available while a 3D graphics application or game runs in exclusive full screen mode. - * @ENG_END_DOX - * - *@copydoc IADLXPerformanceMonitoringServices_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetFPSHistory (adlx_int startMs, adlx_int stopMs, IADLXFPSList** ppMetricsList) = 0; - /** - *@page DOX_IADLXPerformanceMonitoringServices_GetCurrentAllMetrics GetCurrentAllMetrics - *@ENG_START_DOX @brief Gets the reference counted @ref DOX_IADLXAllMetrics interface for the current metric set. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetCurrentAllMetrics (@ref DOX_IADLXAllMetrics** ppMetrics) - *@codeEnd - * - *@params - *@paramrow{1.,[out] ,ppMetrics,@ref DOX_IADLXAllMetrics** ,@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 __*ppMetrics__ to __nullptr__. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the interface is successfully returned, __ADLX_OK__ is returned.
- * If the current interface is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. - * It takes some time and is suitable for a single acquisition. For continuous collection, it is recommended to use @ref DOX_IADLXPerformanceMonitoringServices_GetAllMetricsHistory. - * @ENG_END_DOX - * - *@addinfo - *@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 - * - *@copydoc IADLXPerformanceMonitoringServices_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetCurrentAllMetrics (IADLXAllMetrics** ppMetrics) = 0; - /** - *@page DOX_IADLXPerformanceMonitoringServices_GetCurrentGPUMetrics GetCurrentGPUMetrics - *@ENG_START_DOX @brief Gets the reference counted @ref DOX_IADLXGPUMetrics interface for the current metric set of a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetCurrentGPUMetrics (@ref DOX_IADLXGPU* pGPU, @ref DOX_IADLXGPUMetrics** ppMetrics) - *@codeEnd - * - *@params - * @paramrow{1.,[in] ,pGPU,@ref DOX_IADLXGPU* ,@ENG_START_DOX The pointer to the GPU interface. @ENG_END_DOX} - * @paramrow{2.,[out] ,ppMetrics,@ref DOX_IADLXGPUMetrics** ,@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 __*ppMetrics__ to __nullptr__. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the interface is successfully returned, __ADLX_OK__ is returned.
- * If the interface is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. - * It takes some time and is suitable for a single acquisition. For continuous collection, it is recommended to use @ref DOX_IADLXPerformanceMonitoringServices_GetGPUMetricsHistory. - * @ENG_END_DOX - * - *@addinfo - *@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 - * - *@copydoc IADLXPerformanceMonitoringServices_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetCurrentGPUMetrics (IADLXGPU* pGPU, IADLXGPUMetrics** ppMetrics) = 0; - /** - *@page DOX_IADLXPerformanceMonitoringServices_GetCurrentSystemMetrics GetCurrentSystemMetrics - *@ENG_START_DOX @brief Gets the reference counted @ref DOX_IADLXSystemMetrics interface for the current metric set. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetCurrentSystemMetrics (@ref DOX_IADLXSystemMetrics** ppMetrics) - *@codeEnd - * - *@params - *@paramrow{1.,[out] ,ppMetrics,@ref DOX_IADLXSystemMetrics** ,@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 __*ppMetrics__ to __nullptr__. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the interface is successfully returned, __ADLX_OK__ is returned.
- * If the interface is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. - * It takes some time and is suitable for a single acquisition. For continuous collection, it is recommended to use @ref DOX_IADLXPerformanceMonitoringServices_GetSystemMetricsHistory. - * @ENG_END_DOX - * - *@addinfo - *@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 - * - *@copydoc IADLXPerformanceMonitoringServices_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetCurrentSystemMetrics (IADLXSystemMetrics** ppMetrics) = 0; - /** - *@page DOX_IADLXPerformanceMonitoringServices_GetCurrentFPS GetCurrentFPS - *@ENG_START_DOX @brief Gets the reference counted @ref DOX_IADLXFPS interface for the current FPS metric. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetCurrentFPS (@ref DOX_IADLXFPS** ppMetrics) - *@codeEnd - * - *@params - *@paramrow{1.,[out] ,ppMetrics,@ref DOX_IADLXFPS** ,@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 __*ppMetrics__ to __nullptr__. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the interface is successfully returned, __ADLX_OK__ is returned.
- * If the interface is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. - * It takes some time and is suitable for a single acquisition. For continuous collection, it is recommended to use @ref DOX_IADLXPerformanceMonitoringServices_GetFPSHistory. - * @ENG_END_DOX - * - *@addinfo - *@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.
- * __Note:__ The FPS metric is only available while a 3D graphics application or game runs in exclusive full screen mode. - * @ENG_END_DOX - * - *@copydoc IADLXPerformanceMonitoringServices_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetCurrentFPS (IADLXFPS** ppMetrics) = 0; - /** - *@page DOX_IADLXPerformanceMonitoringServices_GetSupportedGPUMetrics GetSupportedGPUMetrics - *@ENG_START_DOX @brief Gets the reference counted interface for discovering what performance metrics are supported on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetSupportedGPUMetrics (@ref DOX_IADLXGPU* pGPU, @ref DOX_IADLXGPUMetricsSupport** ppMetricsSupported) - *@codeEnd - * - *@params - * @paramrow{1.,[in] ,pGPU,@ref DOX_IADLXGPU* ,@ENG_START_DOX The pointer to the GPU interface. @ENG_END_DOX} - * @paramrow{2.,[out] ,ppMetricsSupported,@ref DOX_IADLXGPUMetricsSupport** ,@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 __*ppMetricsSupported__ to __nullptr__. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the interface is successfully returned, __ADLX_OK__ is returned.
- * If the interface is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. - * @ENG_END_DOX - * - *@addinfo - *@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 - * - *@copydoc IADLXPerformanceMonitoringServices_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetSupportedGPUMetrics (IADLXGPU* pGPU, IADLXGPUMetricsSupport** ppMetricsSupported) = 0; - /** - *@page DOX_IADLXPerformanceMonitoringServices_GetSupportedSystemMetrics GetSupportedSystemMetrics - *@ENG_START_DOX @brief Gets the reference counted interface for discovering what performance metrics are supported on the system. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetSupportedSystemMetrics (@ref DOX_IADLXSystemMetricsSupport** ppMetricsSupported) - *@codeEnd - * - *@params - *@paramrow{1.,[out] ,ppMetricsSupported,@ref DOX_IADLXSystemMetricsSupport** ,@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 __*ppMetricsSupported__ to __nullptr__. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the interface is successfully returned, __ADLX_OK__ is returned.
- * If the interface is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. - * @ENG_END_DOX - * - *@addinfo - *@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 - * - *@copydoc IADLXPerformanceMonitoringServices_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetSupportedSystemMetrics (IADLXSystemMetricsSupport** ppMetricsSupported) = 0; - - }; //IADLXPerformanceMonitoringServices - //---------------------------------------------------------------------------------------------- - typedef IADLXInterfacePtr_T IADLXPerformanceMonitoringServicesPtr; -} //namespace adlx -#else //__cplusplus -ADLX_DECLARE_IID (IADLXPerformanceMonitoringServices, L"IADLXPerformanceMonitoringServices") -typedef struct IADLXPerformanceMonitoringServices IADLXPerformanceMonitoringServices; - -typedef struct IADLXPerformanceMonitoringServicesVtbl -{ - //IADLXInterface - adlx_long (ADLX_STD_CALL *Acquire)(IADLXPerformanceMonitoringServices* pThis); - adlx_long (ADLX_STD_CALL *Release)(IADLXPerformanceMonitoringServices* pThis); - ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLXPerformanceMonitoringServices* pThis, const wchar_t* interfaceId, void** ppInterface); - - //IADLXPerformanceMonitoringServices - ADLX_RESULT (ADLX_STD_CALL *GetSamplingIntervalRange)(IADLXPerformanceMonitoringServices* pThis, ADLX_IntRange* range); - ADLX_RESULT (ADLX_STD_CALL *SetSamplingInterval)(IADLXPerformanceMonitoringServices* pThis, adlx_int intervalMs); - ADLX_RESULT (ADLX_STD_CALL *GetSamplingInterval)(IADLXPerformanceMonitoringServices* pThis, adlx_int* intervalMs); - ADLX_RESULT (ADLX_STD_CALL *GetMaxPerformanceMetricsHistorySizeRange)(IADLXPerformanceMonitoringServices* pThis, ADLX_IntRange* range); - ADLX_RESULT (ADLX_STD_CALL *SetMaxPerformanceMetricsHistorySize)(IADLXPerformanceMonitoringServices* pThis, adlx_int sizeSec); - ADLX_RESULT (ADLX_STD_CALL *GetMaxPerformanceMetricsHistorySize)(IADLXPerformanceMonitoringServices* pThis, adlx_int* sizeSec); - ADLX_RESULT (ADLX_STD_CALL *ClearPerformanceMetricsHistory)(IADLXPerformanceMonitoringServices* pThis); - ADLX_RESULT (ADLX_STD_CALL *GetCurrentPerformanceMetricsHistorySize)(IADLXPerformanceMonitoringServices* pThis, adlx_int* sizeSec); - ADLX_RESULT (ADLX_STD_CALL *StartPerformanceMetricsTracking)(IADLXPerformanceMonitoringServices* pThis); - ADLX_RESULT (ADLX_STD_CALL *StopPerformanceMetricsTracking)(IADLXPerformanceMonitoringServices* pThis); - ADLX_RESULT (ADLX_STD_CALL *GetAllMetricsHistory)(IADLXPerformanceMonitoringServices* pThis, adlx_int startMs, adlx_int stopMs, IADLXAllMetricsList** ppMetricsList); - ADLX_RESULT (ADLX_STD_CALL *GetGPUMetricsHistory)(IADLXPerformanceMonitoringServices* pThis, IADLXGPU* pGPU, adlx_int startMs, adlx_int stopMs, IADLXGPUMetricsList** ppMetricsList); - ADLX_RESULT (ADLX_STD_CALL *GetSystemMetricsHistory)(IADLXPerformanceMonitoringServices* pThis, adlx_int startMs, adlx_int stopMs, IADLXSystemMetricsList** ppMetricsList); - ADLX_RESULT (ADLX_STD_CALL *GetFPSHistory)(IADLXPerformanceMonitoringServices* pThis, adlx_int startMs, adlx_int stopMs, IADLXFPSList** ppMetricsList); - ADLX_RESULT (ADLX_STD_CALL *GetCurrentAllMetrics)(IADLXPerformanceMonitoringServices* pThis, IADLXAllMetrics** ppMetrics); - ADLX_RESULT (ADLX_STD_CALL *GetCurrentGPUMetrics)(IADLXPerformanceMonitoringServices* pThis, IADLXGPU* pGPU, IADLXGPUMetrics** ppMetrics); - ADLX_RESULT (ADLX_STD_CALL *GetCurrentSystemMetrics)(IADLXPerformanceMonitoringServices* pThis, IADLXSystemMetrics** ppMetrics); - ADLX_RESULT (ADLX_STD_CALL *GetCurrentFPS)(IADLXPerformanceMonitoringServices* pThis, IADLXFPS** ppMetrics); - ADLX_RESULT (ADLX_STD_CALL *GetSupportedGPUMetrics)(IADLXPerformanceMonitoringServices* pThis, IADLXGPU* pGPU, IADLXGPUMetricsSupport** ppMetricsSupported); - ADLX_RESULT (ADLX_STD_CALL *GetSupportedSystemMetrics)(IADLXPerformanceMonitoringServices* pThis, IADLXSystemMetricsSupport** ppMetricsSupported); -}IADLXPerformanceMonitoringServicesVtbl; - -struct IADLXPerformanceMonitoringServices { const IADLXPerformanceMonitoringServicesVtbl *pVtbl; }; -#endif //__cplusplus -#pragma endregion IADLXPerformanceMonitoringServices - -#endif//ADLX_IPERFORMANCEMONITORING_H diff --git a/src/adlx/sdk/Include/IPerformanceMonitoring1.h b/src/adlx/sdk/Include/IPerformanceMonitoring1.h deleted file mode 100644 index 77b8f91..0000000 --- a/src/adlx/sdk/Include/IPerformanceMonitoring1.h +++ /dev/null @@ -1,134 +0,0 @@ -// -// Copyright (c) 2021 - 2023 Advanced Micro Devices, Inc. All rights reserved. -// -//------------------------------------------------------------------------------------------------- - -#ifndef ADLX_IPERFORMANCEMONITORING1_H -#define ADLX_IPERFORMANCEMONITORING1_H -#pragma once - -#include "IPerformanceMonitoring.h" - -#pragma region IADLXSystemMetricsSupport1 -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLXSystemMetricsSupport1 : public IADLXSystemMetricsSupport - { - public: - ADLX_DECLARE_IID (L"IADLXSystemMetricsSupport1") - - /** - *@page DOX_IADLXSystemMetricsSupport1_IsSupportedPowerDistribution IsSupportedPowerDistribution - *@ENG_START_DOX @brief Checks if reporting of power distribution between CPU and GPU is supported on the system. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupportedPowerDistribution (adlx_bool* supported) - *@codeEnd - * - *@params - *@paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of reporting of power distribution is returned. The variable is __true__ if the power distribution metric reporting is supported\. The variable is __false__ if the power distribution metric reporting is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of power distribution metric reporting is successfully returned, __ADLX_OK__ is returned.
- *If the state of power distribution metric reporting is not successfully returned, an error code is returned.
- *Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@copydoc IADLXSystemMetricsSupport1_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupportedPowerDistribution(adlx_bool* supported) = 0; - }; - //---------------------------------------------------------------------------------------------- - typedef IADLXInterfacePtr_T IADLXSystemMetricsSupport1Ptr; -} //namespace adlx -#else //__cplusplus -ADLX_DECLARE_IID (IADLXSystemMetricsSupport1, L"IADLXSystemMetricsSupport1") - -typedef struct IADLXSystemMetricsSupport1 IADLXSystemMetricsSupport1; -typedef struct IADLXSystemMetricsSupport1Vtbl -{ - //IADLXInterface - adlx_long (ADLX_STD_CALL *Acquire)(IADLXSystemMetricsSupport1* pThis); - adlx_long (ADLX_STD_CALL *Release)(IADLXSystemMetricsSupport1* pThis); - ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLXSystemMetricsSupport1* pThis, const wchar_t* interfaceId, void** ppInterface); - - //IADLXSystemMetricsSupport - ADLX_RESULT (ADLX_STD_CALL *IsSupportedCPUUsage)(IADLXSystemMetricsSupport1* pThis, adlx_bool* supported); - ADLX_RESULT (ADLX_STD_CALL *IsSupportedSystemRAM)(IADLXSystemMetricsSupport1* pThis, adlx_bool* supported); - ADLX_RESULT (ADLX_STD_CALL *IsSupportedSmartShift)(IADLXSystemMetricsSupport1* pThis, adlx_bool* supported); - ADLX_RESULT (ADLX_STD_CALL *GetCPUUsageRange)(IADLXSystemMetricsSupport1* pThis, adlx_int* minValue, adlx_int* maxValue); - ADLX_RESULT (ADLX_STD_CALL *GetSystemRAMRange)(IADLXSystemMetricsSupport1* pThis, adlx_int* minValue, adlx_int* maxValue); - ADLX_RESULT (ADLX_STD_CALL *GetSmartShiftRange)(IADLXSystemMetricsSupport1* pThis, adlx_int* minValue, adlx_int* maxValue); - - //IADLXSystemMetricsSupport1 - ADLX_RESULT (ADLX_STD_CALL *IsSupportedPowerDistribution)(IADLXSystemMetricsSupport1* pThis, adlx_bool* supported); -}IADLXSystemMetricsSupport1Vtbl; -struct IADLXSystemMetricsSupport1 { const IADLXSystemMetricsSupport1Vtbl *pVtbl; }; -#endif //__cplusplus -#pragma endregion IADLXSystemMetricsSupport1 - -#pragma region IADLXSystemMetrics1 -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLXSystemMetrics1 : public IADLXSystemMetrics - { - public: - ADLX_DECLARE_IID (L"IADLXSystemMetrics1") - - /** - *@page DOX_IADLXSystemMetrics1_PowerDistribution PowerDistribution - *@ENG_START_DOX @brief Gets the distribution of power between CPU and GPU of a system metric sample. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT PowerDistribution (adlx_int* apuShiftValue, adlx_int* gpuShiftValue, adlx_int* apuShiftLimit, adlx_int* gpuShiftLimit, adlx_int* totalShiftLimit) - *@codeEnd - * - *@params - *@paramrow{1.,[out] ,apuShiftValue,adlx_int* ,@ENG_START_DOX The pointer to a variable where the apu shift alue value is returned. @ENG_END_DOX} - *@paramrow{1.,[out] ,gpuShiftValue,adlx_int* ,@ENG_START_DOX The pointer to a variable where the gpu shift value is returned. @ENG_END_DOX} - *@paramrow{1.,[out] ,apuShiftLimit,adlx_int* ,@ENG_START_DOX The pointer to a variable where the apu shift limit value is returned. @ENG_END_DOX} - *@paramrow{1.,[out] ,gpuShiftLimit,adlx_int* ,@ENG_START_DOX The pointer to a variable where the gpu shift limit value is returned. @ENG_END_DOX} - *@paramrow{1.,[out] ,totalShiftLimit,adlx_int* ,@ENG_START_DOX The pointer to a variable where the total shift limit value is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the distribution of power is successfully returned, __ADLX_OK__ is returned.
- * If the distribution of power is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@copydoc IADLXSystemMetrics1_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL PowerDistribution(adlx_int* apuShiftValue, adlx_int* gpuShiftValue, adlx_int* apuShiftLimit, adlx_int* gpuShiftLimit, adlx_int* totalShiftLimit) = 0; - }; - //---------------------------------------------------------------------------------------------- - typedef IADLXInterfacePtr_T IADLXSystemMetrics1Ptr; -} //namespace adlx -#else //__cplusplus -ADLX_DECLARE_IID (IADLXSystemMetrics1, L"IADLXSystemMetrics1") - -typedef struct IADLXSystemMetrics1 IADLXSystemMetrics1; -typedef struct IADLXSystemMetrics1Vtbl -{ - //IADLXInterface - adlx_long (ADLX_STD_CALL *Acquire)(IADLXSystemMetrics1* pThis); - adlx_long (ADLX_STD_CALL *Release)(IADLXSystemMetrics1* pThis); - ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLXSystemMetrics1* pThis, const wchar_t* interfaceId, void** ppInterface); - - //IADLXSystemMetrics - ADLX_RESULT (ADLX_STD_CALL *TimeStamp)(IADLXSystemMetrics1* pThis, adlx_int64* ms); - ADLX_RESULT (ADLX_STD_CALL *CPUUsage)(IADLXSystemMetrics1* pThis, adlx_double* data); - ADLX_RESULT (ADLX_STD_CALL *SystemRAM)(IADLXSystemMetrics1* pThis, adlx_int* data); - ADLX_RESULT (ADLX_STD_CALL *SmartShift)(IADLXSystemMetrics1* pThis, adlx_int* data); - - //IADLXSystemMetrics1 - ADLX_RESULT (ADLX_STD_CALL *PowerDistribution)(IADLXSystemMetrics1* pThis, adlx_int* apuShiftValue, adlx_int* gpuShiftValue, adlx_int* apuShiftLimit, adlx_int* gpuShiftLimit, adlx_int* totalShiftLimit); -}IADLXSystemMetrics1Vtbl; -struct IADLXSystemMetrics1 { const IADLXSystemMetrics1Vtbl *pVtbl; }; -#endif //__cplusplus -#pragma endregion IADLXSystemMetrics1 - -#endif//ADLX_IPERFORMANCEMONITORING1_H diff --git a/src/adlx/sdk/Include/IPowerTuning.h b/src/adlx/sdk/Include/IPowerTuning.h deleted file mode 100644 index 079dc6a..0000000 --- a/src/adlx/sdk/Include/IPowerTuning.h +++ /dev/null @@ -1,473 +0,0 @@ -// -// Copyright (c) 2021 - 2023 Advanced Micro Devices, Inc. All rights reserved. -// -//------------------------------------------------------------------------------------------------- - -#ifndef ADLX_POWERTUNING_H -#define ADLX_POWERTUNING_H -#pragma once - -#include "ADLXStructures.h" -#include "IChangedEvent.h" - -#pragma region IADLXSmartShiftMax -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLXSmartShiftMax : public IADLXInterface - { - public: - ADLX_DECLARE_IID (L"IADLXSmartShiftMax") - - /** - *@page DOX_IADLXSmartShiftMax_IsSupported IsSupported - *@ENG_START_DOX @brief Checks if AMD SmartShift Max is supported. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupported (adlx_bool* supported) - *@codeEnd - * - *@params - * @paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of AMD SmartShift Max is returned. The variable is __true__ if AMD SmartShift Max is supported. The variable is __false__ if AMD SmartShift Max is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of AMD SmartShift Max is successfully returned, __ADLX_OK__ is returned.
- * If the state of AMD SmartShift Max is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@addinfo - *@ENG_START_DOX - *AMD SmartShift Max dynamically shifts power between CPU and GPU to boost performance, depending on workload. - *@ENG_END_DOX - * - *@copydoc IADLXSmartShiftMax_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupported (adlx_bool* supported) = 0; - - /** - *@page DOX_IADLXSmartShiftMax_GetBiasMode GetBiasMode - *@ENG_START_DOX @brief Gets the AMD SmartShift Max current bias mode. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetBiasMode (@ref ADLX_SSM_BIAS_MODE* mode) - *@codeEnd - * - *@params - * @paramrow{1.,[out],mode,@ref ADLX_SSM_BIAS_MODE*,@ENG_START_DOX The pointer to a variable where the AMD SmartShift Max current bias mode is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the current bias mode is successfully returned, __ADLX_OK__ is returned.
- * If the current bias mode is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@addinfo - *@ENG_START_DOX - *AMD SmartShift Max dynamically shifts power between CPU and GPU to boost performance according to workload dependencies. - *@ENG_END_DOX - * - *@copydoc IADLXSmartShiftMax_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetBiasMode(ADLX_SSM_BIAS_MODE* mode) = 0; - - /** - *@page DOX_IADLXSmartShiftMax_SetBiasMode SetBiasMode - *@ENG_START_DOX @brief Sets AMD SmartShift Max bias mode. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetBiasMode (@ref ADLX_SSM_BIAS_MODE mode) - *@codeEnd - * - *@params - * @paramrow{1.,[in],mode,@ref ADLX_SSM_BIAS_MODE,@ENG_START_DOX The new AMD SmartShift Max bias mode. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the bias mode is successfully set, __ADLX_OK__ is returned.
- * If the bias mode is not successfully set, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@addinfo - *@ENG_START_DOX - *AMD SmartShift Max dynamically shifts power between CPU and GPU to boost performance, depending on workload. - *@ENG_END_DOX - * - *@copydoc IADLXSmartShiftMax_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetBiasMode(ADLX_SSM_BIAS_MODE mode) = 0; - - /** - *@page DOX_IADLXSmartShiftMax_GetBiasRange GetBiasRange - *@ENG_START_DOX @brief Gets maximum bias, minimum bias, and step bias of AMD SmartShift Max. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetBiasRange (@ref ADLX_IntRange* range) - *@codeEnd - * - *@params - * @paramrow{1.,[out],range,@ref ADLX_IntRange*,@ENG_START_DOX The pointer to a variable where the bias range of AMD SmartShift Max is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the bias range is successfully returned, __ADLX_OK__ is returned.
- * If the bias range is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@addinfo - *@ENG_START_DOX - *AMD SmartShift Max dynamically shifts power between CPU and GPU to boost performance, depending on workload. - *@ENG_END_DOX - * - *@copydoc IADLXSmartShiftMax_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetBiasRange(ADLX_IntRange* range) = 0; - - /** - *@page DOX_IADLXSmartShiftMax_GetBias GetBias - *@ENG_START_DOX @brief Gets the AMD SmartShift Max current bias. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetBias (adlx_int* bias) - *@codeEnd - * - *@params - * @paramrow{1.,[out],bias,adlx_int*,@ENG_START_DOX The pointer to a variable where the AMD SmartShift Max current bias is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the current bias is successfully returned, __ADLX_OK__ is returned.
- * If the current bias is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@addinfo - *@ENG_START_DOX - *AMD SmartShift Max dynamically shifts power between CPU and GPU to boost performance, depending on workload. - *@ENG_END_DOX - * - *@copydoc IADLXSmartShiftMax_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetBias(adlx_int* bias) = 0; - - /** - *@page DOX_IADLXSmartShiftMax_SetBias SetBias - *@ENG_START_DOX @brief Sets the bias of AMD SmartShift Max. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetBias (adlx_int bias) - *@codeEnd - * - *@params - * @paramrow{1.,[in],bias,adlx_int,@ENG_START_DOX The new AMD SmartShift Max bias. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the bias is successfully set, __ADLX_OK__ is returned.
- * If the bias is not successfully set, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@addinfo - *@ENG_START_DOX - *AMD SmartShift Max dynamically shifts power between CPU and GPU to boost performance, depending on workload. - *@ENG_END_DOX - * - *@copydoc IADLXSmartShiftMax_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetBias(adlx_int bias) = 0; - }; //IADLXSmartShiftMax - //---------------------------------------------------------------------------------------------- - typedef IADLXInterfacePtr_T IADLXSmartShiftMaxPtr; -} //namespace adlx -#else //__cplusplus -ADLX_DECLARE_IID (IADLXSmartShiftMax, L"IADLXSmartShiftMax") -typedef struct IADLXSmartShiftMax IADLXSmartShiftMax; -typedef struct IADLXSmartShiftMaxVtbl -{ - //IADLXInterface - adlx_long (ADLX_STD_CALL *Acquire)(IADLXSmartShiftMax* pThis); - adlx_long (ADLX_STD_CALL *Release)(IADLXSmartShiftMax* pThis); - ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLXSmartShiftMax* pThis, const wchar_t* interfaceId, void** ppInterface); - - //IADLXSmartShiftMax - ADLX_RESULT (ADLX_STD_CALL *IsSupported)(IADLXSmartShiftMax* pThis, adlx_bool* supported); - ADLX_RESULT (ADLX_STD_CALL *GetBiasMode)(IADLXSmartShiftMax* pThis, ADLX_SSM_BIAS_MODE* mode); - ADLX_RESULT (ADLX_STD_CALL *SetBiasMode)(IADLXSmartShiftMax* pThis, ADLX_SSM_BIAS_MODE mode); - ADLX_RESULT (ADLX_STD_CALL *GetBiasRange)(IADLXSmartShiftMax* pThis, ADLX_IntRange* range); - ADLX_RESULT (ADLX_STD_CALL *GetBias)(IADLXSmartShiftMax* pThis, adlx_int* bias); - ADLX_RESULT (ADLX_STD_CALL *SetBias)(IADLXSmartShiftMax* pThis, adlx_int bias); -}IADLXSmartShiftMaxVtbl; -struct IADLXSmartShiftMax { const IADLXSmartShiftMaxVtbl *pVtbl; }; -#endif //__cplusplus -#pragma endregion IADLXSmartShiftMax - -#pragma region IADLXPowerTuningChangedEvent -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLXPowerTuningChangedEvent : public IADLXChangedEvent - { - public: - ADLX_DECLARE_IID (L"IADLXPowerTuningChangedEvent") - - /** - *@page DOX_IADLXPowerTuningChangedEvent_IsSmartShiftMaxChanged IsSmartShiftMaxChanged - *@ENG_START_DOX @brief Checks for changes to the AMD SmartShift Max settings. @ENG_END_DOX - * - *@syntax - *@codeStart - * adlx_bool IsSmartShiftMaxChanged () - *@codeEnd - * - *@params - *N/A - * - *@retvalues - *@ENG_START_DOX If there are any changes to the AMD SmartShift Max settings, __true__ is returned.
- * If there are on changes to the AMD SmartShift Max settings, __false__ is returned.
@ENG_END_DOX - * - *@copydoc IADLXPowerTuningChangedEvent_REQ_TABLE - * - */ - virtual adlx_bool ADLX_STD_CALL IsSmartShiftMaxChanged () = 0; - }; //IADLXPowerTuningChangedEvent - //---------------------------------------------------------------------------------------------- - typedef IADLXInterfacePtr_T IADLXPowerTuningChangedEventPtr; -} //namespace adlx -#else //__cplusplus -ADLX_DECLARE_IID (IADLXPowerTuningChangedEvent, L"IADLXPowerTuningChangedEvent") -typedef struct IADLXPowerTuningChangedEvent IADLXPowerTuningChangedEvent; -typedef struct IADLXPowerTuningChangedEventVtbl -{ - //IADLXInterface - adlx_long (ADLX_STD_CALL *Acquire)(IADLXPowerTuningChangedEvent* pThis); - adlx_long (ADLX_STD_CALL *Release)(IADLXPowerTuningChangedEvent* pThis); - ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLXPowerTuningChangedEvent* pThis, const wchar_t* interfaceId, void** ppInterface); - - //IADLXChangedEvent - ADLX_SYNC_ORIGIN(ADLX_STD_CALL* GetOrigin)(IADLXPowerTuningChangedEvent* pThis); - - //IADLXPowerTuningChangedEvent - adlx_bool (ADLX_STD_CALL *IsSmartShiftMaxChanged)(IADLXPowerTuningChangedEvent* pThis); -}IADLXPowerTuningChangedEventVtbl; -struct IADLXPowerTuningChangedEvent { const IADLXPowerTuningChangedEventVtbl *pVtbl; }; -#endif //__cplusplus -#pragma endregion IADLXPowerTuningChangedEvent - -#pragma region IADLXPowerTuningChangedListener -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLXPowerTuningChangedListener - { - public: - /** - *@page DOX_IADLXPowerTuningChangedListener_OnPowerTuningChanged OnPowerTuningChanged - *@ENG_START_DOX @brief __OnPowerTuningChanged__ is called by ADLX when power tuning settings change. @ENG_END_DOX - * - *@syntax - *@codeStart - * adlx_bool OnPowerTuningChanged (@ref DOX_IADLXPowerTuningChangedEvent* pPowerTuningChangedEvent) - *@codeEnd - * - *@params - *@paramrow{1.,[in] ,pPowerTuningChangedEvent,@ref DOX_IADLXPowerTuningChangedEvent* ,@ENG_START_DOX The pointer to a power tuning settings change event. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the application requires ADLX to continue notifying the next listener, __true__ must be returned.
- * If the application requires ADLX to stop notifying the next listener, __false__ must be returned.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX Once the application registers to the notifications with @ref DOX_IADLXPowerTuningChangedHandling_AddPowerTuningEventListener, ADLX will call this method until the application unregisters from the notifications with @ref DOX_IADLXPowerTuningChangedHandling_RemovePowerTuningEventListener. - * The method should return quickly to not block the execution path in ADLX. If the method requires a long processing of the event notification, the application must hold onto a reference to the power tuning settings change event with @ref DOX_IADLXInterface_Acquire and make it available on an asynchronous thread and return immediately. When the asynchronous thread is done processing it must discard the power tuning settings change event with @ref DOX_IADLXInterface_Release. @ENG_END_DOX - * - *@copydoc IADLXPowerTuningChangedListener_REQ_TABLE - * - */ - virtual adlx_bool ADLX_STD_CALL OnPowerTuningChanged(IADLXPowerTuningChangedEvent* pPowerTuningChangedEvent) = 0; - }; //IADLXPowerTuningChangedListener -} //namespace adlx -#else //__cplusplus -typedef struct IADLXPowerTuningChangedListener IADLXPowerTuningChangedListener; -typedef struct IADLXPowerTuningChangedListenerVtbl -{ - adlx_bool (ADLX_STD_CALL *OnPowerTuningChanged)(IADLXPowerTuningChangedListener* pThis, IADLXPowerTuningChangedEvent* pPowerTuningChangedEvent); -} IADLXPowerTuningChangedListenerVtbl; -struct IADLXPowerTuningChangedListener { const IADLXPowerTuningChangedListenerVtbl *pVtbl; }; -#endif //__cplusplus -#pragma endregion IADLXPowerTuningChangedListener - -#pragma region IADLXPowerTuningChangedHandling -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLXPowerTuningChangedHandling : public IADLXInterface - { - public: - ADLX_DECLARE_IID (L"IADLXPowerTuningChangedHandling") - - /** - *@page DOX_IADLXPowerTuningChangedHandling_AddPowerTuningEventListener AddPowerTuningEventListener - *@ENG_START_DOX @brief Registers an event listener for notifications whenever power tuning settings are changed. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT AddPowerTuningEventListener (@ref DOX_IADLXPowerTuningChangedListener* pPowerTuningChangedListener) - *@codeEnd - * - *@params - *@paramrow{1.,[in] ,pPowerTuningChangedListener,@ref DOX_IADLXPowerTuningChangedListener* ,@ENG_START_DOX The pointer to the event listener interface to register for receiving power tuning settings change notifications. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the event listener is successfully registered, __ADLX_OK__ is returned.
- * If the event listener is not successfully registered, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX Once the event listener is successfully registered, ADLX calls the @ref DOX_IADLXPowerTuningChangedListener_OnPowerTuningChanged listener method whenever power tuning settings are changed.
- * The event listener instance must exist until the application unregisters the event listener with @ref DOX_IADLXPowerTuningChangedHandling_RemovePowerTuningEventListener.
@ENG_END_DOX - * - *@copydoc IADLXPowerTuningChangedHandling_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL AddPowerTuningEventListener (IADLXPowerTuningChangedListener* pPowerTuningChangedListener) = 0; - - /** - *@page DOX_IADLXPowerTuningChangedHandling_RemovePowerTuningEventListener RemovePowerTuningEventListener - *@ENG_START_DOX @brief Unregisters an event listener from the power tuning settings event list. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT RemovePowerTuningEventListener (@ref DOX_IADLXPowerTuningChangedListener* pPowerTuningChangedListener) - *@codeEnd - * - *@params - *@paramrow{1.,[in] ,pPowerTuningChangedListener,@ref DOX_IADLXPowerTuningChangedListener* ,@ENG_START_DOX The pointer to the event listener interface to unregister from receiving power tuning settings change notifications. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the event listener is successfully unregistered, __ADLX_OK__ is returned.
- * If the event listener is not successfully unregistered, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX Once the event listener is successfully unregistered, ADLX will no longer call the @ref DOX_IADLXPowerTuningChangedListener_OnPowerTuningChanged listener method when power tuning settings are changed. - * The application can discard the event listener instance. @ENG_END_DOX - * - *@copydoc IADLXPowerTuningChangedHandling_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL RemovePowerTuningEventListener (IADLXPowerTuningChangedListener* pPowerTuningChangedListener) = 0; - - }; //IADLXPowerTuningChangedHandling - //---------------------------------------------------------------------------------------------- - typedef IADLXInterfacePtr_T IADLXPowerTuningChangedHandlingPtr; -} //namespace adlx -#else //__cplusplus -ADLX_DECLARE_IID (IADLXPowerTuningChangedHandling, L"IADLXPowerTuningChangedHandling") -typedef struct IADLXPowerTuningChangedHandling IADLXPowerTuningChangedHandling; -typedef struct IADLXPowerTuningChangedHandlingVtbl -{ - //IADLXInterface - adlx_long (ADLX_STD_CALL *Acquire)(IADLXPowerTuningChangedHandling* pThis); - adlx_long (ADLX_STD_CALL *Release)(IADLXPowerTuningChangedHandling* pThis); - ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLXPowerTuningChangedHandling* pThis, const wchar_t* interfaceId, void** ppInterface); - - //IADLXPowerTuningChangedHandling - ADLX_RESULT (ADLX_STD_CALL *AddPowerTuningEventListener)(IADLXPowerTuningChangedHandling* pThis, IADLXPowerTuningChangedListener* pPowerTuningChangedListener); - ADLX_RESULT (ADLX_STD_CALL *RemovePowerTuningEventListener)(IADLXPowerTuningChangedHandling* pThis, IADLXPowerTuningChangedListener* pPowerTuningChangedListener); -} IADLXPowerTuningChangedHandlingVtbl; -struct IADLXPowerTuningChangedHandling { const IADLXPowerTuningChangedHandlingVtbl *pVtbl; }; -#endif //__cplusplus -#pragma endregion IADLXPowerTuningChangedHandling - -#pragma region IADLXPowerTuningServices -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLXPowerTuningServices : public IADLXInterface - { - public: - ADLX_DECLARE_IID (L"IADLXPowerTuningServices") - - /** - *@page DOX_IADLXPowerTuningServices_GetPowerTuningChangedHandling GetPowerTuningChangedHandling - *@ENG_START_DOX @brief Gets the reference counted interface that allows registering and unregistering for notifications when power tuning settings change. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetPowerTuningChangedHandling (@ref DOX_IADLXPowerTuningChangedHandling** ppPowerTuningChangedHandling) - *@codeEnd - * - *@params - *@paramrow{1.,[out] ,ppPowerTuningChangedHandling,@ref DOX_IADLXPowerTuningChangedHandling** ,@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 __*ppPowerTuningChangedHandling__ to __nullptr__. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the interface is successfully returned, __ADLX_OK__ is returned.
- * If the interface is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX - * - *@addinfo - *@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 - * - *@copydoc IADLXPowerTuningServices_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetPowerTuningChangedHandling (IADLXPowerTuningChangedHandling** ppPowerTuningChangedHandling) = 0; - - /** - *@page DOX_IADLXPowerTuningServices_GetSmartShiftMax GetSmartShiftMax - *@ENG_START_DOX @brief Gets the reference counted AMD SmartShift Max interface. @ENG_END_DOX - *@syntax - *@codeStart - * @ref ADLX_RESULT GetSmartShiftMax (@ref DOX_IADLXSmartShiftMax** ppSmartShiftMax) - *@codeEnd - * - *@params - *@paramrow{1.,[out] ,ppSmartShiftMax,@ref DOX_IADLXSmartShiftMax** ,@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 __*ppSmartShiftMax__ to __nullptr__. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the interface is successfully returned, __ADLX_OK__ is returned.
- * If the interface is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX - * - *@addinfo - *@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 - * - *@copydoc IADLXPowerTuningServices_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetSmartShiftMax (IADLXSmartShiftMax** ppSmartShiftMax) = 0; - }; //IADLXPowerTuningServices - //---------------------------------------------------------------------------------------------- - typedef IADLXInterfacePtr_T IADLXPowerTuningServicesPtr; -} //namespace adlx -#else //__cplusplus -ADLX_DECLARE_IID (IADLXPowerTuningServices, L"IADLXPowerTuningServices") -typedef struct IADLXPowerTuningServices IADLXPowerTuningServices; -typedef struct IADLXPowerTuningServicesVtbl -{ - //IADLXInterface - adlx_long (ADLX_STD_CALL *Acquire)(IADLXPowerTuningServices* pThis); - adlx_long (ADLX_STD_CALL *Release)(IADLXPowerTuningServices* pThis); - ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLXPowerTuningServices* pThis, const wchar_t* interfaceId, void** ppInterface); - - //IADLXPowerTuningServices - ADLX_RESULT (ADLX_STD_CALL *GetPowerTuningChangedHandling)(IADLXPowerTuningServices* pThis, IADLXPowerTuningChangedHandling** ppPowerTuningChangedHandling); - ADLX_RESULT (ADLX_STD_CALL *GetSmartShiftMax)(IADLXPowerTuningServices* pThis, IADLXSmartShiftMax** ppSmartShiftMax); -}IADLXPowerTuningServicesVtbl; -struct IADLXPowerTuningServices { const IADLXPowerTuningServicesVtbl *pVtbl; }; -#endif //__cplusplus -#pragma endregion IADLXPowerTuningServices - -#endif //ADLX_POWERTUNING_H diff --git a/src/adlx/sdk/Include/ISmartAccessMemory.h b/src/adlx/sdk/Include/ISmartAccessMemory.h deleted file mode 100644 index 48f0694..0000000 --- a/src/adlx/sdk/Include/ISmartAccessMemory.h +++ /dev/null @@ -1,126 +0,0 @@ -// -// Copyright (c) 2021 - 2023 Advanced Micro Devices, Inc. All rights reserved. -// -//------------------------------------------------------------------------------------------------- - -#ifndef ADLX_ISMARTACCESSMEMORY_H -#define ADLX_ISMARTACCESSMEMORY_H -#pragma once - -#include "ADLXStructures.h" - -//------------------------------------------------------------------------------------------------- -//ISmartAccessMemory.h - Interfaces for ADLX AMD SmartAccess Memory functionality - -// AMD SmartAccess Memory interface -#pragma region IADLXSmartAccessMemory -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLXSmartAccessMemory : public IADLXInterface - { - public: - ADLX_DECLARE_IID(L"IADLXSmartAccessMemory") - - /** - *@page DOX_IADLXSmartAccessMemory_IsSupported IsSupported - *@ENG_START_DOX @brief Checks if AMD SmartAccess Memory is supported on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsSupported (adlx_bool* supported) - *@codeEnd - * - *@params - * @paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of AMD SmartAccess Memory is returned. The variable is __true__ if AMD SmartAccess Memory is supported. The variable is __false__ if AMD SmartAccess Memory is not supported. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of AMD SmartAccess Memory is successfully returned, __ADLX_OK__ is returned.
- * If the state of AMD SmartAccess Memory is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@copydoc IADLXSmartAccessMemory_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsSupported(adlx_bool* supported) = 0; - - /** - *@page DOX_IADLXSmartAccessMemory_IsEnabled IsEnabled - *@ENG_START_DOX @brief Checks if AMD SmartAccess Memory is enabled on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT IsEnabled (adlx_bool* enabled) - *@codeEnd - * - *@params - * @paramrow{1.,[out],enabled,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of AMD SmartAccess Memory is returned. The variable is __true__ if AMD SmartAccess Memory is enabled. The variable is __false__ if AMD SmartAccess Memory is not enabled. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of AMD SmartAccess Memory is successfully returned, __ADLX_OK__ is returned.
- * If the state of AMD SmartAccess Memory is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@copydoc IADLXSmartAccessMemory_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsEnabled(adlx_bool* enabled) = 0; - - /** - *@page DOX_IADLXSmartAccessMemory_SetEnabled SetEnabled - *@ENG_START_DOX @brief Enable or disable the state of AMD SmartAccess Memory on a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT SetEnabled (adlx_bool enable) - *@codeEnd - * - *@params - * @paramrow{1.,[in],enable,adlx_bool,@ENG_START_DOX The new AMD SmartAccess Memory state. Set __true__ to enable AMD SmartAccess Memory. Set __false__ to disable AMD SmartAccess Memory. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the state of AMD SmartAccess Memory is successfully set, __ADLX_OK__ is returned.
- * If the state of AMD SmartAccess Memory is not successfully set, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The __SetEnabled__ method triggers an asynchronous operation that results in changing the maximum size of VRAM of a GPU that the CPU can address.
- * While this operation is in progress, the applications that run in the context of the GPU or make calls in the driver for the GPU will behave unexpectedly. Before making this call, - * ensure that these applications release the GPU context, such as by closing their user interfaces, and that they will not make calls into the GPU driver during this operation. - * This procedure will allow those applications to continue to function correctly during and after the operation is completed.
- * To learn when the operation is completed, register an event listener interface using @ref DOX_IADLXGPUTuningServices_GetGPUTuningChangedHandling before calling __SetEnabled__. - * ADLX will call @ref DOX_IADLXGPUTuningChangedListener_OnGPUTuningChanged into the event listener interface twice during the asynchronous execution of __SetEnabled__: - * once before the operation is started, and the second time, after the operation is completed. Use @ref DOX_IADLXGPUTuningChangedEvent1_IsSmartAccessMemoryChanged and - * @ref DOX_IADLXGPUTuningChangedEvent1_GetSmartAccessMemoryStatus to discover the state of this operation. @ENG_END_DOX - * - *@copydoc IADLXSmartAccessMemory_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SetEnabled(adlx_bool enabled) = 0; - }; - //---------------------------------------------------------------------------------------------- - typedef IADLXInterfacePtr_T IADLXSmartAccessMemoryPtr; -} //namespace adlx -#else //__cplusplus -ADLX_DECLARE_IID(IADLXSmartAccessMemory, L"IADLXSmartAccessMemory") - -typedef struct IADLXSmartAccessMemory IADLXSmartAccessMemory; - -typedef struct IADLXSmartAccessMemoryVtbl -{ - //IADLXInterface - adlx_long(ADLX_STD_CALL* Acquire)(IADLXSmartAccessMemory* pThis); - adlx_long(ADLX_STD_CALL* Release)(IADLXSmartAccessMemory* pThis); - ADLX_RESULT(ADLX_STD_CALL* QueryInterface)(IADLXSmartAccessMemory* pThis, const wchar_t* interfaceId, void** ppInterface); - - //IADLXSmartAccessMemory - ADLX_RESULT(ADLX_STD_CALL* IsSupported)(IADLXSmartAccessMemory* pThis, adlx_bool* supported); - ADLX_RESULT(ADLX_STD_CALL* IsEnabled)(IADLXSmartAccessMemory* pThis, adlx_bool* enabled); - ADLX_RESULT(ADLX_STD_CALL* SetEnabled)(IADLXSmartAccessMemory* pThis, adlx_bool enabled); -} IADLXSmartAccessMemoryVtbl; - -struct IADLXSmartAccessMemory { const IADLXSmartAccessMemoryVtbl* pVtbl; }; -#endif -#pragma endregion IADLXSmartAccessMemory - -#endif // !ADLX_ISMARTACCESSMEMORY_H diff --git a/src/adlx/sdk/Include/ISystem.h b/src/adlx/sdk/Include/ISystem.h deleted file mode 100644 index ce40dd7..0000000 --- a/src/adlx/sdk/Include/ISystem.h +++ /dev/null @@ -1,1557 +0,0 @@ -// -// Copyright (c) 2021 - 2023 Advanced Micro Devices, Inc. All rights reserved. -// -//------------------------------------------------------------------------------------------------- - -//------------------------------------------------------------------------------------------------- -//ISystem.h - Interfaces for ADLX System-level functionality - -#ifndef ADLX_ISYSTEM_H -#define ADLX_ISYSTEM_H -#pragma once - -#include "ADLXDefines.h" -#include "ICollections.h" - -//Interfaces for GPU Info -#pragma region IADLXGPU interface -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLXGPU : public IADLXInterface - { - public: - ADLX_DECLARE_IID (L"IADLXGPU") - - /** - * @page DOX_IADLXGPU_VendorId VendorId - * @ENG_START_DOX - * @brief Gets the vendor id of a GPU. - * @ENG_END_DOX - * @syntax - * @codeStart - * @ref ADLX_RESULT VendorId (const char** vendorId) - * @codeEnd - * - * @params - * @paramrow{1.,[out],vendorId,const char**,@ENG_START_DOX The pointer to a zero-terminated string where the vendor id is returned. @ENG_END_DOX} - * - * @retvalues - * @ENG_START_DOX - * If the vendor id is successfully returned, __ADLX_OK__ is returned.
- * If the vendor id is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
- * @ENG_END_DOX - * - * @detaileddesc - * @ENG_START_DOX - * @details The vendor id is a predetermined value programmed into the GPU at the point of manufacturing and consists of four hexadecimal digits. - * @ENG_END_DOX - * @addinfo - * @ENG_START_DOX - * The returned memory buffer is valid within the lifetime of the @ref DOX_IADLXGPU interface.
- * If the application uses the vendor id beyond the lifetime of the @ref DOX_IADLXGPU interface, the application must make a copy of the vendor id. - * @ENG_END_DOX - * - * @copydoc IADLXGPU_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL VendorId (const char** vendorId) = 0; - /** - * @page DOX_IADLXGPU_ASICFamilyType ASICFamilyType - * @ENG_START_DOX - * @brief Gets the ASIC family type of a GPU. - * @ENG_END_DOX - * @syntax - * @codeStart - * @ref ADLX_RESULT ASICFamilyType (@ref ADLX_ASIC_FAMILY_TYPE* asicFamilyType) - * @codeEnd - * - * @params - * @paramrow{1.,[out],asicFamilyType,@ref ADLX_ASIC_FAMILY_TYPE*,@ENG_START_DOX The pointer to a variable where the ASIC family type is returned. @ENG_END_DOX} - * - * @retvalues - * @ENG_START_DOX - * If the ASIC family type is successfully returned, __ADLX_OK__ is returned.
- * If the ASIC family type is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
- * @ENG_END_DOX - * - * @copydoc IADLXGPU_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL ASICFamilyType (ADLX_ASIC_FAMILY_TYPE* asicFamilyType) const = 0; - /** - * @page DOX_IADLXGPU_Type Type - * @ENG_START_DOX - * @brief Gets the type of a GPU. - * @ENG_END_DOX - * @syntax - * @codeStart - * @ref ADLX_RESULT Type (@ref ADLX_GPU_TYPE* gpuType) - * @codeEnd - * - * @params - * @paramrow{1.,[out],gpuType,@ref ADLX_GPU_TYPE*,@ENG_START_DOX The pointer to a variable where the GPU type is returned. @ENG_END_DOX} - * - * @retvalues - * @ENG_START_DOX - * If the GPU type is successfully returned, __ADLX_OK__ is returned.
- * If the GPU type is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
- * @ENG_END_DOX - * - * @detaileddesc - * @ENG_START_DOX - * @details The GPU type can be categorized into Integrated, Discrete, and Unknown. - * @ENG_END_DOX - * - * - * @copydoc IADLXGPU_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL Type (ADLX_GPU_TYPE* gpuType) const = 0; - /** - * @page DOX_IADLXGPU_IsExternal IsExternal - * @ENG_START_DOX - * @brief Checks if a GPU is an external or internal GPU. - * @ENG_END_DOX - * @syntax - * @codeStart - * @ref ADLX_RESULT IsExternal (adlx_bool* isExternal) - * @codeEnd - * - * @params - * @paramrow{1.,[out],isExternal,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of the GPU is returned. The variable is __true__ if the GPU is external. The variable is __false__ if the GPU is internal. @ENG_END_DOX} - * - * @retvalues - * @ENG_START_DOX - * If __IsExternal__ is successfully executed, __ADLX_OK__ is returned.
- * If __IsExternal__ is not successfully executed, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
- * @ENG_END_DOX - * - * @copydoc IADLXGPU_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL IsExternal (adlx_bool* isExternal) const = 0; - /** - * @page DOX_IADLXGPU_Name Name - * @ENG_START_DOX - * @brief Gets the name of a GPU. - * @ENG_END_DOX - * @syntax - * @codeStart - * @ref ADLX_RESULT Name (const char** name) - * @codeEnd - * - * @params - * @paramrow{1.,[out],name,const char**,@ENG_START_DOX The pointer to a zero-terminated string where the name of the GPU is returned. @ENG_END_DOX} - * - * @retvalues - * @ENG_START_DOX - * If the name is successfully returned, __ADLX_OK__ is returned.
- * If the name is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
- * @ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * The returned memory buffer is valid within a lifetime of the @ref DOX_IADLXGPU interface.
- * If the application uses the name beyond the lifetime of the @ref DOX_IADLXGPU interface, the application must make a copy of the name.
- * @ENG_END_DOX - * - * @copydoc IADLXGPU_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL Name (const char** name) const = 0; - /** - * @page DOX_IADLXGPU_DriverPath DriverPath - * @ENG_START_DOX - * @brief Gets the driver registry path of a GPU. - * @ENG_END_DOX - * @syntax - * @codeStart - * @ref ADLX_RESULT DriverPath (const char** driverPath) - * @codeEnd - * - * @params - * @paramrow{1.,[out],driverPath,const char**,@ENG_START_DOX The pointer to a zero-terminated string where the driver registry path of a GPU is returned. @ENG_END_DOX} - * - * @retvalues - * @ENG_START_DOX - * If the driver path is successfully returned, __ADLX_OK__ is returned.
- * If the driver path is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
- * @ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * The returned memory buffer is valid within a lifetime of the @ref DOX_IADLXGPU interface.
- * If the application uses the driver path beyond the lifetime of the @ref DOX_IADLXGPU interface, the application must make a copy of the driver path.
- * @ENG_END_DOX - * - * @copydoc IADLXGPU_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL DriverPath (const char** driverPath) const = 0; - /** - * @page DOX_IADLXGPU_PNPString PNPString - * @ENG_START_DOX - * @brief Gets the PNP string of a GPU. - * @ENG_END_DOX - * @syntax - * @codeStart - * @ref ADLX_RESULT PNPString (const char** pnpString) - * @codeEnd - * - * @params - * @paramrow{1.,[out],pnpString,const char**,@ENG_START_DOX The pointer to a zero-terminated string where the PNP string of a GPU is returned. @ENG_END_DOX} - * - * @retvalues - * @ENG_START_DOX - * If the PNP string is successfully returned, __ADLX_OK__ is returned.
- * If the PNP string is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
- * @ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * The returned memory buffer is valid within a lifetime of the @ref DOX_IADLXGPU interface.
- * If the application uses the PNP string beyond the lifetime of the @ref DOX_IADLXGPU interface, the application must make a copy of the PNP string.
- * @ENG_END_DOX - * - * @copydoc IADLXGPU_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL PNPString (const char** pnpString) const = 0; - /** - * @page DOX_IADLXGPU_HasDesktops HasDesktops - * @ENG_START_DOX - * @brief Checks if a GPU drives any desktops. - * @ENG_END_DOX - * @syntax - * @codeStart - * @ref ADLX_RESULT HasDesktops (adlx_bool* hasDesktops) - * @codeEnd - * - * @params - * @paramrow{1.,[out],hasDesktops,adlx_bool*,@ENG_START_DOX The pointer to a variable to check if a GPU drives any desktops is returned. The variable is __true__ if the GPU drives desktops. The variable is __false__ if the GPU does not drive any desktop. @ENG_END_DOX} - * - * @retvalues - * @ENG_START_DOX - * If __HasDesktops__ is successfully executed, __ADLX_OK__ is returned.
- * If __HasDesktops__ is not successfully executed, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
- * @ENG_END_DOX - * - * @copydoc IADLXGPU_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL HasDesktops (adlx_bool* hasDesktops) const = 0; - /** - *@page DOX_IADLXGPU_TotalVRAM TotalVRAM - *@ENG_START_DOX @brief Gets the total VRAM size of a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT TotalVRAM (adlx_uint* vramMB) - *@codeEnd - * - *@params - *@paramrow{1.,[out] ,vramMB,adlx_uint* ,@ENG_START_DOX The pointer to a variable where the total VRAM size is returned. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the total VRAM size is successfully returned, __ADLX_OK__ is returned.
- * If the total VRAM size is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The total VRAM size is in MB. @ENG_END_DOX - * - *@copydoc IADLXGPU_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL TotalVRAM (adlx_uint* vramMB) = 0; - /** - * @page DOX_IADLXGPU_VRAMType VRAMType - * @ENG_START_DOX@brief Gets the VRAM type of a GPU.@ENG_END_DOX - * @syntax - * @codeStart - * @ref ADLX_RESULT VRAMType(const char** type) - * @codeEnd - * - * @params - * @paramrow{1.,[out],type,const char**,@ENG_START_DOX The pointer to a zero-terminated string where the VRAM type of the GPU is returned. @ENG_END_DOX} - * - * @retvalues - * @ENG_START_DOX - * If the VRAM type is successfully returned, __ADLX_OK__ is returned.
- * If the VRAM type is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
- * @ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * The returned memory buffer is valid within the lifetime of the @ref DOX_IADLXGPU interface.
- * If the application uses the VRAM type beyond the lifetime of the @ref DOX_IADLXGPU interface, the application must make a copy of the VRAM type. - * @ENG_END_DOX - * - * @copydoc IADLXGPU_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL VRAMType(const char** type) = 0; - /** - * @page DOX_IADLXGPU_BIOSInfo BIOSInfo - * @ENG_START_DOX@brief Gets the BIOS info of a GPU.@ENG_END_DOX - * @syntax - * @codeStart - * @ref ADLX_RESULT BIOSInfo(const char** partNumber, const char** version, const char** date) - * @codeEnd - * - * @params - * @paramrow{1.,[out],partNumber,const char**,@ENG_START_DOX The pointer to a zero-terminated string where the BIOS part number of the GPU is returned. @ENG_END_DOX} - * @paramrow{2.,[out],version,const char**,@ENG_START_DOX The pointer to a zero-terminated string where the BIOS version of the GPU is returned. @ENG_END_DOX} - * @paramrow{3.,[out],date,const char**,@ENG_START_DOX The pointer to a zero-terminated string where the BIOS date of the GPU is returned. @ENG_END_DOX} - * - * @retvalues - * @ENG_START_DOX - * If the BIOS part number, BIOS version and BIOS date are successfully returned, __ADLX_OK__ is returned.
- * If the BIOS part number, BIOS version and BIOS date are not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
- * @ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * The returned memory buffers are valid within the lifetime of the @ref DOX_IADLXGPU interface.
- * If the application uses the BIOS part number, BIOS version and BIOS date beyond the lifetime of the @ref DOX_IADLXGPU interface, the application must make a copy of the BIOS part number, BIOS version and BIOS date. - * @ENG_END_DOX - * - * @copydoc IADLXGPU_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL BIOSInfo(const char** partNumber, const char** version, const char** date) = 0; - /** - * @page DOX_IADLXGPU_DeviceId DeviceId - * @ENG_START_DOX@brief Gets the device id of a GPU.@ENG_END_DOX - * @syntax - * @codeStart - * @ref ADLX_RESULT DeviceId(const char** deviceId) - * @codeEnd - * - * @params - * @paramrow{1.,[out],deviceId,const char**,@ENG_START_DOX The pointer to a zero-terminated string where the device id of the GPU is returned. @ENG_END_DOX} - * - * @retvalues - * @ENG_START_DOX - * If the device id is successfully returned, __ADLX_OK__ is returned.
- * If the device id is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
- * @ENG_END_DOX - * - * @detaileddesc - * @ENG_START_DOX - * @details The device id is a predetermined value programmed into the GPU at the point of manufacturing and consists of four hexadecimal digits. - * @ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * The returned memory buffer is valid within the lifetime of the @ref DOX_IADLXGPU interface.
- * If the application uses the device id beyond the lifetime of the @ref DOX_IADLXGPU interface, the application must make a copy of the device id. - * @ENG_END_DOX - * - * @copydoc IADLXGPU_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL DeviceId(const char** deviceId) = 0; - /** - * @page DOX_IADLXGPU_RevisionId RevisionId - * @ENG_START_DOX@brief Gets the revision id of a GPU.@ENG_END_DOX - * @syntax - * @codeStart - * @ref ADLX_RESULT RevisionId(const char** revisionId) - * @codeEnd - * - * @params - * @paramrow{1.,[out],revisionId,const char**,@ENG_START_DOX The pointer to a zero-terminated string where the revision id of the GPU is returned. @ENG_END_DOX} - * - * @retvalues - * @ENG_START_DOX - * If the revision id is successfully returned, __ADLX_OK__ is returned.
- * If the revision id is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
- * @ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * The returned memory buffer is valid within the lifetime of the @ref DOX_IADLXGPU interface.
- * If the application uses the revision id beyond the lifetime of the @ref DOX_IADLXGPU interface, the application must make a copy of the revision id. - * @ENG_END_DOX - * - * @copydoc IADLXGPU_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL RevisionId(const char** revisionId) = 0; - /** - * @page DOX_IADLXGPU_SubSystemId SubSystemId - * @ENG_START_DOX@brief Gets the subsystem id of a GPU.@ENG_END_DOX - * @syntax - * @codeStart - * @ref ADLX_RESULT SubSystemId(const char** subSystemId) - * @codeEnd - * - * @params - * @paramrow{1.,[out],subSystemId,const char**,@ENG_START_DOX The pointer to a zero-terminated string where the subsystem id of the GPU is returned. @ENG_END_DOX} - * - * @retvalues - * @ENG_START_DOX - * If the subsystem id is successfully returned, __ADLX_OK__ is returned.
- * If the subsystem id is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
- * @ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * The returned memory buffer is valid within the lifetime of the @ref DOX_IADLXGPU interface.
- * If the application uses the subsystem id beyond the lifetime of the @ref DOX_IADLXGPU interface, the application must make a copy of the subsystem id. - * @ENG_END_DOX - * - * @copydoc IADLXGPU_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SubSystemId(const char** subSystemId) = 0; - /** - * @page DOX_IADLXGPU_SubSystemVendorId SubSystemVendorId - * @ENG_START_DOX@brief Gets the subsystem vendor id of a GPU.@ENG_END_DOX - * @syntax - * @codeStart - * @ref ADLX_RESULT SubSystemVendorId(const char** subSystemVendorId) - * @codeEnd - * - * @params - * @paramrow{1.,[out],subSystemVendorId,const char**,@ENG_START_DOX The pointer to a zero-terminated string where the subsystem vendor id of the GPU is returned. @ENG_END_DOX} - * - * @retvalues - * @ENG_START_DOX - * If the subsystem vendor id is successfully returned, __ADLX_OK__ is returned.
- * If the subsystem vendor id is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
- * @ENG_END_DOX - * - * @detaileddesc - * @ENG_START_DOX - * @details The subsystem vendor id is a predetermined value programmed into the GPU at the point of manufacturing and consists of four hexadecimal digits. - * @ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * The returned memory buffer is valid within the lifetime of the @ref DOX_IADLXGPU interface.
- * If the application uses the subsystem vendor id beyond the lifetime of the @ref DOX_IADLXGPU interface, the application must make a copy of the subsystem vendor id. - * @ENG_END_DOX - * - * @copydoc IADLXGPU_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL SubSystemVendorId(const char** subSystemVendorId) = 0; - /** - * @page DOX_IADLXGPU_UniqueId UniqueId - * @ENG_START_DOX@brief Gets the unique id of a GPU.@ENG_END_DOX - * @syntax - * @codeStart - * @ref ADLX_RESULT UniqueId(adlx_int* uniqueId) - * @codeEnd - * - * @params - * @paramrow{1.,[out],uniqueId,adlx_int*,@ENG_START_DOX The pointer to a variable where the unique id of the GPU is returned. @ENG_END_DOX} - * - * @retvalues - * @ENG_START_DOX - * If the unique id is successfully returned, __ADLX_OK__ is returned.
- * If the unique id is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
- * @ENG_END_DOX - * - * @copydoc IADLXGPU_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL UniqueId(adlx_int* uniqueId) = 0; - }; //IADLXGPU - //---------------------------------------------------------------------------------------------- - typedef IADLXInterfacePtr_T IADLXGPUPtr; -} //namespace adlx -#else -ADLX_DECLARE_IID (IADLXGPU, L"IADLXGPU"); -typedef struct IADLXGPU IADLXGPU; - -typedef struct IADLXGPUVtbl -{ - //IADLXInterface - adlx_long (ADLX_STD_CALL *Acquire)(IADLXGPU* pThis); - adlx_long (ADLX_STD_CALL *Release)(IADLXGPU* pThis); - ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLXGPU* pThis, const wchar_t* interfaceId, void** ppInterface); - - //IADLXGPU - ADLX_RESULT (ADLX_STD_CALL *VendorId)(IADLXGPU* pThis, const char** vendorId); - ADLX_RESULT (ADLX_STD_CALL *ASICFamilyType)(IADLXGPU* pThis, ADLX_ASIC_FAMILY_TYPE* asicFamilyType); - ADLX_RESULT (ADLX_STD_CALL *Type)(IADLXGPU* pThis, ADLX_GPU_TYPE* gpuType); - ADLX_RESULT (ADLX_STD_CALL *IsExternal)(IADLXGPU* pThis, adlx_bool* isExternal); - ADLX_RESULT (ADLX_STD_CALL *Name)(IADLXGPU* pThis, const char** gpuName); - ADLX_RESULT (ADLX_STD_CALL *DriverPath)(IADLXGPU* pThis, const char** driverPath); - ADLX_RESULT (ADLX_STD_CALL *PNPString)(IADLXGPU* pThis, const char** pnpString); - ADLX_RESULT (ADLX_STD_CALL *HasDesktops)(IADLXGPU* pThis, adlx_bool* hasDesktops); - ADLX_RESULT (ADLX_STD_CALL *TotalVRAM)(IADLXGPU* pThis, adlx_uint* vramMB); - ADLX_RESULT (ADLX_STD_CALL *VRAMType)(IADLXGPU* pThis, const char** type); - ADLX_RESULT (ADLX_STD_CALL *BIOSInfo)(IADLXGPU* pThis, const char** partNumber, const char** version, const char** date); - ADLX_RESULT (ADLX_STD_CALL *DeviceId)(IADLXGPU* pThis, const char** deviceId); - ADLX_RESULT (ADLX_STD_CALL *RevisionId)(IADLXGPU* pThis, const char** revisionId); - ADLX_RESULT (ADLX_STD_CALL *SubSystemId)(IADLXGPU* pThis, const char** subSystemId); - ADLX_RESULT (ADLX_STD_CALL *SubSystemVendorId)(IADLXGPU* pThis, const char** subSystemVendorId); - ADLX_RESULT (ADLX_STD_CALL *UniqueId)(IADLXGPU* pThis, adlx_int* uniqueId); -} IADLXGPUVtbl; - -struct IADLXGPU -{ - const IADLXGPUVtbl *pVtbl; -}; -#endif -#pragma endregion IADLXGPU interface - -#pragma region IADLXGPUList interface -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLXGPUList : public IADLXList - { - public: - ADLX_DECLARE_IID (L"IADLXGPUList") - //Lists must declare the type of items it holds - what was passed as ADLX_DECLARE_IID() in that interface - ADLX_DECLARE_ITEM_IID (IADLXGPU::IID ()) - - /** - * @page DOX_IADLXGPUList_At At - * @ENG_START_DOX - * @brief Returns the reference counted interface at the requested location. - * @ENG_END_DOX - * @syntax - * @codeStart - * @ref ADLX_RESULT At (const adlx_uint location, @ref DOX_IADLXGPU** ppItem) - * @codeEnd - * - * @params - * @paramrow{1.,[in] ,location,const adlx_uint ,@ENG_START_DOX The location of the requested interface. @ENG_END_DOX} - * @paramrow{2.,[out] ,ppItem,@ref DOX_IADLXGPU** ,@ENG_START_DOX The address of a pointer to the returned interface. If the interface is not successfully returned then the method sets the dereferenced address __*ppItem__ to __nullptr__. @ENG_END_DOX} - * - * @retvalues - * @ENG_START_DOX - * If the location is within the list bounds, __ADLX_OK__ is returned.
- * If the location is not within the list bounds, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
- * @ENG_END_DOX - * - * @detaileddesc - * @ENG_START_DOX - * @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. - * @ENG_END_DOX - * - * @addinfo - * @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 - * - * @copydoc IADLXGPUList_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL At (const adlx_uint location, IADLXGPU** ppItem) = 0; - /** - * @page DOX_IADLXGPUList_Add_Back Add_Back - * @ENG_START_DOX - * @brief Adds an interface to the end of a list. - * @ENG_END_DOX - * @syntax - * @codeStart - * @ref ADLX_RESULT Add_Back (@ref DOX_IADLXGPU* pItem) - * @codeEnd - * - * @params - * @paramrow{1.,[in] ,pItem,@ref DOX_IADLXGPU* ,@ENG_START_DOX The pointer to the interface to be added to the list. @ENG_END_DOX} - * - * @retvalues - * @ENG_START_DOX - * If the interface is added successfully to the end of the list, __ADLX_OK__ is returned.
- * If the interface is not added to the end of the list, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
- * @ENG_END_DOX - * - * @detaileddesc - * @ENG_START_DOX - * @details - * @ENG_END_DOX - * - * - * @copydoc IADLXGPUList_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL Add_Back (IADLXGPU* pItem) = 0; - }; //IADLXGPUList - //---------------------------------------------------------------------------------------------- - typedef IADLXInterfacePtr_T IADLXGPUListPtr; -} //namespace adlx -#else -ADLX_DECLARE_IID (IADLXGPUList, L"IADLXGPUList") -ADLX_DECLARE_ITEM_IID (IADLXGPU, IID_IADLXGPU ()) - -typedef struct IADLXGPUList IADLXGPUList; - -typedef struct IADLXGPUListVtbl -{ - //IADLXInterface - adlx_long (ADLX_STD_CALL *Acquire)(IADLXGPUList* pThis); - adlx_long (ADLX_STD_CALL *Release)(IADLXGPUList* pThis); - ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLXGPUList* pThis, const wchar_t* interfaceId, void** ppInterface); - - //IADLXList - adlx_uint (ADLX_STD_CALL *Size)(IADLXGPUList* pThis); - adlx_uint8 (ADLX_STD_CALL *Empty)(IADLXGPUList* pThis); - adlx_uint (ADLX_STD_CALL *Begin)(IADLXGPUList* pThis); - adlx_uint (ADLX_STD_CALL *End)(IADLXGPUList* pThis); - ADLX_RESULT (ADLX_STD_CALL *At)(IADLXGPUList* pThis, const adlx_uint location, IADLXInterface** ppItem); - ADLX_RESULT (ADLX_STD_CALL *Clear)(IADLXGPUList* pThis); - ADLX_RESULT (ADLX_STD_CALL *Remove_Back)(IADLXGPUList* pThis); - ADLX_RESULT (ADLX_STD_CALL *Add_Back)(IADLXGPUList* pThis, IADLXInterface* pItem); - - //IADLXGPUList - ADLX_RESULT (ADLX_STD_CALL *At_GPUList)(IADLXGPUList* pThis, const adlx_uint location, IADLXGPU** ppItem); - ADLX_RESULT (ADLX_STD_CALL *Add_Back_GPUList)(IADLXGPUList* pThis, IADLXGPU* pItem); - -} IADLXGPUListVtbl; - -struct IADLXGPUList -{ - const IADLXGPUListVtbl *pVtbl; -}; - -#endif -#pragma endregion IADLXGPUList interface - -#pragma region IADLXGPUsChangedHandling interface -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLXGPUsEventListener - { - public: - /** - *@page DOX_IADLXGPUsEventListener_OnGPUListChanged OnGPUListChanged - *@ENG_START_DOX @brief The __OnGPUListChanged__ is called by ADLX when the GPU list changes. @ENG_END_DOX - * - *@syntax - *@codeStart - * adlx_bool OnGPUListChanged (@ref DOX_IADLXGPUList* pNewGPUs) - *@codeEnd - * - *@params - *@paramrow{1.,[out] ,pNewGPUs,@ref DOX_IADLXGPUList* ,@ENG_START_DOX The pointer to the new GPU list. @ENG_END_DOX} - * - * - *@retvalues - *@ENG_START_DOX If the application requires ADLX to continue notifying the next listener, __true__ must be returned.
- * If the application requires ADLX to stop notifying the next listener, __false__ must be returned.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX Once the application registers to the notifications with @ref DOX_IADLXGPUsChangedHandling_AddGPUsListEventListener, ADLX will call this method until the application unregisters from the notifications with @ref DOX_IADLXGPUsChangedHandling_RemoveGPUsListEventListener.
- * The method should return quickly to not block the execution path in ADLX. If the method requires a long processing of the event notification, the application must hold onto a reference to the new GPU list with @ref DOX_IADLXInterface_Acquire and make it available on an asynchronous thread and return immediately. When the asynchronous thread is done processing it must discard the new GPU list with @ref DOX_IADLXInterface_Release. @ENG_END_DOX - * - * - *@copydoc IADLXGPUsEventListener_REQ_TABLE - * - */ - virtual adlx_bool ADLX_STD_CALL OnGPUListChanged (IADLXGPUList* pNewGPUs) = 0; - }; - - class ADLX_NO_VTABLE IADLXGPUsChangedHandling : public IADLXInterface - { - public: - ADLX_DECLARE_IID (L"IADLXGPUsChangedHandling") - /** - *@page DOX_IADLXGPUsChangedHandling_AddGPUsListEventListener AddGPUsListEventListener - *@ENG_START_DOX @brief Registers an event listener for notifications when the GPU list changes. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT AddGPUsListEventListener (@ref DOX_IADLXGPUsEventListener* pListener) - *@codeEnd - * - *@params - *@paramrow{1.,[in] ,pListener,@ref DOX_IADLXGPUsEventListener* ,@ENG_START_DOX The pointer to the event listener interface to register for receiving the GPU list change notifications. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the event listener is successfully registered, __ADLX_OK__ is returned.
- * If the event listener is not successfully registered, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX After the event listener is successfully registered, ADLX will call @ref DOX_IADLXGPUsEventListener_OnGPUListChanged of the listener when the GPU list changes.
- * The event listener instance must exist until the application unregisters the event listener with @ref DOX_IADLXGPUsChangedHandling_RemoveGPUsListEventListener.
@ENG_END_DOX - * - * - *@copydoc IADLXGPUsChangedHandling_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL AddGPUsListEventListener(IADLXGPUsEventListener* pListener) = 0; - /** - *@page DOX_IADLXGPUsChangedHandling_RemoveGPUsListEventListener RemoveGPUsListEventListener - *@ENG_START_DOX @brief Unregisters an event listener from notifications when the GPU list changes. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT RemoveGPUsListEventListener (@ref DOX_IADLXGPUsEventListener* pListener) - *@codeEnd - * - *@params - *@paramrow{1.,[in] ,pListener,@ref DOX_IADLXGPUsEventListener* ,@ENG_START_DOX The pointer to the event listener interface to unregister from receiving the GPU list change notifications. @ENG_END_DOX} - * - * - *@retvalues - *@ENG_START_DOX If the event listener is successfully unregistered, __ADLX_OK__ is returned.
- * If the event listener is not successfully unregistered, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX After the event listener is successfully unregistered, ADLX will no longer call @ref DOX_IADLXGPUsEventListener_OnGPUListChanged method of the listener when the GPU list changes. The application can discard the event listener instance. @ENG_END_DOX - * - * - *@copydoc IADLXGPUsChangedHandling_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL RemoveGPUsListEventListener(IADLXGPUsEventListener* pListener) = 0; - }; - - //------------------------------------------------------------------------------------ - typedef IADLXInterfacePtr_T IADLXGPUsChangedHandlingPtr; -} -#else -ADLX_DECLARE_IID (IADLXGPUsChangedHandling, L"IADLXGPUsChangedHandling") -typedef struct IADLXGPUsEventListener IADLXGPUsEventListener; - -typedef struct IADLXGPUsEventListenerVtbl -{ - // IADLXGPUsEventListener interface - adlx_bool (ADLX_STD_CALL *OnGPUListChanged)(IADLXGPUsEventListener* pThis, IADLXGPUList* pNewGPUs); -} IADLXGPUsEventListenerVtbl; - -struct IADLXGPUsEventListener -{ - const IADLXGPUsEventListenerVtbl *pVtbl; -}; - -typedef struct IADLXGPUsChangedHandling IADLXGPUsChangedHandling; - -typedef struct IADLXGPUsChangedHandlingVtbl -{ - // IADLXInterface - adlx_long (ADLX_STD_CALL *Acquire)(IADLXGPUsChangedHandling* pThis); - adlx_long (ADLX_STD_CALL *Release)(IADLXGPUsChangedHandling* pThis); - ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLXGPUsChangedHandling* pThis, const wchar_t* interfaceId, void** ppInterface); - - // IADLXGPUsChangedHandling - ADLX_RESULT (ADLX_STD_CALL *AddGPUsListEventListener)(IADLXGPUsChangedHandling* pThis, IADLXGPUsEventListener* pListener); - ADLX_RESULT (ADLX_STD_CALL *RemoveGPUsListEventListener)(IADLXGPUsChangedHandling* pThis, IADLXGPUsEventListener* pListener); - -} IADLXGPUsChangedHandlingVtbl; - -struct IADLXGPUsChangedHandling -{ - const IADLXGPUsChangedHandlingVtbl *pVtbl; -}; - -#endif -#pragma endregion IADLXGPUsChangedHandling interface - -//IADLXSystem is a singleton interface, should not be deleted -#pragma region IADLXSystem interface -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLXDesktopServices; - class ADLX_NO_VTABLE IADLXDisplayServices; - class ADLX_NO_VTABLE IADLXLog; - class ADLX_NO_VTABLE IADLX3DSettingsServices; - class ADLX_NO_VTABLE IADLXGPUTuningServices; - class ADLX_NO_VTABLE IADLXPerformanceMonitoringServices; - class ADLX_NO_VTABLE IADLXI2C; - - class ADLX_NO_VTABLE IADLXSystem - { - public: - /** - * @page DOX_IADLXSystem_HybridGraphicsType HybridGraphicsType - * @ENG_START_DOX - * @brief Gets the hybrid graphics type of the system. - * @ENG_END_DOX - * @syntax - * @codeStart - * @ref ADLX_RESULT HybridGraphicsType (@ref ADLX_HG_TYPE* hgType) - * @codeEnd - * - * @params - * @paramrow{1.,[out] ,hgType,@ref ADLX_HG_TYPE* ,@ENG_START_DOX The pointer to a variable where the hybrid graphics type is returned. @ENG_END_DOX} - * - * @retvalues - * @ENG_START_DOX - * If the hybrid graphics type is successfully returned, __ADLX_OK__ is returned.
- * If the hybrid graphics type is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. - * @ENG_END_DOX - * - * @detaileddesc - * @ENG_START_DOX - * @details The hybrid graphics type can be used to discover if the system is a hybrid graphics platform. - * Hybrid graphics platforms share cross-adapter resources between a discrete GPU and an integrated GPU. Applications can run on either GPU depending on their needs. The operating system and the AMD display driver together determine which GPU an application should run on. - * - * On an AMD hybrid graphics platform, the integrated GPU can be an AMD integrated GPU or a non-AMD integrated GPU. - * - * @ENG_END_DOX - * - * - * @copydoc IADLXSystem_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL HybridGraphicsType (ADLX_HG_TYPE* hgType) = 0; - /** - * @page DOX_IADLXSystem_GetGPUs GetGPUs - * @ENG_START_DOX - * @brief Gets the reference counted list of AMD GPUs. - * @ENG_END_DOX - * @syntax - * @codeStart - * @ref ADLX_RESULT GetGPUs (@ref DOX_IADLXGPUList** ppGPUs) - * @codeEnd - * - * @params - * @paramrow{1.,[out] ,ppGPUs,@ref DOX_IADLXGPUList** ,@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 __*ppGPUs__ to __nullptr__. @ENG_END_DOX} - * - * @retvalues - * @ENG_START_DOX - * If the interface is successfully returned, __ADLX_OK__ is returned.
- * If the interface is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
- * @ENG_END_DOX - * - * @detaileddesc - * @ENG_START_DOX - * @details For more information about the AMD GPUs, refer to @ref @adlx_gpu_support "ADLX GPU Support".
- * The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. - * @ENG_END_DOX - * - *@addinfo - *@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 - * - * @copydoc IADLXSystem_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetGPUs (IADLXGPUList** ppGPUs) = 0; - /** - * @page DOX_IADLXSystem_QueryInterface QueryInterface - * @ENG_START_DOX - * @brief Gets reference counted extension interfaces to @ref DOX_IADLXSystem. - * @ENG_END_DOX - * - * @syntax - * @codeStart - * @ref ADLX_RESULT QueryInterface (const wchar_t* interfaceId, void** ppInterface) - * @codeEnd - * - * @params - * @paramrow{1.,[in] ,interfaceId,const wchar_t*,@ENG_START_DOX The identifier of the interface being requested. @ENG_END_DOX} - * @paramrow{2.,[out],ppInterface,void**,@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 __*ppInterface__ to __nullptr__. @ENG_END_DOX} - * - * @retvalues - * @ENG_START_DOX - * If the interface is successfully returned, __ADLX_OK__ is returned.
- * If the interface is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
- * @ENG_END_DOX - * - * @detaileddesc - * @ENG_START_DOX - * @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. - * @ENG_END_DOX - * - * - * @addinfo - * @ENG_START_DOX - * In C++ when using a smart pointer for the returned interface there is no need to call @ref DOX_IADLXInterface_Release because the smart pointer calls it internally. - * @ENG_END_DOX - * - * @copydoc IADLXSystem_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL QueryInterface (const wchar_t* interfaceId, void** ppInterface) = 0; - /** - * @page DOX_IADLXSystem_GetDisplaysServices GetDisplaysServices - * @ENG_START_DOX - * @brief Gets the reference counted main interface to the @ref DOX_IADLXDisplayServices "Display" domain. - * @ENG_END_DOX - * - * @syntax - * @codeStart - * @ref ADLX_RESULT GetDisplaysServices (@ref DOX_IADLXDisplayServices** ppDispServices) - * @codeEnd - * - * @params - * @paramrow{1.,[out] ,ppDispServices,@ref DOX_IADLXDisplayServices**,@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 __*ppDispServices__ to __nullptr__. @ENG_END_DOX} - * - * @retvalues - * @ENG_START_DOX - * If the interface is successfully returned, __ADLX_OK__ is returned.
- * If the interface is not returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
- * @ENG_END_DOX - * - * @detaileddesc - * @ENG_START_DOX - * @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. - * @ENG_END_DOX - * - * @addinfo - *@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 - * @copydoc IADLXSystem_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetDisplaysServices(IADLXDisplayServices** ppDispServices) = 0; - /** - * @page DOX_IADLXSystem_GetDesktopsServices GetDesktopsServices - * @ENG_START_DOX - * @brief Gets the reference counted main interface to the @ref DOX_IADLXDesktopServices "Desktop" domain. - * @ENG_END_DOX - * - * @syntax - * @codeStart - * @ref ADLX_RESULT GetDesktopsServices (@ref DOX_IADLXDesktopServices** ppDeskServices) - * @codeEnd - * - * @params - * @paramrow{1.,[out] ,ppDeskServices,@ref DOX_IADLXDesktopServices**,@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 __*ppDeskServices__ to __nullptr__. @ENG_END_DOX} - * - * @retvalues - * @ENG_START_DOX - * If the interface is successfully returned, __ADLX_OK__ is returned.
- * If the interface is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
- * @ENG_END_DOX - * - * @detaileddesc - * @ENG_START_DOX - * @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. - * @ENG_END_DOX - * - * @addinfo - *@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 - * - * @copydoc IADLXSystem_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetDesktopsServices(IADLXDesktopServices** ppDeskServices) = 0; - - /** - * @page DOX_IADLXSystem_GetGPUsChangedHandling GetGPUsChangedHandling - * @ENG_START_DOX - * @brief Gets the reference counted interface to allow registering and unregistering for notifications when the GPU list changes. - * @ENG_END_DOX - * - * @syntax - * @codeStart - * @ref ADLX_RESULT GetGPUsChangedHandling (@ref DOX_IADLXGPUsChangedHandling** ppGPUsChangedHandling) - * @codeEnd - * - * @params - * @paramrow{1.,[out] ,ppGPUsChangedHandling,@ref DOX_IADLXGPUsChangedHandling**,@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 __*ppGPUsChangedHandling__ to __nullptr__. @ENG_END_DOX} - * - * @retvalues - * @ENG_START_DOX - * If the interface is successfully returned, __ADLX_OK__ is returned.
- * If the interface is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
- * @ENG_END_DOX - * - * @detaileddesc - * @ENG_START_DOX - * @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. - * @ENG_END_DOX - * - *@addinfo - *@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 - * - * @copydoc IADLXSystem_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetGPUsChangedHandling (IADLXGPUsChangedHandling** ppGPUsChangedHandling) = 0; - /** - * @page DOX_IADLXSystem_EnableLog EnableLog - * @ENG_START_DOX - * @brief Enables logging in ADLX. - * @ENG_END_DOX - * - * @syntax - * @codeStart - * @ref ADLX_RESULT EnableLog (@ref ADLX_LOG_DESTINATION mode, @ref ADLX_LOG_SEVERITY severity, @ref DOX_IADLXLog* pLogger, const wchar_t* fileName) - * @codeEnd - * - * @params - * @paramrow{1.,[in] ,mode,@ref ADLX_LOG_DESTINATION,@ENG_START_DOX The log destination. @ENG_END_DOX} - * @paramrow{2.,[in] ,severity,@ref ADLX_LOG_SEVERITY,@ENG_START_DOX The logging severity. @ENG_END_DOX} - * @paramrow{3.,[in] ,pLogger,@ref DOX_IADLXLog*,@ENG_START_DOX The pointer to the log interface to receive log messages from ADLX. @ENG_END_DOX} - * @paramrow{4.,[in] ,fileName,const wchar_t*,@ENG_START_DOX The zero-terminated string that specifies the path of the log file. @ENG_END_DOX} - * - * @retvalues - * @ENG_START_DOX - * If __EnableLog__ is successfully executed, __ADLX_OK__ is returned.
- * If __EnableLog__ is not successfully executed, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. - * @ENG_END_DOX - * - * @detaileddesc - * @ENG_START_DOX - * @details By default, ADLX logging is disabled. - * Use __EnableLog__ to configure log destination and severity. - * - * - To configure the log destination into a file, specify the __mode__ parameter as __LOCALFILE__ and provide the file path in the __filename__ parameter. The __pLogger__ parameter must be __nullptr__.
- * - To configure the log destination into the output window of the debugger, specify the __mode__ parameter as __DBGVIEW__. The __filename__ and __pLogger__ parameters must be __nullptr__.
- * - To configure the log destination to be sent as a string into the application, specify the __mode__ parameter as __APPLICATION__. Implement the @ref DOX_IADLXLog interface in the application and pass a pointer to an instance of that interface into the __pLogger__ parameter. The log instance must exist until ADLX is terminated. The __filename__ parameter must be __nullptr__.
- * - To obtain the error messages in the ADLX execution code, specify the __severity__ parameter as __LERROR__.
- * - To obtain the error and warning messages in the ADLX execution code, specify the __severity__ parameter as __LWARNING__.
- * - To obtain error, warning, and debug tracing messages in the ADLX execution code, specify the __severity__ parameter as __LDEBUG__. - * @ENG_END_DOX - * - * @copydoc IADLXSystem_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL EnableLog (ADLX_LOG_DESTINATION mode, ADLX_LOG_SEVERITY severity, IADLXLog* pLogger, const wchar_t* fileName) = 0; - - /** - * @page DOX_IADLXSystem_Get3DSettingsServices Get3DSettingsServices - * @ENG_START_DOX - * @brief Gets the reference counted main interface to the @ref DOX_IADLX3DSettingsServices "3D Graphics" domain. - * @ENG_END_DOX - * - * @syntax - * @codeStart - * @ref ADLX_RESULT Get3DSettingsServices (@ref DOX_IADLX3DSettingsServices** pp3DSettingsServices) - * @codeEnd - * - * @params - * @paramrow{1.,[out] ,pp3DSettingsServices,@ref DOX_IADLX3DSettingsServices**,@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 __*pp3DSettingsServices__ to __nullptr__. @ENG_END_DOX} - * - * @retvalues - * @ENG_START_DOX - * If the interface is successfully returned, __ADLX_OK__ is returned.
- * If the interface is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. - * @ENG_END_DOX - * - * @detaileddesc - * @ENG_START_DOX - * @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. - * @ENG_END_DOX - * - *@addinfo - *@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 - * - * @copydoc IADLXSystem_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL Get3DSettingsServices (IADLX3DSettingsServices** pp3DSettingsServices) = 0; - - /** - * @page DOX_IADLXSystem_GetGPUTuningServices GetGPUTuningServices - * @ENG_START_DOX - * @brief Gets the reference counted main interface to the @ref DOX_IADLXGPUTuningServices "GPU Tuning" domain. - * @ENG_END_DOX - * - * @syntax - * @codeStart - * @ref ADLX_RESULT GetGPUTuningServices (@ref DOX_IADLXGPUTuningServices** ppGPUTuningServices) - * @codeEnd - * - * @params - * @paramrow{1.,[out] ,ppGPUTuningServices,@ref DOX_IADLXGPUTuningServices**,@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 __*ppGPUTuningServices__ to __nullptr__. @ENG_END_DOX} - * - * @retvalues - * @ENG_START_DOX - * If the interface is successfully returned, __ADLX_OK__ is returned.
- * If the interface is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. - * @ENG_END_DOX - * - * @detaileddesc - * @ENG_START_DOX - * @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. - * @ENG_END_DOX - * - *@addinfo - *@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 - * - * @copydoc IADLXSystem_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetGPUTuningServices (IADLXGPUTuningServices** ppGPUTuningServices) = 0; - - /** - *@page DOX_IADLXSystem_GetPerformanceMonitoringServices GetPerformanceMonitoringServices - *@ENG_START_DOX @brief Gets the reference counted main interface to the @ref DOX_IADLXPerformanceMonitoringServices "Performance Monitoring" domain. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetPerformanceMonitoringServices (@ref DOX_IADLXPerformanceMonitoringServices** ppPerformanceMonitoringServices) - *@codeEnd - * - *@params - *@paramrow{1.,[out] ,ppPerformanceMonitoringServices,@ref DOX_IADLXPerformanceMonitoringServices** ,@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 __*ppPerformanceMonitoringServices__ to __nullptr__. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the interface is successfully returned, __ADLX_OK__ is returned.
- * If the interface is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX - * - * @addinfo - * @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 - * - *@copydoc IADLXSystem_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetPerformanceMonitoringServices (IADLXPerformanceMonitoringServices** ppPerformanceMonitoringServices) = 0; - - /** - *@page DOX_IADLXSystem_TotalSystemRAM TotalSystemRAM - *@ENG_START_DOX @brief Gets the size of the total RAM on this system. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT TotalSystemRAM (adlx_uint* ramMB) - *@codeEnd - * - *@params - *@paramrow{1.,[out] ,ramMB,adlx_uint* ,@ENG_START_DOX The pointer to a variable where the total system RAM size is returned\, in MB. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the interface is successfully returned, __ADLX_OK__ is returned.
- * If the interface is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@copydoc IADLXSystem_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL TotalSystemRAM (adlx_uint* ramMB) = 0; - - /** - *@page DOX_IADLXSystem_GetI2C GetI2C - *@ENG_START_DOX @brief Gets the reference counted @ref DOX_IADLXI2C "I2C" interface of a GPU. @ENG_END_DOX - * - *@syntax - *@codeStart - * @ref ADLX_RESULT GetI2C (@ref DOX_IADLXGPU* pGPU, @ref DOX_IADLXI2C** ppI2C) - *@codeEnd - * - *@params - *@paramrow{1.,[in] ,pGPU,@ref DOX_IADLXGPU* ,@ENG_START_DOX The pointer to the GPU interface. @ENG_END_DOX} - *@paramrow{2.,[out] ,ppI2C,@ref DOX_IADLXI2C** ,@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 __*ppI2C__ to __nullptr__. @ENG_END_DOX} - * - *@retvalues - *@ENG_START_DOX If the interface is successfully returned, __ADLX_OK__ is returned.
- * If the interface is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX - * - *@detaileddesc - *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX - * - * @addinfo - * @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 - * - *@copydoc IADLXSystem_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetI2C (IADLXGPU* pGPU, IADLXI2C** ppI2C) = 0; - - }; //IADLXSystem -} //namespace adlx -#else - -typedef struct IADLXDesktopServices IADLXDesktopServices; -typedef struct IADLXDisplayServices IADLXDisplayServices; -typedef struct IADLXLog IADLXLog; -typedef struct IADLX3DSettingsServices IADLX3DSettingsServices; -typedef struct IADLXSystem IADLXSystem; -typedef struct IADLXGPUTuningServices IADLXGPUTuningServices; -typedef struct IADLXPerformanceMonitoringServices IADLXPerformanceMonitoringServices; -typedef struct IADLXI2C IADLXI2C; - -typedef struct IADLXSystemVtbl -{ - // IADLXSystem interface - ADLX_RESULT (ADLX_STD_CALL *GetHybridGraphicsType)(IADLXSystem* pThis, ADLX_HG_TYPE* hgType); - ADLX_RESULT (ADLX_STD_CALL *GetGPUs)(IADLXSystem* pThis, IADLXGPUList** ppGPUs); - ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLXSystem* pThis, const wchar_t* interfaceId, void** ppInterface); - ADLX_RESULT (ADLX_STD_CALL *GetDisplaysServices)(IADLXSystem* pThis, IADLXDisplayServices** ppDispServices); - ADLX_RESULT (ADLX_STD_CALL *GetDesktopsServices)(IADLXSystem* pThis, IADLXDesktopServices** ppDeskServices); - ADLX_RESULT (ADLX_STD_CALL *GetGPUsChangedHandling)(IADLXSystem* pThis, IADLXGPUsChangedHandling** ppGPUsChangedHandling); - ADLX_RESULT (ADLX_STD_CALL *EnableLog)(IADLXSystem* pThis, ADLX_LOG_DESTINATION mode, ADLX_LOG_SEVERITY severity, IADLXLog* pLogger, const wchar_t* fileName); - ADLX_RESULT (ADLX_STD_CALL *Get3DSettingsServices)(IADLXSystem* pThis, IADLX3DSettingsServices** pp3DSettingsServices); - ADLX_RESULT (ADLX_STD_CALL *GetGPUTuningServices)(IADLXSystem* pThis, IADLXGPUTuningServices** ppGPUTuningServices); - ADLX_RESULT (ADLX_STD_CALL *GetPerformanceMonitoringServices)(IADLXSystem* pThis, IADLXPerformanceMonitoringServices** ppPerformanceMonitoringServices); - ADLX_RESULT (ADLX_STD_CALL *TotalSystemRAM)(IADLXSystem* pThis, adlx_uint* ramMB); - ADLX_RESULT (ADLX_STD_CALL *GetI2C)(IADLXSystem* pThis, IADLXGPU* pGPU, IADLXI2C** ppI2C); -} IADLXSystemVtbl; - -struct IADLXSystem -{ - const IADLXSystemVtbl *pVtbl; -}; -#endif -#pragma endregion IADLXSystem interface - -//IADLMapping is a singleton interface, should not be deleted -#pragma region IADLMapping interface -#if defined (__cplusplus) -namespace adlx -{ - //Interface used to interface between ADL and ADLX. This is useful in applications that use both ADL and ADLX, - //where ADLX was initialized with the instance of ADL that is initialized by the application. - //In such case the application might need to use both ADL and ADLX on the same GPU or display. - //This interface provides conversion both ways between ADL and ADLX GPU and display identity - class ADLX_NO_VTABLE IADLXDisplay; - class ADLX_NO_VTABLE IADLXDesktop; - - class ADLX_NO_VTABLE IADLMapping - { - public: - /** - * @page DOX_IADLMapping_GetADLXGPUFromBdf GetADLXGPUFromBdf - * @ENG_START_DOX - * @brief Gets the reference counted @ref DOX_IADLXGPU interface corresponding to the GPU with the specified PCI bus number, device number, and function number. - * @ENG_END_DOX - * @syntax - * @codeStart - * @ref ADLX_RESULT GetADLXGPUFromBdf (adlx_int bus, adlx_int device, adlx_int function, @ref DOX_IADLXGPU** ppGPU) - * @codeEnd - * - * @params - * @paramrow{1.,[in] ,bus,adlx_int,@ENG_START_DOX The unique PCIE bus number of the requested GPU. @ENG_END_DOX} - * @paramrow{2.,[in] ,device,adlx_int,@ENG_START_DOX The device number of the requested GPU. @ENG_END_DOX} - * @paramrow{3.,[in] ,function,adlx_int,@ENG_START_DOX The function number of the requested GPU. @ENG_END_DOX} - * @paramrow{4.,[out],ppGPU,@ref DOX_IADLXGPU**,@ENG_START_DOX The address of the pointer to the returned interface. If the GPU was not found\, the method sets the dereferenced address __*ppGPU__ to __nullptr__. @ENG_END_DOX} - * - * @retvalues - * @ENG_START_DOX - * If the @ref DOX_IADLXGPU is successfully returned, __ADLX_OK__ is returned.
- * If the @ref DOX_IADLXGPU is not returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. - * @ENG_END_DOX - * - * @detaileddesc - * @ENG_START_DOX - * @details __GetADLXGPUFromBdf__ is used when an ADLX method must be called for a GPU obtained from ADL where an __AdapterInfo__ structure is available.
- * The PCI bus number, device number, and function number parameters correspond to ADL __AdapterInfo.iBusNumber__, __AdapterInfo.iDeviceNumber__, and __AdapterInfo.iFunctionNumber__ for that GPU.
- * The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. - * @ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * In C++ when using a smart pointer for the returned interface there is no need to call @ref DOX_IADLXInterface_Release because the smart pointer calls it internally. - * @ENG_END_DOX - * - * @copydoc IADLMapping_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetADLXGPUFromBdf (adlx_int bus, adlx_int device, adlx_int function, IADLXGPU** ppGPU) = 0; - /** - * @page DOX_IADLMapping_GetADLXGPUFromAdlAdapterIndex GetADLXGPUFromAdlAdapterIndex - * @ENG_START_DOX - * @brief Gets the reference counted @ref DOX_IADLXGPU interface corresponding to the GPU with the specified ADL adapter index. - * @ENG_END_DOX - * @syntax - * @codeStart - * @ref ADLX_RESULT GetADLXGPUFromAdlAdapterIndex (adlx_int adlAdapterIndex, @ref DOX_IADLXGPU** ppGPU) - * @codeEnd - * - * @params - * @paramrow{1.,[in],adlAdapterIndex,adlx_int,@ENG_START_DOX The ADL adapter index for the requested GPU. @ENG_END_DOX} - * @paramrow{2.,[out],ppGPU,@ref DOX_IADLXGPU**,@ENG_START_DOX The address of the pointer to the returned interface. If the GPU was not found\, the method sets the dereferenced address __*ppGPU__ to __nullptr__. @ENG_END_DOX} - * - * @retvalues - * @ENG_START_DOX - * If the @ref DOX_IADLXGPU is successfully returned, __ADLX_OK__ is returned.
- * If the @ref DOX_IADLXGPU is not returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes - * @ENG_END_DOX - * - * @detaileddesc - * @ENG_START_DOX - * @details __GetADLXGPUFromAdlAdapterIndex__ is used when an ADLX method must be called for a GPU obtained from ADL for which an ADL adapter index is available.
- * The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. - * @ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * In C++ when using a smart pointer for the returned interface there is no need to call @ref DOX_IADLXInterface_Release because the smart pointer calls it internally. - * @ENG_END_DOX - * - * @copydoc IADLMapping_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetADLXGPUFromAdlAdapterIndex (adlx_int adlAdapterIndex, IADLXGPU** ppGPU) = 0; - /** - * @page DOX_IADLMapping_BdfFromADLXGPU BdfFromADLXGPU - * @ENG_START_DOX - * @brief Gets the PCI bus number, device number, and function number corresponding to the GPU with the specified @ref DOX_IADLXGPU interface. - * @ENG_END_DOX - * @syntax - * @codeStart - * @ref ADLX_RESULT BdfFromADLXGPU (@ref DOX_IADLXGPU* ppGPU, adlx_int* bus, adlx_int* device, adlx_int* function) - * @codeEnd - * - * @params - * @paramrow{1.,[in] ,pGPU,@ref DOX_IADLXGPU* ,@ENG_START_DOX The pointer to the GPU interface. @ENG_END_DOX} - * @paramrow{2.,[out] ,bus,adlx_int* ,@ENG_START_DOX The pointer to a variable where the unique PCIE bus number of the requested GPU is returned. @ENG_END_DOX} - * @paramrow{3.,[out] ,device,adlx_int* ,@ENG_START_DOX The pointer to a variable where the device number of the requested GPU is returned. @ENG_END_DOX} - * @paramrow{4.,[out] ,function,adlx_int* ,@ENG_START_DOX The pointer to a variable where function number of the requested GPU is returned. @ENG_END_DOX} - * - * @retvalues - * @ENG_START_DOX - * If bus, device, function are returned correctly, __ADLX_OK__ is returned.
- * If bus, device, function are not returned correctly, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. - * @ENG_END_DOX - * - * @detaileddesc - * @ENG_START_DOX - * @details __BdfFromADLXGPU__ is used when an ADL function must be called for a GPU obtained from ADLX, and the GPU's PCI bus, device, and function are required for that ADL function. - * @ENG_END_DOX - * - * @copydoc IADLMapping_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL BdfFromADLXGPU (IADLXGPU* pGPU, adlx_int* bus, adlx_int* device, adlx_int* function) = 0; - /** - * @page DOX_IADLMapping_AdlAdapterIndexFromADLXGPU AdlAdapterIndexFromADLXGPU - * @ENG_START_DOX - * @brief Gets the ADL Adapter index corresponding to the GPU with the specified @ref DOX_IADLXGPU interface. - * @ENG_END_DOX - * @syntax - * @codeStart - * @ref ADLX_RESULT AdlAdapterIndexFromADLXGPU (@ref DOX_IADLXGPU* ppGPU, adlx_int* adlAdapterIndex) - * @codeEnd - * - * @params - * @paramrow{1.,[in] ,pGPU,@ref DOX_IADLXGPU* ,@ENG_START_DOX The pointer to the GPU interface. @ENG_END_DOX} - * @paramrow{2.,[out] ,adlAdapterIndex,adlx_int* ,@ENG_START_DOX The pointer to a variable where ADL adapter index of the requested GPU is returned. @ENG_END_DOX} - * - * @retvalues - * @ENG_START_DOX - * If the ADL adapter index is successfully returned, __ADLX_OK__ is returned.
- * If the ADL Adapter index is not returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. - * @ENG_END_DOX - * - * @detaileddesc - * @ENG_START_DOX - * @details __AdlAdapterIndexFromADLXGPU__ is used when an ADL function must be called for a GPU obtained from ADLX, and the ADL adapter index is required for that ADL function. - * @ENG_END_DOX - * - * @copydoc IADLMapping_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL AdlAdapterIndexFromADLXGPU (IADLXGPU* pGPU, adlx_int* adlAdapterIndex) = 0; - /** - * @page DOX_IADLMapping_GetADLXDisplayFromADLIds GetADLXDisplayFromADLIds - * @ENG_START_DOX - * @brief Gets the reference counted @ref DOX_IADLXDisplay interface corresponding to the display with the specified ADL adapter index, display index, PCI bus number, device number, and function number. - * @ENG_END_DOX - * @syntax - * @codeStart - * @ref ADLX_RESULT GetADLXDisplayFromADLIds (adlx_int adapterIndex, adlx_int displayIndex, adlx_int bus, adlx_int device, adlx_int function, @ref DOX_IADLXDisplay** ppDisplay) - * @codeEnd - * - * @params - * @paramrow{1.,[in] ,adapterIndex,adlx_int ,@ENG_START_DOX The ADL adapter index of the GPU where the requested display is connected. @ENG_END_DOX} - * @paramrow{2.,[in] ,displayIndex,adlx_int ,@ENG_START_DOX The ADL logical display index of the requested display. @ENG_END_DOX} - * @paramrow{3.,[in] ,bus,adlx_int ,@ENG_START_DOX The unique PCIE bus number of the GPU where the requested display is connected. @ENG_END_DOX} - * @paramrow{4.,[in] ,device,adlx_int ,@ENG_START_DOX The device number of the GPU where the requested display is connected. @ENG_END_DOX} - * @paramrow{5.,[in] ,function,adlx_int ,@ENG_START_DOX The device number of the GPU where the requested display is connected. @ENG_END_DOX} - * @paramrow{6.,[out] ,ppDisplay,@ref DOX_IADLXDisplay**,@ENG_START_DOX The address of the pointer to the returned interface. If the display was not found\, the method sets the dereferenced address __*ppDisplay__ to __nullptr__. @ENG_END_DOX} - * - * @retvalues - * @ENG_START_DOX - * If the @ref DOX_IADLXDisplay interface is successfully returned, __ADLX_OK__ is returned.
- * If the @ref DOX_IADLXDisplay interface is not returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. - * @ENG_END_DOX - * - * @detaileddesc - * @ENG_START_DOX - * @details __GetADLXDisplayFromADLIds__ is used when an ADLX method must be called for a display obtained from ADL. The ADL adapter index corresponds to the GPU to which the display is connected.
- * The display index corresponds to the __ADLDisplayID.iDisplayLogicalIndex__ field for the display.
- * The PCI bus number, device number, and function number parameters correspond to ADL __AdapterInfo.iBusNumber__, __AdapterInfo.iDeviceNumber__, and __AdapterInfo.iFunctionNumber__ for the GPU where that display is connected.
- * The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. - * @ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * In C++ when using a smart pointer for the returned interface there is no need to call @ref DOX_IADLXInterface_Release because the smart pointer calls it internally. - * @ENG_END_DOX - * @copydoc IADLMapping_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetADLXDisplayFromADLIds (adlx_int adapterIndex, adlx_int displayIndex, adlx_int bus, adlx_int device, adlx_int function, IADLXDisplay** ppDisplay) = 0; - /** - * @page DOX_IADLMapping_ADLIdsFromADLXDisplay ADLIdsFromADLXDisplay - * @ENG_START_DOX - * @brief Gets the ADL Adapter index, display index, the PCI bus number, device number, and function number corresponding to the display with the specified @ref DOX_IADLXDisplay interface. - * @ENG_END_DOX - * @syntax - * @codeStart - * @ref ADLX_RESULT ADLIdsFromADLXDisplay (@ref DOX_IADLXDisplay* pDisplay, adlx_int* adapterIndex, adlx_int* displayIndex, adlx_int* bus, adlx_int* device, adlx_int* function) - * @codeEnd - * - * @params - * @paramrow{1.,[in] ,pDisplay, @ref DOX_IADLXDisplay* ,@ENG_START_DOX The pointer to the display interface. @ENG_END_DOX} - * @paramrow{2.,[out] ,adapterIndex, adlx_int* ,@ENG_START_DOX The pointer to a variable where the ADL adapter index of the GPU that drives the requested display is returned. @ENG_END_DOX} - * @paramrow{3.,[out] ,displayIndex, adlx_int* ,@ENG_START_DOX The pointer to a variable where the ADL logical display index of the GPU that drives the requested display is returned. @ENG_END_DOX} - * @paramrow{4.,[out] ,bus,adlx_int*,@ENG_START_DOX The pointer to a variable where the unique PCIE bus number of the GPU that drives the requested display is returned. @ENG_END_DOX} - * @paramrow{5.,[out] ,device,adlx_int*,@ENG_START_DOX The pointer to a variable where the device number of the GPU that drives the requested display is returned. @ENG_END_DOX} - * @paramrow{6.,[out] ,function,adlx_int*,@ENG_START_DOX The pointer to a variable where the function number of the GPU that drives the requested display is returned. @ENG_END_DOX} - * - * @retvalues - * @ENG_START_DOX - * If the @ref DOX_IADLXDisplay interface is successfully returned, __ADLX_OK__ is returned.
- * If the @ref DOX_IADLXDisplay interface is not returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. - * @ENG_END_DOX - * - * @detaileddesc - * @ENG_START_DOX - * @details __ADLIdsFromADLXDisplay__ is used when an ADL function must be called for a display obtained from ADLX, or for the GPU where the display is connected. - * @ENG_END_DOX - * - * @copydoc IADLMapping_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL ADLIdsFromADLXDisplay (IADLXDisplay* pDisplay, adlx_int* adapterIndex, adlx_int* displayIndex, adlx_int* bus, adlx_int* device, adlx_int* function) = 0; - /** - * @page DOX_IADLMapping_GetADLXDesktopFromADLIds GetADLXDesktopFromADLIds - * @ENG_START_DOX - * @brief Gets the reference counted @ref DOX_IADLXDesktop interface corresponding to the desktop with the specified ADL adapter index, VidPnSource ID, the PCI bus number, device number, and function number. - * @ENG_END_DOX - * @syntax - * @codeStart - * @ref ADLX_RESULT GetADLXDesktopFromADLIds (adlx_int adapterIndex, adlx_int VidPnSource, adlx_int bus, adlx_int device, adlx_int function, @ref DOX_IADLXDesktop** ppDesktop) - * @codeEnd - * - * @params - * @paramrow{1.,[in] ,adapterIndex,adlx_int ,@ENG_START_DOX The ADL adapter index of the GPU where the requested desktop is instantiated. @ENG_END_DOX} - * @paramrow{2.,[in] ,VidPnSourceID,adlx_int ,@ENG_START_DOX The zero-based identification number of the video present source in a path of a video present network (VidPN) topology of the requested desktop. @ENG_END_DOX} - * @paramrow{3.,[in] ,bus,adlx_int ,@ENG_START_DOX The unique PCIE bus number of the GPU where the requested desktop is instantiated. @ENG_END_DOX} - * @paramrow{4.,[in] ,device,adlx_int ,@ENG_START_DOX The device number of the GPU where the requested desktop is instantiated. @ENG_END_DOX} - * @paramrow{5.,[in] ,function,adlx_int ,@ENG_START_DOX The function number of the GPU where the requested desktop is instantiated. @ENG_END_DOX} - * @paramrow{6.,[out] ,ppDesktop,@ref DOX_IADLXDesktop**,@ENG_START_DOX The address of the pointer to the returned interface. If the desktop was not found\, the method sets the dereferenced address __*ppDesktop__ to __nullptr__. @ENG_END_DOX} - * - * @retvalues - * @ENG_START_DOX - * If the @ref DOX_IADLXDesktop interface is successfully returned, __ADLX_OK__ is returned.
- * If the arguments are incorrect __ADLX_INVALID_ARGS__ s returned.
- * If @ref DOX_IADLXDesktop interface is not returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes. - * @ENG_END_DOX - * - * @detaileddesc - * @ENG_START_DOX - * @details __GetADLXDesktopFromADLIds__ is used when and ADLX method must be called from a desktop obtained from ADL. The adapter index corresponds to the GPU where the desktop is instantiated.
- * The PCI bus number, device number, and function number parameters correspond to ADL __AdapterInfo.iBusNumber__, __AdapterInfo.iDeviceNumber__, and __AdapterInfo.iFunctionNumber__ of the GPU where that desktop is instantiated.
- * The VidPnSource ID is obtained from __D3DKMT_OPENADAPTERFROMGDIDISPLAYNAME.VidPnSourceId__ field for this desktop.
- * The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. - * @ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * In C++ when using a smart pointer for the returned interface there is no need to call @ref DOX_IADLXInterface_Release because the smart pointer calls it internally. - * @ENG_END_DOX - * - * @copydoc IADLMapping_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetADLXDesktopFromADLIds (adlx_int adapterIndex, adlx_int VidPnSourceId, adlx_int bus, adlx_int device, adlx_int function, IADLXDesktop** ppDesktop) = 0; - /** - * @page DOX_IADLMapping_ADLIdsFromADLXDesktop ADLIdsFromADLXDesktop - * @ENG_START_DOX - * @brief Gets the ADL Adapter index, Vid source ID, the PCIE bus number, device number, and function number corresponding to desktop with the specified @ref DOX_IADLXDesktop interface. - * @ENG_END_DOX - * @syntax - * @codeStart - * @ref ADLX_RESULT ADLIdsFromADLXDesktop (@ref DOX_IADLXDesktop* pDesktop, adlx_int* adapterIndex, adlx_int* VidPnSourceId, adlx_int* bus, adlx_int* device, adlx_int* function) - * @codeEnd - * - * @params - * @paramrow{1.,[in] ,pDesktop, @ref DOX_IADLXDesktop* ,@ENG_START_DOX The pointer to the desktop interface. @ENG_END_DOX} - * @paramrow{2.,[out] ,adapterIndex, adlx_int* ,@ENG_START_DOX The pointer to a variable where the ADL adapter index of the GPU that drives the requested desktop is returned. @ENG_END_DOX} - * @paramrow{3.,[out] ,VidPnSourceId, adlx_int* ,@ENG_START_DOX The pointer to a variable where the zero-based identification number of the video present network (VidPN) topology of the requested desktop is returned. @ENG_END_DOX} - * @paramrow{4.,[out] ,bus,adlx_int*,@ENG_START_DOX The pointer to a variable where the unique PCIE bus number of the GPU that drives the requested desktop is returned. @ENG_END_DOX} - * @paramrow{5.,[out] ,device,adlx_int*,@ENG_START_DOX The pointer to a variable where the device number of the GPU that drives the requested desktop is returned. @ENG_END_DOX} - * @paramrow{6.,[out] ,function,adlx_int*,@ENG_START_DOX The pointer to a variable where the function number of the GPU that drives the requested desktop is returned. @ENG_END_DOX} - * - * @retvalues - * @ENG_START_DOX - * If the @ref DOX_IADLXDesktop interface is successfully returned, __ADLX_OK__ is returned.
- * If the @ref DOX_IADLXDesktop interface is not returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes - * @ENG_END_DOX - * - * @detaileddesc - * @ENG_START_DOX - * @details __ADLIdsFromADLXDesktop__ is used when an ADL function must be called for a desktop obtained from ADLX, or for the GPU that drives the desktop. - * @ENG_END_DOX - * - * @copydoc IADLMapping_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL ADLIdsFromADLXDesktop (IADLXDesktop* pDesktop, adlx_int* adapterIndex, adlx_int* VidPnSourceId, adlx_int* bus, adlx_int* device, adlx_int* function) = 0; - }; // IADLMapping -} //namespace adlx -#else -typedef struct IADLXDisplay IADLXDisplay; -typedef struct IADLXDesktop IADLXDesktop; -typedef struct IADLMapping IADLMapping; - -typedef struct IADLMappingVtbl -{ - //Gets the IADLXGPU object corresponding to a GPU with given bus, device and function number - ADLX_RESULT (ADLX_STD_CALL *GetADLXGPUFromBdf) (IADLMapping* pThis, adlx_int bus, adlx_int device, adlx_int function, IADLXGPU** ppGPU); - //Gets the IADLXGPU object corresponding to a GPU with given ADL adapter index - ADLX_RESULT (ADLX_STD_CALL *GetADLXGPUFromAdlAdapterIndex) (IADLMapping* pThis, adlx_int adlAdapterIndex, IADLXGPU** ppGPU); - //Gets the bus, device and function number corresponding to the given IADLXGPU - ADLX_RESULT (ADLX_STD_CALL *BdfFromADLXGPU) (IADLMapping* pThis, IADLXGPU* pGPU, adlx_int* bus, adlx_int* device, adlx_int* function); - //Gets the ADL Adapter index corresponding to the given IADLXGPU - ADLX_RESULT (ADLX_STD_CALL *AdlAdapterIndexFromADLXGPU) (IADLMapping* pThis, IADLXGPU* pGPU, adlx_int* adlAdapterIndex); - //Gets the display object corresponding to the give ADL ids - ADLX_RESULT (ADLX_STD_CALL *GetADLXDisplayFromADLIds) (IADLMapping* pThis, adlx_int adapterIndex, adlx_int displayIndex, adlx_int bus, adlx_int device, adlx_int function, IADLXDisplay** ppDisplay); - //Gets ADL ids corresponding to the display object - ADLX_RESULT (ADLX_STD_CALL *ADLIdsFromADLXDisplay) (IADLMapping* pThis, IADLXDisplay* pDisplay, adlx_int* adapterIndex, adlx_int* displayIndex, adlx_int* bus, adlx_int* device, adlx_int* function); - //Gets the desktop object corresponding to the give ADL ids - ADLX_RESULT (ADLX_STD_CALL *GetADLXDesktopFromADLIds) (IADLMapping* pThis, adlx_int adapterIndex, adlx_int VidPnSourceId, adlx_int bus, adlx_int device, adlx_int function, IADLXDesktop** ppDesktop); - //Gets ADL ids corresponding to the desktop object - ADLX_RESULT (ADLX_STD_CALL *ADLIdsFromADLXDesktop) (IADLMapping* pThis, IADLXDesktop* pDesktop, adlx_int* adapterIndex, adlx_int* VidPnSourceId, adlx_int* bus, adlx_int* device, adlx_int* function); - -} IADLMappingVtbl; - -struct IADLMapping -{ - const IADLMappingVtbl *pVtbl; -}; -#endif -#pragma endregion IADLMapping interface - -#endif //ADLX_ISYSTEM_H \ No newline at end of file diff --git a/src/adlx/sdk/Include/ISystem1.h b/src/adlx/sdk/Include/ISystem1.h deleted file mode 100644 index 744eb57..0000000 --- a/src/adlx/sdk/Include/ISystem1.h +++ /dev/null @@ -1,237 +0,0 @@ -// -// Copyright (c) 2021 - 2023 Advanced Micro Devices, Inc. All rights reserved. -// -//------------------------------------------------------------------------------------------------- - -#ifndef ADLX_ISYSTEM1_H -#define ADLX_ISYSTEM1_H -#pragma once - -#include "ISystem.h" - -// Interfaces for GPU1 Info -#pragma region IADLXGPU1 interface -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLXGPU1 : public IADLXGPU - { - public: - ADLX_DECLARE_IID(L"IADLXGPU1") - - /** - * @page DOX_IADLXGPU1_PCIBusType PCIBusType - * @ENG_START_DOX @brief Gets the PCI bus type of a GPU. @ENG_END_DOX - * @syntax - * @codeStart - * @ref ADLX_RESULT PCIBusType (@ref ADLX_PCI_BUS_TYPE* busType) - * @codeEnd - * - * @params - * @paramrow{1.,[out],busType,@ref ADLX_PCI_BUS_TYPE*,@ENG_START_DOX The pointer to a variable where the GPU PCI bus type is returned. @ENG_END_DOX} - * - * @retvalues - * @ENG_START_DOX - * If the GPU PCI bus type is successfully returned, __ADLX_OK__ is returned.
- * If the GPU PCI bus type is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
- * @ENG_END_DOX - * - * @copydoc IADLXGPU1_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL PCIBusType(ADLX_PCI_BUS_TYPE* busType) const = 0; - - /** - * @page DOX_IADLXGPU1_PCIBusLaneWidth PCIBusLaneWidth - * @ENG_START_DOX @brief Gets the PCI bus lane width of a GPU. @ENG_END_DOX - * - * @syntax - * @codeStart - * @ref ADLX_RESULT PCIBusLaneWidth (adlx_uint* laneWidth) - * @codeEnd - * - * @params - * @paramrow{1.,[out] ,laneWidth,adlx_uint* ,@ENG_START_DOX The pointer to a variable where the PCI bus lane width is returned. @ENG_END_DOX} - * - * @retvalues - * @ENG_START_DOX If the PCI bus lane width is successfully returned, __ADLX_OK__ is returned.
- * If the PCI bus lane width is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
@ENG_END_DOX - * - * @copydoc IADLXGPU1_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL PCIBusLaneWidth(adlx_uint* laneWidth) const = 0; - - /** - * @page DOX_IADLXGPU1_MultiGPUMode MultiGPUMode - * @ENG_START_DOX @brief Gets the AMD MGPU mode of a GPU. @ENG_END_DOX - * @syntax - * @codeStart - * @ref ADLX_RESULT MultiGPUMode (@ref ADLX_MGPU_MODE* mode) - * @codeEnd - * - * @params - * @paramrow{1.,[out],mode,ADLX_MGPU_MODE*,@ENG_START_DOX The pointer to a variable where the AMD MGPU mode is returned. The variable is __MGPU_NONE__ if the GPU is not part of an AMD MGPU configuration. The variable is __MGPU_PRIMARY__ if the GPU is the primary GPU in an AMD MGPU configuration. The variable is __MGPU_SECONDARY__ if the GPU is the secondary GPU in an AMD MGPU configuration. @ENG_END_DOX} - * - * @retvalues - * @ENG_START_DOX - * If __MultiGPUMode__ is successfully returned, __ADLX_OK__ is returned.
- * If __MultiGPUMode__ is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
- * @ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * AMD MGPU technology harnesses the power of two or more discrete graphics cards working in parallel to dramatically improve performance in games and applications.
- * On systems with AMD MGPU enabled the video output is delivered through the primary GPU and the workload is allocated to all supported GPUs in the setup.
- * @ENG_END_DOX - * - * @copydoc IADLXGPU1_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL MultiGPUMode(ADLX_MGPU_MODE* mode) = 0; - - /** - * @page DOX_IADLXGPU1_ProductName ProductName - * @ENG_START_DOX @brief Gets the product name of a GPU. @ENG_END_DOX - * @syntax - * @codeStart - * @ref ADLX_RESULT ProductName (const char** productName) - * @codeEnd - * - * @params - * @paramrow{1.,[out],productName,const char**,@ENG_START_DOX The pointer to a zero-terminated string where the productName string of a GPU is returned. @ENG_END_DOX} - * - * @retvalues - * @ENG_START_DOX - * If the productName string is successfully returned, __ADLX_OK__ is returned.
- * If the productName string is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
- * @ENG_END_DOX - * - * @addinfo - * @ENG_START_DOX - * The returned memory buffer is valid within a lifetime of the @ref DOX_IADLXGPU1 interface.
- * If the application uses the productName string beyond the lifetime of the @ref DOX_IADLXGPU1 interface, the application must make a copy of the productName string.
- * @ENG_END_DOX - * - * @copydoc IADLXGPU1_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL ProductName(const char** productName) const = 0; - }; //IADLXGPU1 - //---------------------------------------------------------------------------------------------- - typedef IADLXInterfacePtr_T IADLXGPU1Ptr; -} //namespace adlx -#else -ADLX_DECLARE_IID(IADLXGPU1, L"IADLXGPU1"); -typedef struct IADLXGPU1 IADLXGPU1; - -typedef struct IADLXGPU1Vtbl -{ - //IADLXInterface - adlx_long(ADLX_STD_CALL* Acquire)(IADLXGPU1* pThis); - adlx_long(ADLX_STD_CALL* Release)(IADLXGPU1* pThis); - ADLX_RESULT(ADLX_STD_CALL* QueryInterface)(IADLXGPU1* pThis, const wchar_t* interfaceId, void** ppInterface); - //IADLXGPU - ADLX_RESULT(ADLX_STD_CALL* VendorId)(IADLXGPU1* pThis, const char** vendorId); - ADLX_RESULT(ADLX_STD_CALL* ASICFamilyType)(IADLXGPU1* pThis, ADLX_ASIC_FAMILY_TYPE* asicFamilyType); - ADLX_RESULT(ADLX_STD_CALL* Type)(IADLXGPU1* pThis, ADLX_GPU_TYPE* gpuType); - ADLX_RESULT(ADLX_STD_CALL* IsExternal)(IADLXGPU1* pThis, adlx_bool* isExternal); - ADLX_RESULT(ADLX_STD_CALL* Name)(IADLXGPU1* pThis, const char** gpuName); - ADLX_RESULT(ADLX_STD_CALL* DriverPath)(IADLXGPU1* pThis, const char** driverPath); - ADLX_RESULT(ADLX_STD_CALL* PNPString)(IADLXGPU1* pThis, const char** pnpString); - ADLX_RESULT(ADLX_STD_CALL* HasDesktops)(IADLXGPU1* pThis, adlx_bool* hasDesktops); - ADLX_RESULT(ADLX_STD_CALL* TotalVRAM)(IADLXGPU1* pThis, adlx_uint* vramMB); - ADLX_RESULT(ADLX_STD_CALL* VRAMType)(IADLXGPU1* pThis, const char** type); - ADLX_RESULT(ADLX_STD_CALL* BIOSInfo)(IADLXGPU1* pThis, const char** partNumber, const char** version, const char** date); - ADLX_RESULT(ADLX_STD_CALL* DeviceId)(IADLXGPU1* pThis, const char** deviceId); - ADLX_RESULT(ADLX_STD_CALL* RevisionId)(IADLXGPU1* pThis, const char** revisionId); - ADLX_RESULT(ADLX_STD_CALL* SubSystemId)(IADLXGPU1* pThis, const char** subSystemId); - ADLX_RESULT(ADLX_STD_CALL* SubSystemVendorId)(IADLXGPU1* pThis, const char** subSystemVendorId); - ADLX_RESULT(ADLX_STD_CALL* UniqueId)(IADLXGPU1* pThis, adlx_int* uniqueId); - //IADLXGPU1 - ADLX_RESULT(ADLX_STD_CALL* PCIBusType)(IADLXGPU1* pThis, ADLX_PCI_BUS_TYPE* busType); - ADLX_RESULT(ADLX_STD_CALL* PCIBusLaneWidth)(IADLXGPU1* pThis, adlx_uint* laneWidth); - ADLX_RESULT(ADLX_STD_CALL* MultiGPUMode)(IADLXGPU1* pThis, ADLX_MGPU_MODE* mode); - ADLX_RESULT(ADLX_STD_CALL* ProductName)(IADLXGPU1* pThis, const char** productName); -} IADLXGPU1Vtbl; - -struct IADLXGPU1 -{ - const IADLXGPU1Vtbl* pVtbl; -}; -#endif -#pragma endregion IADLXGPU1 interface - - -#pragma region IADLXSystem1 interface -#if defined (__cplusplus) -namespace adlx -{ - class ADLX_NO_VTABLE IADLXPowerTuningServices; - - class ADLX_NO_VTABLE IADLXSystem1 : public IADLXInterface - { - public: - ADLX_DECLARE_IID (L"IADLXSystem1") - - /** - * @page DOX_IADLXSystem1_GetPowerTuningServices GetPowerTuningServices - * @ENG_START_DOX - * @brief Gets the reference counted main interface to the @ref DOX_IADLXPowerTuningServices "Power Tuning" domain. - * @ENG_END_DOX - * - * @syntax - * @codeStart - * @ref ADLX_RESULT GetPowerTuningServices (@ref DOX_IADLXPowerTuningServices** ppPowerTuningServices) - * @codeEnd - * - * @params - * @paramrow{1.,[out] ,ppPowerTuningServices,@ref DOX_IADLXPowerTuningServices**,@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 __*ppPowerTuningServices__ to __nullptr__. @ENG_END_DOX} - * - * @retvalues - * @ENG_START_DOX - * If the interface is successfully returned, __ADLX_OK__ is returned.
- * If the interface is not successfully returned, an error code is returned.
- * Refer to @ref ADLX_RESULT for success codes and error codes.
- * @ENG_END_DOX - * - * @detaileddesc - * @ENG_START_DOX - * @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. - * @ENG_END_DOX - * - * @addinfo - * @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 - * - * @copydoc IADLXSystem1_REQ_TABLE - * - */ - virtual ADLX_RESULT ADLX_STD_CALL GetPowerTuningServices(IADLXPowerTuningServices** ppPowerTuningServices) = 0; - }; //IADLXSystem1 - typedef IADLXInterfacePtr_T IADLXSystem1Ptr; -} //namespace adlx -#else -ADLX_DECLARE_IID (IADLXSystem1, L"IADLXSystem1") - -typedef struct IADLXPowerTuningServices IADLXPowerTuningServices; -typedef struct IADLXSystem1 IADLXSystem1; -typedef struct IADLXSystem1Vtbl -{ - //IADLXInterface - adlx_long (ADLX_STD_CALL *Acquire)(IADLXSystem1* pThis); - adlx_long (ADLX_STD_CALL *Release)(IADLXSystem1* pThis); - ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLXSystem1* pThis, const wchar_t* interfaceId, void** ppInterface); - - //IADLXSystem1 - ADLX_RESULT (ADLX_STD_CALL *GetPowerTuningServices)(IADLXSystem1* pThis, IADLXPowerTuningServices** ppPowerTuningServices); -} IADLXSystem1Vtbl; - -struct IADLXSystem1 { const IADLXSystem1Vtbl*pVtbl; }; -#endif -#pragma endregion IADLXSystem1 interface - -#endif //ADLX_ISYSTEM1_H \ No newline at end of file diff --git a/src/adlx/sdk/Platform/Windows/WinAPIs.c b/src/adlx/sdk/Platform/Windows/WinAPIs.c deleted file mode 100644 index 7bbe1c5..0000000 --- a/src/adlx/sdk/Platform/Windows/WinAPIs.c +++ /dev/null @@ -1,64 +0,0 @@ -// -// Copyright (c) 2021 - 2023 Advanced Micro Devices, Inc. All rights reserved. -// -//------------------------------------------------------------------------------------------------- -//This abstracts Win32 APIs in ADLX ones so we insulate from platform -#include "../../Include/ADLXDefines.h" - -#if defined(_WIN32) // Microsoft compiler - #include -#else -#error define your copiler -#endif -static volatile uint64_t v = 0; - -//---------------------------------------------------------------------------------------- -// threading -//---------------------------------------------------------------------------------------- -adlx_long ADLX_CDECL_CALL adlx_atomic_inc (adlx_long* X) -{ -#if defined(_WIN32) // Microsoft compiler - return InterlockedIncrement((long*)X); -#endif -} - -//---------------------------------------------------------------------------------------- -adlx_long ADLX_CDECL_CALL adlx_atomic_dec (adlx_long* X) -{ -#if defined(_WIN32) // Microsoft compiler - return InterlockedDecrement((long*)X); -#endif - -} - -//---------------------------------------------------------------------------------------- -adlx_handle ADLX_CDECL_CALL adlx_load_library (const TCHAR* filename) -{ -#if defined(METRO_APP) - return LoadPackagedLibrary (filename, 0); -#elif defined(_WIN32) // Microsoft compiler - return LoadLibraryEx(filename, NULL, LOAD_LIBRARY_SEARCH_USER_DIRS | - LOAD_LIBRARY_SEARCH_APPLICATION_DIR | - LOAD_LIBRARY_SEARCH_DEFAULT_DIRS | - LOAD_LIBRARY_SEARCH_SYSTEM32); -#endif -} - -//---------------------------------------------------------------------------------------- -int ADLX_CDECL_CALL adlx_free_library (adlx_handle module) -{ -#if defined(_WIN32) // Microsoft compiler - return FreeLibrary((HMODULE)module) == TRUE; -#endif -} - -//---------------------------------------------------------------------------------------- -void* ADLX_CDECL_CALL adlx_get_proc_address (adlx_handle module, const char* procName) -{ -#if defined(_WIN32) // Microsoft compiler - return (void*)GetProcAddress((HMODULE)module, procName); -#endif -} - - -//#endif //_WIN32 \ No newline at end of file diff --git a/src/adlx/sdk/Platform/Windows/WinAPIs.cpp b/src/adlx/sdk/Platform/Windows/WinAPIs.cpp deleted file mode 100644 index cbbd290..0000000 --- a/src/adlx/sdk/Platform/Windows/WinAPIs.cpp +++ /dev/null @@ -1,63 +0,0 @@ -// -// Copyright (c) 2021 - 2023 Advanced Micro Devices, Inc. All rights reserved. -// -//------------------------------------------------------------------------------------------------- -//This abstracts Win32 APIs in ADLX ones so we insulate from platform -#include "../../Include/ADLXDefines.h" -#include - -#if defined(_WIN32) // Microsoft compiler -#include -#else -#error define your copiler -#endif -static volatile uint64_t v = 0; - -//---------------------------------------------------------------------------------------- -// threading -//---------------------------------------------------------------------------------------- -adlx_long ADLX_CDECL_CALL adlx_atomic_inc (adlx_long* X) -{ -#if defined(_WIN32) // Microsoft compiler - return InterlockedIncrement ((long*)X); -#endif -} - -//---------------------------------------------------------------------------------------- -adlx_long ADLX_CDECL_CALL adlx_atomic_dec (adlx_long* X) -{ -#if defined(_WIN32) // Microsoft compiler - return InterlockedDecrement ((long*)X); -#endif -} - -//---------------------------------------------------------------------------------------- -adlx_handle ADLX_CDECL_CALL adlx_load_library (const TCHAR* filename) -{ -#if defined(METRO_APP) - return LoadPackagedLibrary (filename, 0); -#elif defined(_WIN32) // Microsoft compiler - return ::LoadLibraryEx (filename, nullptr, LOAD_LIBRARY_SEARCH_USER_DIRS | - LOAD_LIBRARY_SEARCH_APPLICATION_DIR | - LOAD_LIBRARY_SEARCH_DEFAULT_DIRS | - LOAD_LIBRARY_SEARCH_SYSTEM32); -#endif -} - -//---------------------------------------------------------------------------------------- -int ADLX_CDECL_CALL adlx_free_library (adlx_handle module) -{ -#if defined(_WIN32) // Microsoft compiler - return ::FreeLibrary ((HMODULE)module) == TRUE; -#endif -} - -//---------------------------------------------------------------------------------------- -void* ADLX_CDECL_CALL adlx_get_proc_address (adlx_handle module, const char* procName) -{ -#if defined(_WIN32) // Microsoft compiler - return (void*)::GetProcAddress ((HMODULE)module, procName); -#endif -} - -//#endif //_WIN32 \ No newline at end of file diff --git a/src/adlx/wrapper.h b/src/adlx/wrapper.h deleted file mode 100644 index 077501f..0000000 --- a/src/adlx/wrapper.h +++ /dev/null @@ -1,6 +0,0 @@ -#include "sdk/Include/ADLX.h" - -// Interfaces to generate bindings for -#include "sdk/Include/ISystem1.h" -#include "sdk/Include/IPerformanceMonitoring.h" -#include "sdk/Include/IPerformanceMonitoring1.h" diff --git a/src/ffi.rs b/src/ffi.rs index cd503e4..4c3a58b 100644 --- a/src/ffi.rs +++ b/src/ffi.rs @@ -1,6 +1,6236 @@ -#![allow(non_upper_case_globals)] -#![allow(non_camel_case_types)] -#![allow(non_snake_case)] -#![allow(dead_code)] +/* automatically generated by rust-bindgen 0.69.2 */ -include!(concat!(env!("OUT_DIR"), "/bindings.rs")); +pub const ADLX_VER_MAJOR: u32 = 1; +pub const ADLX_VER_MINOR: u32 = 2; +pub const ADLX_VER_RELEASE: u32 = 0; +pub const ADLX_VER_BUILD_NUM: u32 = 72; +pub const ADLX_DLL_NAMEW: &[u8; 14] = b"amdadlx64.dll\0"; +pub const ADLX_DLL_NAMEA: &[u8; 14] = b"amdadlx64.dll\0"; +pub const ADLX_DLL_NAME: &[u8; 14] = b"amdadlx64.dll\0"; +pub const ADLX_QUERY_FULL_VERSION_FUNCTION_NAME: &[u8; 21] = b"ADLXQueryFullVersion\0"; +pub const ADLX_QUERY_VERSION_FUNCTION_NAME: &[u8; 17] = b"ADLXQueryVersion\0"; +pub const ADLX_INIT_FUNCTION_NAME: &[u8; 15] = b"ADLXInitialize\0"; +pub const ADLX_INIT_WITH_INCOMPATIBLE_DRIVER_FUNCTION_NAME: &[u8; 37] = + b"ADLXInitializeWithIncompatibleDriver\0"; +pub const ADLX_INIT_WITH_CALLER_ADL_FUNCTION_NAME: &[u8; 28] = b"ADLXInitializeWithCallerAdl\0"; +pub const ADLX_TERMINATE_FUNCTION_NAME: &[u8; 14] = b"ADLXTerminate\0"; +pub type wchar_t = ::std::os::raw::c_ushort; +pub type adlx_int64 = i64; +pub type adlx_int32 = i32; +pub type adlx_uint64 = u64; +pub type adlx_uint32 = u32; +pub type adlx_uint16 = u16; +pub type adlx_uint8 = u8; +pub type adlx_handle = *mut ::std::os::raw::c_void; +pub type adlx_double = f64; +pub type adlx_long = ::std::os::raw::c_long; +pub type adlx_int = adlx_int32; +pub type adlx_uint = adlx_uint32; +pub type adlx_bool = adlx_uint8; +#[doc = "< @ENG_START_DOX This result indicates success. @ENG_END_DOX"] +pub const ADLX_RESULT_ADLX_OK: ADLX_RESULT = 0; +#[doc = "< @ENG_START_DOX This result indicates that the asked action is already enabled. @ENG_END_DOX"] +pub const ADLX_RESULT_ADLX_ALREADY_ENABLED: ADLX_RESULT = 1; +#[doc = "< @ENG_START_DOX This result indicates that ADLX has a unspecified type of initialization. @ENG_END_DOX"] +pub const ADLX_RESULT_ADLX_ALREADY_INITIALIZED: ADLX_RESULT = 2; +#[doc = "< @ENG_START_DOX This result indicates an unspecified failure. @ENG_END_DOX"] +pub const ADLX_RESULT_ADLX_FAIL: ADLX_RESULT = 3; +#[doc = "< @ENG_START_DOX This result indicates that the arguments are invalid. @ENG_END_DOX"] +pub const ADLX_RESULT_ADLX_INVALID_ARGS: ADLX_RESULT = 4; +#[doc = "< @ENG_START_DOX This result indicates that the asked version is incompatible with the current version. @ENG_END_DOX"] +pub const ADLX_RESULT_ADLX_BAD_VER: ADLX_RESULT = 5; +#[doc = "< @ENG_START_DOX This result indicates that an unknown interface was asked. @ENG_END_DOX"] +pub const ADLX_RESULT_ADLX_UNKNOWN_INTERFACE: ADLX_RESULT = 6; +#[doc = "< @ENG_START_DOX This result indicates that the calls were made in an interface after ADLX was terminated. @ENG_END_DOX"] +pub const ADLX_RESULT_ADLX_TERMINATED: ADLX_RESULT = 7; +#[doc = "< @ENG_START_DOX This result indicates that the ADL initialization failed. @ENG_END_DOX"] +pub const ADLX_RESULT_ADLX_ADL_INIT_ERROR: ADLX_RESULT = 8; +#[doc = "< @ENG_START_DOX This result indicates that the item is not found. @ENG_END_DOX"] +pub const ADLX_RESULT_ADLX_NOT_FOUND: ADLX_RESULT = 9; +#[doc = "< @ENG_START_DOX This result indicates that the method was called into an invalid object. @ENG_END_DOX"] +pub const ADLX_RESULT_ADLX_INVALID_OBJECT: ADLX_RESULT = 10; +#[doc = "< @ENG_START_DOX This result indicates that ADLX was terminated with outstanding ADLX objects. Any interface obtained from ADLX points to invalid memory and calls in their methods will result in unexpected behavior. @ENG_END_DOX"] +pub const ADLX_RESULT_ADLX_ORPHAN_OBJECTS: ADLX_RESULT = 11; +#[doc = "< @ENG_START_DOX This result indicates that the asked feature is not supported. @ENG_END_DOX"] +pub const ADLX_RESULT_ADLX_NOT_SUPPORTED: ADLX_RESULT = 12; +#[doc = "< @ENG_START_DOX This result indicates a failure due to an operation currently in progress. @ENG_END_DOX"] +pub const ADLX_RESULT_ADLX_PENDING_OPERATION: ADLX_RESULT = 13; +#[doc = "< @ENG_START_DOX This result indicates that the GPU is inactive. @ENG_END_DOX"] +pub const ADLX_RESULT_ADLX_GPU_INACTIVE: ADLX_RESULT = 14; +#[doc = " @enum ADLX_RESULT\n @ingroup enumerations\n @ENG_START_DOX\n @brief Indicates the result returned from an ADLX function or from an ADLX method.\n @ENG_END_DOX"] +pub type ADLX_RESULT = ::std::os::raw::c_int; +#[doc = "< @ENG_START_DOX This is not a Hybrid Graphics system. @ENG_END_DOX"] +pub const ADLX_HG_TYPE_NONE: ADLX_HG_TYPE = 0; +#[doc = "< @ENG_START_DOX This is an AMD integrated GPU. @ENG_END_DOX"] +pub const ADLX_HG_TYPE_AMD: ADLX_HG_TYPE = 1; +#[doc = "< @ENG_START_DOX This is a non-AMD integrated GPU. @ENG_END_DOX"] +pub const ADLX_HG_TYPE_OTHER: ADLX_HG_TYPE = 2; +#[doc = " @enum ADLX_HG_TYPE\n @ingroup enumerations\n @ENG_START_DOX\n @brief Indicates the type of Hybrid Graphic.\n @ENG_END_DOX"] +pub type ADLX_HG_TYPE = ::std::os::raw::c_int; +#[doc = "< @ENG_START_DOX The ASIC family type is not defined. @ENG_END_DOX"] +pub const ADLX_ASIC_FAMILY_TYPE_ASIC_UNDEFINED: ADLX_ASIC_FAMILY_TYPE = 0; +#[doc = "< @ENG_START_DOX The ASIC family type is discrete. @ENG_END_DOX"] +pub const ADLX_ASIC_FAMILY_TYPE_ASIC_RADEON: ADLX_ASIC_FAMILY_TYPE = 1; +#[doc = "< @ENG_START_DOX The ASIC family type is Firepro. @ENG_END_DOX"] +pub const ADLX_ASIC_FAMILY_TYPE_ASIC_FIREPRO: ADLX_ASIC_FAMILY_TYPE = 2; +#[doc = "< @ENG_START_DOX The ASIC family type is FireMV. @ENG_END_DOX"] +pub const ADLX_ASIC_FAMILY_TYPE_ASIC_FIREMV: ADLX_ASIC_FAMILY_TYPE = 3; +#[doc = "< @ENG_START_DOX The ASIC family type is FireStream. @ENG_END_DOX"] +pub const ADLX_ASIC_FAMILY_TYPE_ASIC_FIRESTREAM: ADLX_ASIC_FAMILY_TYPE = 4; +#[doc = "< @ENG_START_DOX The ASIC family type is Fusion. @ENG_END_DOX"] +pub const ADLX_ASIC_FAMILY_TYPE_ASIC_FUSION: ADLX_ASIC_FAMILY_TYPE = 5; +#[doc = "< @ENG_START_DOX The ASIC family type is Embedded. @ENG_END_DOX"] +pub const ADLX_ASIC_FAMILY_TYPE_ASIC_EMBEDDED: ADLX_ASIC_FAMILY_TYPE = 6; +#[doc = " @enum ADLX_ASIC_FAMILY_TYPE\n @ingroup enumerations\n @ENG_START_DOX\n @brief Indicates the ASIC family type.\n @ENG_END_DOX"] +pub type ADLX_ASIC_FAMILY_TYPE = ::std::os::raw::c_int; +#[doc = "< @ENG_START_DOX The PCI bus type is not defined. @ENG_END_DOX"] +pub const ADLX_PCI_BUS_TYPE_UNDEFINED: ADLX_PCI_BUS_TYPE = 0; +#[doc = "< @ENG_START_DOX The PCI bus type is PCI bus. @ENG_END_DOX"] +pub const ADLX_PCI_BUS_TYPE_PCI: ADLX_PCI_BUS_TYPE = 1; +#[doc = "< @ENG_START_DOX The PCI bus type is AGP bus. @ENG_END_DOX"] +pub const ADLX_PCI_BUS_TYPE_AGP: ADLX_PCI_BUS_TYPE = 2; +#[doc = "< @ENG_START_DOX The PCI bus type is PCI Express bus. @ENG_END_DOX"] +pub const ADLX_PCI_BUS_TYPE_PCIE: ADLX_PCI_BUS_TYPE = 3; +#[doc = "< @ENG_START_DOX The PCI bus type is PCI Express 2nd generation bus. @ENG_END_DOX"] +pub const ADLX_PCI_BUS_TYPE_PCIE_2_0: ADLX_PCI_BUS_TYPE = 4; +#[doc = "< @ENG_START_DOX The PCI bus type is PCI Express 3rd generation bus. @ENG_END_DOX"] +pub const ADLX_PCI_BUS_TYPE_PCIE_3_0: ADLX_PCI_BUS_TYPE = 5; +#[doc = "< @ENG_START_DOX The PCI bus type is PCI Express 4th generation bus. @ENG_END_DOX"] +pub const ADLX_PCI_BUS_TYPE_PCIE_4_0: ADLX_PCI_BUS_TYPE = 6; +#[doc = " @enum ADLX_PCI_BUS_TYPE\n @ingroup enumerations\n @ENG_START_DOX\n @brief Indicates the PCI bus type.\n @ENG_END_DOX"] +pub type ADLX_PCI_BUS_TYPE = ::std::os::raw::c_int; +#[doc = "< @ENG_START_DOX The DP link rate is unknown. @ENG_END_DOX"] +pub const ADLX_DP_LINK_RATE_DP_LINK_RATE_UNKNOWN: ADLX_DP_LINK_RATE = 0; +#[doc = "< @ENG_START_DOX The DP link rate is 1.62 Gbps/Lane. @ENG_END_DOX"] +pub const ADLX_DP_LINK_RATE_DP_LINK_RATE_RBR: ADLX_DP_LINK_RATE = 1; +#[doc = "< @ENG_START_DOX The DP link rate is 2.16 Gbps/Lane. @ENG_END_DOX"] +pub const ADLX_DP_LINK_RATE_DP_LINK_RATE_2_16GBPS: ADLX_DP_LINK_RATE = 2; +#[doc = "< @ENG_START_DOX The DP link rate is 2.43 Gbps/Lane. @ENG_END_DOX"] +pub const ADLX_DP_LINK_RATE_DP_LINK_RATE_2_43GBPS: ADLX_DP_LINK_RATE = 3; +#[doc = "< @ENG_START_DOX The DP link rate is 2.70 Gbps/Lane. @ENG_END_DOX"] +pub const ADLX_DP_LINK_RATE_DP_LINK_RATE_HBR: ADLX_DP_LINK_RATE = 4; +#[doc = "< @ENG_START_DOX The DP link rate is 4.32 Gbps/Lane. @ENG_END_DOX"] +pub const ADLX_DP_LINK_RATE_DP_LINK_RATE_4_32GBPS: ADLX_DP_LINK_RATE = 5; +#[doc = "< @ENG_START_DOX The DP link rate is 5.40 Gbps/Lane. @ENG_END_DOX"] +pub const ADLX_DP_LINK_RATE_DP_LINK_RATE_HBR2: ADLX_DP_LINK_RATE = 6; +#[doc = "< @ENG_START_DOX The DP link rate is 8.10 Gbps/Lane. @ENG_END_DOX"] +pub const ADLX_DP_LINK_RATE_DP_LINK_RATE_HBR3: ADLX_DP_LINK_RATE = 7; +#[doc = "< @ENG_START_DOX The DP link rate is 10 Gbps/Lane. @ENG_END_DOX"] +pub const ADLX_DP_LINK_RATE_DP_LINK_RATE_UHBR10: ADLX_DP_LINK_RATE = 8; +#[doc = "< @ENG_START_DOX The DP link rate is 13.5 Gbps/Lane. @ENG_END_DOX"] +pub const ADLX_DP_LINK_RATE_DP_LINK_RATE_UHBR13D5: ADLX_DP_LINK_RATE = 9; +#[doc = "< @ENG_START_DOX The DP link rate is 20 Gbps/Lane. @ENG_END_DOX"] +pub const ADLX_DP_LINK_RATE_DP_LINK_RATE_UHBR20: ADLX_DP_LINK_RATE = 10; +#[doc = " @enum ADLX_DP_LINK_RATE\n @ingroup enumerations\n @ENG_START_DOX\n @brief Indicates the DP link rate.\n @ENG_END_DOX"] +pub type ADLX_DP_LINK_RATE = ::std::os::raw::c_int; +#[doc = "< @ENG_START_DOX The GPU type is unknown. @ENG_END_DOX"] +pub const ADLX_GPU_TYPE_GPUTYPE_UNDEFINED: ADLX_GPU_TYPE = 0; +#[doc = "< @ENG_START_DOX The GPU type is an integrated GPU. @ENG_END_DOX"] +pub const ADLX_GPU_TYPE_GPUTYPE_INTEGRATED: ADLX_GPU_TYPE = 1; +#[doc = "< @ENG_START_DOX The GPU type is a discrete GPU. @ENG_END_DOX"] +pub const ADLX_GPU_TYPE_GPUTYPE_DISCRETE: ADLX_GPU_TYPE = 2; +#[doc = " @enum ADLX_GPU_TYPE\n @ingroup enumerations\n @ENG_START_DOX\n @brief Indicates the GPU type.\n @ENG_END_DOX"] +pub type ADLX_GPU_TYPE = ::std::os::raw::c_int; +#[doc = "< @ENG_START_DOX The display connector type is unknown. @ENG_END_DOX"] +pub const ADLX_DISPLAY_CONNECTOR_TYPE_DISPLAY_CONTYPE_UNKNOWN: ADLX_DISPLAY_CONNECTOR_TYPE = 0; +#[doc = "< @ENG_START_DOX The display connector type is VGA. @ENG_END_DOX"] +pub const ADLX_DISPLAY_CONNECTOR_TYPE_DISPLAY_CONTYPE_VGA: ADLX_DISPLAY_CONNECTOR_TYPE = 1; +#[doc = "< @ENG_START_DOX The display connector type is DVI-D. @ENG_END_DOX"] +pub const ADLX_DISPLAY_CONNECTOR_TYPE_DISPLAY_CONTYPE_DVI_D: ADLX_DISPLAY_CONNECTOR_TYPE = 2; +#[doc = "< @ENG_START_DOX The display connector type is DVI-I. @ENG_END_DOX"] +pub const ADLX_DISPLAY_CONNECTOR_TYPE_DISPLAY_CONTYPE_DVI_I: ADLX_DISPLAY_CONNECTOR_TYPE = 3; +#[doc = "< @ENG_START_DOX The display connector type is NTSC. @ENG_END_DOX"] +pub const ADLX_DISPLAY_CONNECTOR_TYPE_DISPLAY_CONTYPE_CVDONGLE_NTSC: ADLX_DISPLAY_CONNECTOR_TYPE = + 4; +#[doc = "< @ENG_START_DOX The display connector type is JPN. @ENG_END_DOX"] +pub const ADLX_DISPLAY_CONNECTOR_TYPE_DISPLAY_CONTYPE_CVDONGLE_JPN: ADLX_DISPLAY_CONNECTOR_TYPE = 5; +#[doc = "< @ENG_START_DOX The display connector type is NONI2C-JPN. @ENG_END_DOX"] +pub const ADLX_DISPLAY_CONNECTOR_TYPE_DISPLAY_CONTYPE_CVDONGLE_NONI2C_JPN: + ADLX_DISPLAY_CONNECTOR_TYPE = 6; +#[doc = "< @ENG_START_DOX The display connector type is NONI2C-NTSC. @ENG_END_DOX"] +pub const ADLX_DISPLAY_CONNECTOR_TYPE_DISPLAY_CONTYPE_CVDONGLE_NONI2C_NTSC: + ADLX_DISPLAY_CONNECTOR_TYPE = 7; +#[doc = "< @ENG_START_DOX The display connector type is PROPRIETARY. @ENG_END_DOX"] +pub const ADLX_DISPLAY_CONNECTOR_TYPE_DISPLAY_CONTYPE_PROPRIETARY: ADLX_DISPLAY_CONNECTOR_TYPE = 8; +#[doc = "< @ENG_START_DOX The display connector type is HDMI A. @ENG_END_DOX"] +pub const ADLX_DISPLAY_CONNECTOR_TYPE_DISPLAY_CONTYPE_HDMI_TYPE_A: ADLX_DISPLAY_CONNECTOR_TYPE = 9; +#[doc = "< @ENG_START_DOX The display connector type is HDMI B. @ENG_END_DOX"] +pub const ADLX_DISPLAY_CONNECTOR_TYPE_DISPLAY_CONTYPE_HDMI_TYPE_B: ADLX_DISPLAY_CONNECTOR_TYPE = 10; +#[doc = "< @ENG_START_DOX The display connector type is SVIDEO. @ENG_END_DOX"] +pub const ADLX_DISPLAY_CONNECTOR_TYPE_DISPLAY_CONTYPE_SVIDEO: ADLX_DISPLAY_CONNECTOR_TYPE = 11; +#[doc = "< @ENG_START_DOX The display connector type is COMPOSITE. @ENG_END_DOX"] +pub const ADLX_DISPLAY_CONNECTOR_TYPE_DISPLAY_CONTYPE_COMPOSITE: ADLX_DISPLAY_CONNECTOR_TYPE = 12; +#[doc = "< @ENG_START_DOX The display connector type is RCA. @ENG_END_DOX"] +pub const ADLX_DISPLAY_CONNECTOR_TYPE_DISPLAY_CONTYPE_RCA_3COMPONENT: ADLX_DISPLAY_CONNECTOR_TYPE = + 13; +#[doc = "< @ENG_START_DOX The display connector type is DISPLAYPORT. @ENG_END_DOX"] +pub const ADLX_DISPLAY_CONNECTOR_TYPE_DISPLAY_CONTYPE_DISPLAYPORT: ADLX_DISPLAY_CONNECTOR_TYPE = 14; +#[doc = "< @ENG_START_DOX The display connector type is EDP. @ENG_END_DOX"] +pub const ADLX_DISPLAY_CONNECTOR_TYPE_DISPLAY_CONTYPE_EDP: ADLX_DISPLAY_CONNECTOR_TYPE = 15; +#[doc = "< @ENG_START_DOX The display connector type is WIRELESSDISPLAY. @ENG_END_DOX"] +pub const ADLX_DISPLAY_CONNECTOR_TYPE_DISPLAY_CONTYPE_WIRELESSDISPLAY: ADLX_DISPLAY_CONNECTOR_TYPE = + 16; +#[doc = "< @ENG_START_DOX The display connector type is USB Type-C. @ENG_END_DOX"] +pub const ADLX_DISPLAY_CONNECTOR_TYPE_DISPLAY_CONTYPE_USB_TYPE_C: ADLX_DISPLAY_CONNECTOR_TYPE = 17; +#[doc = " @enum ADLX_DISPLAY_CONNECTOR_TYPE\n @ingroup enumerations\n @ENG_START_DOX\n @brief Indicates the display connector type.\n @ENG_END_DOX"] +pub type ADLX_DISPLAY_CONNECTOR_TYPE = ::std::os::raw::c_int; +#[doc = "< @ENG_START_DOX The display type is an unknown display. @ENG_END_DOX"] +pub const ADLX_DISPLAY_TYPE_DISPLAY_TYPE_UNKOWN: ADLX_DISPLAY_TYPE = 0; +#[doc = "< @ENG_START_DOX The display type is a monitor display. @ENG_END_DOX"] +pub const ADLX_DISPLAY_TYPE_DISPLAY_TYPE_MONITOR: ADLX_DISPLAY_TYPE = 1; +#[doc = "< @ENG_START_DOX The display type is a TV display. @ENG_END_DOX"] +pub const ADLX_DISPLAY_TYPE_DISPLAY_TYPE_TELEVISION: ADLX_DISPLAY_TYPE = 2; +#[doc = "< @ENG_START_DOX The display type is an LCD display. @ENG_END_DOX"] +pub const ADLX_DISPLAY_TYPE_DISPLAY_TYPE_LCD_PANEL: ADLX_DISPLAY_TYPE = 3; +#[doc = "< @ENG_START_DOX The display type is a DFP display. @ENG_END_DOX"] +pub const ADLX_DISPLAY_TYPE_DISPLAY_TYPE_DIGITAL_FLAT_PANEL: ADLX_DISPLAY_TYPE = 4; +#[doc = "< @ENG_START_DOX The display type is a component video display. @ENG_END_DOX"] +pub const ADLX_DISPLAY_TYPE_DISPLAY_TYPE_COMPONENT_VIDEO: ADLX_DISPLAY_TYPE = 5; +#[doc = "< @ENG_START_DOX The display type is a projector display. @ENG_END_DOX"] +pub const ADLX_DISPLAY_TYPE_DISPLAY_TYPE_PROJECTOR: ADLX_DISPLAY_TYPE = 6; +#[doc = " @enum ADLX_DISPLAY_TYPE\n @ingroup enumerations\n @ENG_START_DOX\n @brief Indicates the display type.\n @ENG_END_DOX"] +pub type ADLX_DISPLAY_TYPE = ::std::os::raw::c_int; +#[doc = "< @ENG_START_DOX The display scan type is progressive mode. @ENG_END_DOX"] +pub const ADLX_DISPLAY_SCAN_TYPE_PROGRESSIVE: ADLX_DISPLAY_SCAN_TYPE = 0; +#[doc = "< @ENG_START_DOX The display scan type is interlaced mode. @ENG_END_DOX"] +pub const ADLX_DISPLAY_SCAN_TYPE_INTERLACED: ADLX_DISPLAY_SCAN_TYPE = 1; +#[doc = " @enum ADLX_DISPLAY_SCAN_TYPE\n @ingroup enumerations\n @ENG_START_DOX\n @brief Indicates the display scan type.\n @ENG_END_DOX"] +pub type ADLX_DISPLAY_SCAN_TYPE = ::std::os::raw::c_int; +#[doc = "< @ENG_START_DOX Positive Polarity @ENG_END_DOX"] +pub const ADLX_DISPLAY_TIMING_POLARITY_POSITIVE: ADLX_DISPLAY_TIMING_POLARITY = 0; +#[doc = "< @ENG_START_DOX Negative Polarity @ENG_END_DOX"] +pub const ADLX_DISPLAY_TIMING_POLARITY_NEGATIVE: ADLX_DISPLAY_TIMING_POLARITY = 1; +#[doc = " @enum ADLX_DISPLAY_TIMING_POLARITY\n @ingroup enumerations\n @ENG_START_DOX\n @brief Display timing polarity\n @ENG_END_DOX"] +pub type ADLX_DISPLAY_TIMING_POLARITY = ::std::os::raw::c_int; +#[doc = "< @ENG_START_DOX Maximum pixel clock @ENG_END_DOX"] +pub const ADLX_DISPLAY_TIMING_LIMITATION_PIXEL_CLOCK_MAX: ADLX_DISPLAY_TIMING_LIMITATION = 650000; +#[doc = "< @ENG_START_DOX Minimum pixel clock @ENG_END_DOX"] +pub const ADLX_DISPLAY_TIMING_LIMITATION_PIXEL_CLOCK_MIN: ADLX_DISPLAY_TIMING_LIMITATION = 0; +#[doc = "< @ENG_START_DOX Maximum refresh rate @ENG_END_DOX"] +pub const ADLX_DISPLAY_TIMING_LIMITATION_REFRESH_RATE_MAX: ADLX_DISPLAY_TIMING_LIMITATION = 200; +#[doc = "< @ENG_START_DOX Minimum refresh rate @ENG_END_DOX"] +pub const ADLX_DISPLAY_TIMING_LIMITATION_REFRESH_RATE_MIN: ADLX_DISPLAY_TIMING_LIMITATION = 1; +#[doc = "< @ENG_START_DOX Maximum resolution @ENG_END_DOX"] +pub const ADLX_DISPLAY_TIMING_LIMITATION_RESOLUTION_MAX: ADLX_DISPLAY_TIMING_LIMITATION = 9999; +#[doc = "< @ENG_START_DOX Minimum resolution @ENG_END_DOX"] +pub const ADLX_DISPLAY_TIMING_LIMITATION_RESOLUTION_MIN: ADLX_DISPLAY_TIMING_LIMITATION = 1; +#[doc = " @enum ADLX_DISPLAY_TIMING_LIMITATION\n @ingroup enumerations\n @ENG_START_DOX\n @brief Display timing limitation\n @ENG_END_DOX"] +pub type ADLX_DISPLAY_TIMING_LIMITATION = ::std::os::raw::c_int; +#[doc = "< @ENG_START_DOX The predefined gamut space is GAMUT_SPACE_CCIR_709. @ENG_END_DOX"] +pub const ADLX_GAMUT_SPACE_GAMUT_SPACE_CCIR_709: ADLX_GAMUT_SPACE = 0; +#[doc = "< @ENG_START_DOX The predefined gamut space is GAMUT_SPACE_CCIR_601. @ENG_END_DOX"] +pub const ADLX_GAMUT_SPACE_GAMUT_SPACE_CCIR_601: ADLX_GAMUT_SPACE = 1; +#[doc = "< @ENG_START_DOX The predefined gamut space is GAMUT_SPACE_ADOBE_RGB. @ENG_END_DOX"] +pub const ADLX_GAMUT_SPACE_GAMUT_SPACE_ADOBE_RGB: ADLX_GAMUT_SPACE = 2; +#[doc = "< @ENG_START_DOX The predefined gamut space is GAMUT_SPACE_CIE_RGB. @ENG_END_DOX"] +pub const ADLX_GAMUT_SPACE_GAMUT_SPACE_CIE_RGB: ADLX_GAMUT_SPACE = 3; +#[doc = "< @ENG_START_DOX The predefined gamut space is GAMUT_SPACE_CCIR_2020. @ENG_END_DOX"] +pub const ADLX_GAMUT_SPACE_GAMUT_SPACE_CCIR_2020: ADLX_GAMUT_SPACE = 4; +#[doc = "< @ENG_START_DOX The predefined gamut space is GAMUT_SPACE_CUSTOM. @ENG_END_DOX"] +pub const ADLX_GAMUT_SPACE_GAMUT_SPACE_CUSTOM: ADLX_GAMUT_SPACE = 5; +#[doc = " @enum ADLX_GAMUT_SPACE\n @ingroup enumerations\n @ENG_START_DOX\n @brief Indicates the predefined gamut space.\n @ENG_END_DOX"] +pub type ADLX_GAMUT_SPACE = ::std::os::raw::c_int; +#[doc = "< @ENG_START_DOX The white point setting is 5000k. @ENG_END_DOX"] +pub const ADLX_WHITE_POINT_WHITE_POINT_5000K: ADLX_WHITE_POINT = 0; +#[doc = "< @ENG_START_DOX The white point setting is 6500k. @ENG_END_DOX"] +pub const ADLX_WHITE_POINT_WHITE_POINT_6500K: ADLX_WHITE_POINT = 1; +#[doc = "< @ENG_START_DOX The white point setting is 7500k. @ENG_END_DOX"] +pub const ADLX_WHITE_POINT_WHITE_POINT_7500K: ADLX_WHITE_POINT = 2; +#[doc = "< @ENG_START_DOX The white point setting is 9300k. @ENG_END_DOX"] +pub const ADLX_WHITE_POINT_WHITE_POINT_9300K: ADLX_WHITE_POINT = 3; +#[doc = "< @ENG_START_DOX The white point setting is customized. @ENG_END_DOX"] +pub const ADLX_WHITE_POINT_WHITE_POINT_CUSTOM: ADLX_WHITE_POINT = 4; +#[doc = " @enum ADLX_WHITE_POINT\n @ingroup enumerations\n @ENG_START_DOX\n @brief Indicates the standardized white point setting.\n @ENG_END_DOX"] +pub type ADLX_WHITE_POINT = ::std::os::raw::c_int; +#[doc = "< @ENG_START_DOX The gamma type is unknown. @ENG_END_DOX"] +pub const ADLX_GAMMA_TYPE_UNKNOW: ADLX_GAMMA_TYPE = 0; +#[doc = "< @ENG_START_DOX The gamma type is Degamma Ramp way. @ENG_END_DOX"] +pub const ADLX_GAMMA_TYPE_DEGAMMA_RAMP: ADLX_GAMMA_TYPE = 1; +#[doc = "< @ENG_START_DOX The gamma type is Regamma Ramp way. @ENG_END_DOX"] +pub const ADLX_GAMMA_TYPE_REGAMMA_RAMP: ADLX_GAMMA_TYPE = 2; +#[doc = "< @ENG_START_DOX The gamma type is Degamma coefficients way. @ENG_END_DOX"] +pub const ADLX_GAMMA_TYPE_DEGAMMA_COEFFICIENTS: ADLX_GAMMA_TYPE = 3; +#[doc = "< @ENG_START_DOX The gamma type is Regamma coefficients way. @ENG_END_DOX"] +pub const ADLX_GAMMA_TYPE_REGAMMA_COEFFICIENTS: ADLX_GAMMA_TYPE = 4; +#[doc = " @enum ADLX_GAMMA_TYPE\n @ingroup enumerations\n @ENG_START_DOX\n @brief Indicates the gamma type.\n @ENG_END_DOX"] +pub type ADLX_GAMMA_TYPE = ::std::os::raw::c_int; +#[doc = "< @ENG_START_DOX The orientation is landscape. @ENG_END_DOX"] +pub const ADLX_ORIENTATION_ORIENTATION_LANDSCAPE: ADLX_ORIENTATION = 0; +#[doc = "< @ENG_START_DOX The orientation is Portrait. @ENG_END_DOX"] +pub const ADLX_ORIENTATION_ORIENTATION_PORTRAIT: ADLX_ORIENTATION = 90; +#[doc = "< @ENG_START_DOX The orientation is landscape (flipped). @ENG_END_DOX"] +pub const ADLX_ORIENTATION_ORIENTATION_LANDSCAPE_FLIPPED: ADLX_ORIENTATION = 180; +#[doc = "< @ENG_START_DOX the orientation is Portrait (flipped). @ENG_END_DOX"] +pub const ADLX_ORIENTATION_ORIENTATION_PORTRAIT_FLIPPED: ADLX_ORIENTATION = 270; +#[doc = " @enum ADLX_ORIENTATION\n @ingroup enumerations\n @ENG_START_DOX\n @brief Indicates the orientation.\n @ENG_END_DOX"] +pub type ADLX_ORIENTATION = ::std::os::raw::c_int; +#[doc = "< @ENG_START_DOX Single display desktop: one display showing the entire desktop @ENG_END_DOX"] +pub const ADLX_DESKTOP_TYPE_DESKTOP_SINGLE: ADLX_DESKTOP_TYPE = 0; +#[doc = "< @ENG_START_DOX Duplicate desktop: two or more displays each show the entire desktop @ENG_END_DOX"] +pub const ADLX_DESKTOP_TYPE_DESKTOP_DUPLCATE: ADLX_DESKTOP_TYPE = 1; +#[doc = "< @ENG_START_DOX AMD Eyefinity desktop: two or more displays each show a portion of the desktop @ENG_END_DOX"] +pub const ADLX_DESKTOP_TYPE_DESKTOP_EYEFINITY: ADLX_DESKTOP_TYPE = 2; +#[doc = " @enum ADLX_DESKTOP_TYPE\n @ingroup enumerations\n @ENG_START_DOX\n @brief Types of desktops in respect to display composition\n @ENG_END_DOX"] +pub type ADLX_DESKTOP_TYPE = ::std::os::raw::c_int; +#[doc = "< @ENG_START_DOX The log captures errors, warnings and debug information. @ENG_END_DOX"] +pub const ADLX_LOG_SEVERITY_LDEBUG: ADLX_LOG_SEVERITY = 0; +#[doc = "< @ENG_START_DOX The log captures errors and warnings. @ENG_END_DOX"] +pub const ADLX_LOG_SEVERITY_LWARNING: ADLX_LOG_SEVERITY = 1; +#[doc = "< @ENG_START_DOX The log captures errors. @ENG_END_DOX"] +pub const ADLX_LOG_SEVERITY_LERROR: ADLX_LOG_SEVERITY = 2; +#[doc = " @enum ADLX_LOG_SEVERITY\n @ingroup enumerations\n @ENG_START_DOX\n @brief Indicates the severity level for ADLX logs.\n @ENG_END_DOX\n"] +pub type ADLX_LOG_SEVERITY = ::std::os::raw::c_int; +#[doc = "< @ENG_START_DOX The log destination is a file. @ENG_END_DOX"] +pub const ADLX_LOG_DESTINATION_LOCALFILE: ADLX_LOG_DESTINATION = 0; +#[doc = "< @ENG_START_DOX The log destination is the application debugger. @ENG_END_DOX"] +pub const ADLX_LOG_DESTINATION_DBGVIEW: ADLX_LOG_DESTINATION = 1; +#[doc = "< @ENG_START_DOX The log destination is the application. @ENG_END_DOX"] +pub const ADLX_LOG_DESTINATION_APPLICATION: ADLX_LOG_DESTINATION = 2; +#[doc = " @enum ADLX_LOG_DESTINATION\n @ingroup enumerations\n @ENG_START_DOX\n @brief Indicates the location of the log traces that are generated from the internal code execution of ADLX.\n @ENG_END_DOX\n"] +pub type ADLX_LOG_DESTINATION = ::std::os::raw::c_int; +#[doc = "< @ENG_START_DOX The scale mode preserves aspect ratio. @ENG_END_DOX"] +pub const ADLX_SCALE_MODE_PRESERVE_ASPECT_RATIO: ADLX_SCALE_MODE = 0; +#[doc = "< @ENG_START_DOX The scale mode extends to full panel. @ENG_END_DOX"] +pub const ADLX_SCALE_MODE_FULL_PANEL: ADLX_SCALE_MODE = 1; +#[doc = "< @ENG_START_DOX The scale mode is centered on screen. @ENG_END_DOX"] +pub const ADLX_SCALE_MODE_CENTERED: ADLX_SCALE_MODE = 2; +#[doc = " @enum ADLX_SCALE_MODE\n @ingroup enumerations\n @ENG_START_DOX\n @brief Indicates the methods to stretch and position the image to fit on the display.\n @ENG_END_DOX\n"] +pub type ADLX_SCALE_MODE = ::std::os::raw::c_int; +pub const ADLX_COLOR_DEPTH_BPC_UNKNOWN: ADLX_COLOR_DEPTH = 0; +#[doc = "< @ENG_START_DOX A color component/pixel with 6 bits @ENG_END_DOX"] +pub const ADLX_COLOR_DEPTH_BPC_6: ADLX_COLOR_DEPTH = 1; +#[doc = "< @ENG_START_DOX A color component/pixel with 8 bits @ENG_END_DOX"] +pub const ADLX_COLOR_DEPTH_BPC_8: ADLX_COLOR_DEPTH = 2; +#[doc = "< @ENG_START_DOX A color component/pixel with 10 bits @ENG_END_DOX"] +pub const ADLX_COLOR_DEPTH_BPC_10: ADLX_COLOR_DEPTH = 3; +#[doc = "< @ENG_START_DOX A color component/pixel with 12 bits @ENG_END_DOX"] +pub const ADLX_COLOR_DEPTH_BPC_12: ADLX_COLOR_DEPTH = 4; +#[doc = "< @ENG_START_DOX A color component/pixel with 14 bits @ENG_END_DOX"] +pub const ADLX_COLOR_DEPTH_BPC_14: ADLX_COLOR_DEPTH = 5; +#[doc = "< @ENG_START_DOX A color component/pixel with 16 bits @ENG_END_DOX"] +pub const ADLX_COLOR_DEPTH_BPC_16: ADLX_COLOR_DEPTH = 6; +#[doc = " @enum ADLX_COLOR_DEPTH\n @ingroup enumerations\n @ENG_START_DOX\n @brief Indicates the color/bit depth, which is the number of bits used to indicate the color of a single pixel.\n @ENG_END_DOX\n"] +pub type ADLX_COLOR_DEPTH = ::std::os::raw::c_int; +#[doc = "< @ENG_START_DOX The pixel format is unknown. @ENG_END_DOX"] +pub const ADLX_PIXEL_FORMAT_FORMAT_UNKNOWN: ADLX_PIXEL_FORMAT = 0; +#[doc = "< @ENG_START_DOX The pixel format is RGB 4:4:4 PC Standard (Full RGB). @ENG_END_DOX"] +pub const ADLX_PIXEL_FORMAT_RGB_444_FULL: ADLX_PIXEL_FORMAT = 1; +#[doc = "< @ENG_START_DOX The pixel format is YCbCr 4:4:4. @ENG_END_DOX"] +pub const ADLX_PIXEL_FORMAT_YCBCR_444: ADLX_PIXEL_FORMAT = 2; +#[doc = "< @ENG_START_DOX The pixel format is YCbCr 4:2:2. @ENG_END_DOX"] +pub const ADLX_PIXEL_FORMAT_YCBCR_422: ADLX_PIXEL_FORMAT = 3; +#[doc = "< @ENG_START_DOX The pixel format is RGB 4:4:4 Studio (Limited RGB). @ENG_END_DOX"] +pub const ADLX_PIXEL_FORMAT_RGB_444_LIMITED: ADLX_PIXEL_FORMAT = 4; +#[doc = "< @ENG_START_DOX The pixel format is YCbCr 4:2:0 Pixel Format. @ENG_END_DOX"] +pub const ADLX_PIXEL_FORMAT_YCBCR_420: ADLX_PIXEL_FORMAT = 5; +#[doc = " @enum ADLX_PIXEL_FORMAT\n @ingroup enumerations\n @ENG_START_DOX\n @brief Indicates the pixel format to encode images for the display.\n @ENG_END_DOX\n"] +pub type ADLX_PIXEL_FORMAT = ::std::os::raw::c_int; +#[doc = "< @ENG_START_DOX Coordinated Video Timings(CVT) VESA standard for generating and defining the display timings. @ENG_END_DOX"] +pub const ADLX_TIMING_STANDARD_CVT: ADLX_TIMING_STANDARD = 0; +#[doc = "< @ENG_START_DOX Coordinated Video Timings-Reduced Blanking(CVT-RB).Reduces horizontal and vertical blanking\nperiods and allows a lower pixel clock rate and higher frame rates. @ENG_END_DOX"] +pub const ADLX_TIMING_STANDARD_CVT_RB: ADLX_TIMING_STANDARD = 1; +#[doc = "< @ENG_START_DOX Generalized Timing Formula(GTF). A method of generating industry standard display timings. @ENG_END_DOX"] +pub const ADLX_TIMING_STANDARD_GTF: ADLX_TIMING_STANDARD = 2; +#[doc = "< @ENG_START_DOX Display Monitor Timmings(DMT). VESA standard that lists pre-defined display timings for various resolutions and display sizes. @ENG_END_DOX"] +pub const ADLX_TIMING_STANDARD_DMT: ADLX_TIMING_STANDARD = 3; +#[doc = "< @ENG_START_DOX Manual control @ENG_END_DOX"] +pub const ADLX_TIMING_STANDARD_MANUAL: ADLX_TIMING_STANDARD = 4; +#[doc = " @enum ADLX_TIMING_STANDARD\n @ingroup enumerations\n @ENG_START_DOX\n @brief Timing standard for custom resolution\n @ENG_END_DOX\n"] +pub type ADLX_TIMING_STANDARD = ::std::os::raw::c_int; +#[doc = "< @ENG_START_DOX VSync is always off. @ENG_END_DOX"] +pub const ADLX_WAIT_FOR_VERTICAL_REFRESH_MODE_WFVR_ALWAYS_OFF: ADLX_WAIT_FOR_VERTICAL_REFRESH_MODE = + 0; +#[doc = "< @ENG_START_DOX VSync is off, unless specified by the application. @ENG_END_DOX"] +pub const ADLX_WAIT_FOR_VERTICAL_REFRESH_MODE_WFVR_OFF_UNLESS_APP_SPECIFIES: + ADLX_WAIT_FOR_VERTICAL_REFRESH_MODE = 1; +#[doc = "< @ENG_START_DOX VSync is on, unless specified by application. @ENG_END_DOX"] +pub const ADLX_WAIT_FOR_VERTICAL_REFRESH_MODE_WFVR_ON_UNLESS_APP_SPECIFIES: + ADLX_WAIT_FOR_VERTICAL_REFRESH_MODE = 2; +#[doc = "< @ENG_START_DOX VSync is always on. @ENG_END_DOX"] +pub const ADLX_WAIT_FOR_VERTICAL_REFRESH_MODE_WFVR_ALWAYS_ON: ADLX_WAIT_FOR_VERTICAL_REFRESH_MODE = + 3; +#[doc = " @enum ADLX_WAIT_FOR_VERTICAL_REFRESH_MODE\n @ingroup enumerations\n @ENG_START_DOX\n @brief Indicates the modes of VSync settings.\n @ENG_END_DOX"] +pub type ADLX_WAIT_FOR_VERTICAL_REFRESH_MODE = ::std::os::raw::c_int; +#[doc = "< @ENG_START_DOX The anti-aliasing mode uses application settings. @ENG_END_DOX"] +pub const ADLX_ANTI_ALIASING_MODE_AA_MODE_USE_APP_SETTINGS: ADLX_ANTI_ALIASING_MODE = 0; +#[doc = "< @ENG_START_DOX The anti-aliasing mode enhances the application settings. @ENG_END_DOX"] +pub const ADLX_ANTI_ALIASING_MODE_AA_MODE_ENHANCE_APP_SETTINGS: ADLX_ANTI_ALIASING_MODE = 1; +#[doc = "< @ENG_START_DOX The anti-aliasing mode overrides the application settings. @ENG_END_DOX"] +pub const ADLX_ANTI_ALIASING_MODE_AA_MODE_OVERRIDE_APP_SETTINGS: ADLX_ANTI_ALIASING_MODE = 2; +#[doc = " @enum ADLX_ANTI_ALIASING_MODE\n @ingroup enumerations\n @ENG_START_DOX\n @brief Indicates the anti-aliasing mode.\n @ENG_END_DOX"] +pub type ADLX_ANTI_ALIASING_MODE = ::std::os::raw::c_int; +#[doc = "< @ENG_START_DOX The anti-aliasing level is invalid. @ENG_END_DOX"] +pub const ADLX_ANTI_ALIASING_LEVEL_AA_LEVEL_INVALID: ADLX_ANTI_ALIASING_LEVEL = 0; +#[doc = "< @ENG_START_DOX The anti-aliasing level is 2X. @ENG_END_DOX"] +pub const ADLX_ANTI_ALIASING_LEVEL_AA_LEVEL_2X: ADLX_ANTI_ALIASING_LEVEL = 2; +#[doc = "< @ENG_START_DOX The anti-aliasing level is 2XEQ. @ENG_END_DOX"] +pub const ADLX_ANTI_ALIASING_LEVEL_AA_LEVEL_2XEQ: ADLX_ANTI_ALIASING_LEVEL = 3; +#[doc = "< @ENG_START_DOX The anti-aliasing level is 4X. @ENG_END_DOX"] +pub const ADLX_ANTI_ALIASING_LEVEL_AA_LEVEL_4X: ADLX_ANTI_ALIASING_LEVEL = 4; +#[doc = "< @ENG_START_DOX The anti-aliasing level is 4XEQ. @ENG_END_DOX"] +pub const ADLX_ANTI_ALIASING_LEVEL_AA_LEVEL_4XEQ: ADLX_ANTI_ALIASING_LEVEL = 5; +#[doc = "< @ENG_START_DOX The anti-aliasing level is 8X. @ENG_END_DOX"] +pub const ADLX_ANTI_ALIASING_LEVEL_AA_LEVEL_8X: ADLX_ANTI_ALIASING_LEVEL = 8; +#[doc = "< @ENG_START_DOX The anti-aliasing level is 8XEQ. @ENG_END_DOX"] +pub const ADLX_ANTI_ALIASING_LEVEL_AA_LEVEL_8XEQ: ADLX_ANTI_ALIASING_LEVEL = 9; +#[doc = " @enum ADLX_ANTI_ALIASING_LEVEL\n @ingroup enumerations\n @ENG_START_DOX\n @brief Indicates the anti-aliasing level.\n @ENG_END_DOX"] +pub type ADLX_ANTI_ALIASING_LEVEL = ::std::os::raw::c_int; +#[doc = "< @ENG_START_DOX The multi-sampling method. @ENG_END_DOX"] +pub const ADLX_ANTI_ALIASING_METHOD_AA_METHOD_MULTISAMPLING: ADLX_ANTI_ALIASING_METHOD = 0; +#[doc = "< @ENG_START_DOX The adaptive multi-sampling method. @ENG_END_DOX"] +pub const ADLX_ANTI_ALIASING_METHOD_AA_METHOD_ADAPTIVE_MULTISAMPLING: ADLX_ANTI_ALIASING_METHOD = 1; +#[doc = "< @ENG_START_DOX The super-sampling method. @ENG_END_DOX"] +pub const ADLX_ANTI_ALIASING_METHOD_AA_METHOD_SUPERSAMPLING: ADLX_ANTI_ALIASING_METHOD = 2; +#[doc = " @enum ADLX_ANTI_ALIASING_METHOD\n @ingroup enumerations\n @ENG_START_DOX\n @brief Indicates the anti-aliasing method.\n @ENG_END_DOX"] +pub type ADLX_ANTI_ALIASING_METHOD = ::std::os::raw::c_int; +#[doc = "< @ENG_START_DOX The Anisotropic Filtering level is invalid. @ENG_END_DOX"] +pub const ADLX_ANISOTROPIC_FILTERING_LEVEL_AF_LEVEL_INVALID: ADLX_ANISOTROPIC_FILTERING_LEVEL = 0; +#[doc = "< @ENG_START_DOX The Anisotropic Filtering level is 2X. @ENG_END_DOX"] +pub const ADLX_ANISOTROPIC_FILTERING_LEVEL_AF_LEVEL_X2: ADLX_ANISOTROPIC_FILTERING_LEVEL = 2; +#[doc = "< @ENG_START_DOX The Anisotropic Filtering level is 4X. @ENG_END_DOX"] +pub const ADLX_ANISOTROPIC_FILTERING_LEVEL_AF_LEVEL_X4: ADLX_ANISOTROPIC_FILTERING_LEVEL = 4; +#[doc = "< @ENG_START_DOX The Anisotropic Filtering level is 8X. @ENG_END_DOX"] +pub const ADLX_ANISOTROPIC_FILTERING_LEVEL_AF_LEVEL_X8: ADLX_ANISOTROPIC_FILTERING_LEVEL = 8; +#[doc = "< @ENG_START_DOX The Anisotropic Filtering level is 16X. @ENG_END_DOX"] +pub const ADLX_ANISOTROPIC_FILTERING_LEVEL_AF_LEVEL_X16: ADLX_ANISOTROPIC_FILTERING_LEVEL = 16; +#[doc = " @enum ADLX_ANISOTROPIC_FILTERING_LEVEL\n @ingroup enumerations\n @ENG_START_DOX\n @brief Indicates the Anisotropic Filtering level.\n @ENG_END_DOX"] +pub type ADLX_ANISOTROPIC_FILTERING_LEVEL = ::std::os::raw::c_int; +#[doc = "< @ENG_START_DOX This mode uses AMD optimization. @ENG_END_DOX"] +pub const ADLX_TESSELLATION_MODE_T_MODE_AMD_OPTIMIZED: ADLX_TESSELLATION_MODE = 0; +#[doc = "< @ENG_START_DOX This mode uses application settings. @ENG_END_DOX"] +pub const ADLX_TESSELLATION_MODE_T_MODE_USE_APP_SETTINGS: ADLX_TESSELLATION_MODE = 1; +#[doc = "< @ENG_START_DOX This mode uses override application settings. @ENG_END_DOX"] +pub const ADLX_TESSELLATION_MODE_T_MODE_OVERRIDE_APP_SETTINGS: ADLX_TESSELLATION_MODE = 2; +#[doc = " @enum ADLX_TESSELLATION_MODE\n @ingroup enumerations\n @ENG_START_DOX\n @brief Indicates the tessellation setting on a GPU.\n @ENG_END_DOX"] +pub type ADLX_TESSELLATION_MODE = ::std::os::raw::c_int; +#[doc = "< @ENG_START_DOX The tessellation level is Off. @ENG_END_DOX"] +pub const ADLX_TESSELLATION_LEVEL_T_LEVEL_OFF: ADLX_TESSELLATION_LEVEL = 1; +#[doc = "< @ENG_START_DOX The tessellation level is 2X. @ENG_END_DOX"] +pub const ADLX_TESSELLATION_LEVEL_T_LEVEL_2X: ADLX_TESSELLATION_LEVEL = 2; +#[doc = "< @ENG_START_DOX The tessellation level is 4X. @ENG_END_DOX"] +pub const ADLX_TESSELLATION_LEVEL_T_LEVEL_4X: ADLX_TESSELLATION_LEVEL = 4; +#[doc = "< @ENG_START_DOX The tessellation level is 6X. @ENG_END_DOX"] +pub const ADLX_TESSELLATION_LEVEL_T_LEVEL_6X: ADLX_TESSELLATION_LEVEL = 6; +#[doc = "< @ENG_START_DOX The tessellation level is 8X. @ENG_END_DOX"] +pub const ADLX_TESSELLATION_LEVEL_T_LEVEL_8X: ADLX_TESSELLATION_LEVEL = 8; +#[doc = "< @ENG_START_DOX The tessellation level is 16X. @ENG_END_DOX"] +pub const ADLX_TESSELLATION_LEVEL_T_LEVEL_16X: ADLX_TESSELLATION_LEVEL = 16; +#[doc = "< @ENG_START_DOX The tessellation level is 32X. @ENG_END_DOX"] +pub const ADLX_TESSELLATION_LEVEL_T_LEVEL_32X: ADLX_TESSELLATION_LEVEL = 32; +#[doc = "< @ENG_START_DOX The tessellation level is 64X. @ENG_END_DOX"] +pub const ADLX_TESSELLATION_LEVEL_T_LEVEL_64X: ADLX_TESSELLATION_LEVEL = 64; +#[doc = " @enum ADLX_TESSELLATION_LEVEL\n @ingroup enumerations\n @ENG_START_DOX\n @brief Indicates the tessellation level on a GPU.\n @ENG_END_DOX"] +pub type ADLX_TESSELLATION_LEVEL = ::std::os::raw::c_int; +#[doc = "< @ENG_START_DOX The memory timing is default. @ENG_END_DOX"] +pub const ADLX_MEMORYTIMING_DESCRIPTION_MEMORYTIMING_DEFAULT: ADLX_MEMORYTIMING_DESCRIPTION = 0; +#[doc = "< @ENG_START_DOX The memory timing is fast timing. @ENG_END_DOX"] +pub const ADLX_MEMORYTIMING_DESCRIPTION_MEMORYTIMING_FAST_TIMING: ADLX_MEMORYTIMING_DESCRIPTION = 1; +#[doc = "< @ENG_START_DOX The memory timing is fast timing level 2. @ENG_END_DOX"] +pub const ADLX_MEMORYTIMING_DESCRIPTION_MEMORYTIMING_FAST_TIMING_LEVEL_2: + ADLX_MEMORYTIMING_DESCRIPTION = 2; +#[doc = "< @ENG_START_DOX The memory timing is automatic. @ENG_END_DOX"] +pub const ADLX_MEMORYTIMING_DESCRIPTION_MEMORYTIMING_AUTOMATIC: ADLX_MEMORYTIMING_DESCRIPTION = 3; +#[doc = "< @ENG_START_DOX The memory timing is level 1. @ENG_END_DOX"] +pub const ADLX_MEMORYTIMING_DESCRIPTION_MEMORYTIMING_MEMORYTIMING_LEVEL_1: + ADLX_MEMORYTIMING_DESCRIPTION = 4; +#[doc = "< @ENG_START_DOX The memory timing is level 2. @ENG_END_DOX"] +pub const ADLX_MEMORYTIMING_DESCRIPTION_MEMORYTIMING_MEMORYTIMING_LEVEL_2: + ADLX_MEMORYTIMING_DESCRIPTION = 5; +#[doc = " @enum ADLX_MEMORYTIMING_DESCRIPTION\n @ingroup enumerations\n @ENG_START_DOX\n @brief Indicates the priority of the log entry.\n @ENG_END_DOX"] +pub type ADLX_MEMORYTIMING_DESCRIPTION = ::std::os::raw::c_int; +#[doc = "< @ENG_START_DOX The I2C line is OEM. @ENG_END_DOX"] +pub const ADLX_I2C_LINE_I2C_LINE_OEM: ADLX_I2C_LINE = 1; +#[doc = "< @ENG_START_DOX The I2C line is Over Driver Control. @ENG_END_DOX"] +pub const ADLX_I2C_LINE_I2C_LINE_OD_CONTROL: ADLX_I2C_LINE = 2; +#[doc = "< @ENG_START_DOX The I2C line is OEM2. @ENG_END_DOX"] +pub const ADLX_I2C_LINE_I2C_LINE_OEM2: ADLX_I2C_LINE = 3; +#[doc = "< @ENG_START_DOX The I2C line is OEM3. @ENG_END_DOX"] +pub const ADLX_I2C_LINE_I2C_LINE_OEM3: ADLX_I2C_LINE = 4; +#[doc = "< @ENG_START_DOX The I2C line is OEM4. @ENG_END_DOX"] +pub const ADLX_I2C_LINE_I2C_LINE_OEM4: ADLX_I2C_LINE = 5; +#[doc = "< @ENG_START_DOX The I2C line is OEM5. @ENG_END_DOX"] +pub const ADLX_I2C_LINE_I2C_LINE_OEM5: ADLX_I2C_LINE = 6; +#[doc = "< @ENG_START_DOX The I2C line is OEM6. @ENG_END_DOX"] +pub const ADLX_I2C_LINE_I2C_LINE_OEM6: ADLX_I2C_LINE = 7; +#[doc = " @enum ADLX_I2C_LINE\n @ingroup enumerations\n @ENG_START_DOX\n @brief Indicates the I2C line options.\n @ENG_END_DOX"] +pub type ADLX_I2C_LINE = ::std::os::raw::c_int; +#[doc = "< @ENG_START_DOX The event has an unknown trigger. @ENG_END_DOX"] +pub const ADLX_SYNC_ORIGIN_SYNC_ORIGIN_UNKNOWN: ADLX_SYNC_ORIGIN = 1; +#[doc = "< @ENG_START_DOX The event is triggered by a change in settings using ADLX in this application. @ENG_END_DOX"] +pub const ADLX_SYNC_ORIGIN_SYNC_ORIGIN_INTERNAL: ADLX_SYNC_ORIGIN = 2; +#[doc = "< @ENG_START_DOX The event is triggered by a change in settings using ADLX in another application. @ENG_END_DOX"] +pub const ADLX_SYNC_ORIGIN_SYNC_ORIGIN_EXTERNAL: ADLX_SYNC_ORIGIN = 3; +#[doc = " @enum ADLX_SYNC_ORIGIN\n @ingroup enumerations\n @ENG_START_DOX\n @brief Indicates the origin of an event.\n @ENG_END_DOX"] +pub type ADLX_SYNC_ORIGIN = ::std::os::raw::c_int; +#[doc = "< @ENG_START_DOX The transfer function is sRGB. @ENG_END_DOX"] +pub const ADLX_3DLUT_TRANSFER_FUNCTION_TF_SRGB: ADLX_3DLUT_TRANSFER_FUNCTION = 1; +#[doc = "< @ENG_START_DOX The transfer function is PQ. @ENG_END_DOX"] +pub const ADLX_3DLUT_TRANSFER_FUNCTION_TF_PQ: ADLX_3DLUT_TRANSFER_FUNCTION = 2; +#[doc = "< @ENG_START_DOX The transfer function is G22. @ENG_END_DOX"] +pub const ADLX_3DLUT_TRANSFER_FUNCTION_TF_G22: ADLX_3DLUT_TRANSFER_FUNCTION = 3; +#[doc = " @enum ADLX_3DLUT_TRANSFER_FUNCTION\n @ingroup enumerations\n @ENG_START_DOX\n @brief Indicates the User 3D LUT transfer function.\n @ENG_END_DOX"] +pub type ADLX_3DLUT_TRANSFER_FUNCTION = ::std::os::raw::c_int; +#[doc = "< @ENG_START_DOX The color space is sRGB. @ENG_END_DOX"] +pub const ADLX_3DLUT_COLORSPACE_CS_SRGB: ADLX_3DLUT_COLORSPACE = 1; +#[doc = "< @ENG_START_DOX The color space is BT2020. @ENG_END_DOX"] +pub const ADLX_3DLUT_COLORSPACE_CS_BT2020: ADLX_3DLUT_COLORSPACE = 2; +#[doc = "< @ENG_START_DOX The color space is DCIP3. @ENG_END_DOX"] +pub const ADLX_3DLUT_COLORSPACE_CS_DCIP3: ADLX_3DLUT_COLORSPACE = 3; +#[doc = "< @ENG_START_DOX The color space is native. @ENG_END_DOX"] +pub const ADLX_3DLUT_COLORSPACE_CS_NATIVE: ADLX_3DLUT_COLORSPACE = 4; +#[doc = " @enum ADLX_3DLUT_COLORSPACE\n @ingroup enumerations\n @ENG_START_DOX\n @brief Indicates the custom 3D LUT color space.\n @ENG_END_DOX"] +pub type ADLX_3DLUT_COLORSPACE = ::std::os::raw::c_int; +#[doc = "< @ENG_START_DOX The bias control type is auto. @ENG_END_DOX"] +pub const ADLX_SSM_BIAS_MODE_SSM_BIAS_AUTO: ADLX_SSM_BIAS_MODE = 0; +#[doc = "< @ENG_START_DOX The bias control type is manual. @ENG_END_DOX"] +pub const ADLX_SSM_BIAS_MODE_SSM_BIAS_MANUAL: ADLX_SSM_BIAS_MODE = 1; +#[doc = " @enum ADLX_SSM_BIAS_MODE\n @ingroup enumerations\n @ENG_START_DOX\n @brief AMD SmartShift Max bias mode.\n @ENG_END_DOX"] +pub type ADLX_SSM_BIAS_MODE = ::std::os::raw::c_int; +#[doc = "< @ENG_START_DOX The Antilag level is AntiLag. @ENG_END_DOX"] +pub const ADLX_ANTILAG_STATE_ANTILAG: ADLX_ANTILAG_STATE = 0; +#[doc = "< @ENG_START_DOX The Antilag level is AntiLag Next. @ENG_END_DOX"] +pub const ADLX_ANTILAG_STATE_ANTILAGNEXT: ADLX_ANTILAG_STATE = 1; +#[doc = " @enum ADLX_ANTILAG_STATE\n @ingroup enumerations\n @ENG_START_DOX\n @brief Indicates the state of Anti Lag.\n @ENG_END_DOX"] +pub type ADLX_ANTILAG_STATE = ::std::os::raw::c_int; +#[doc = "< @ENG_START_DOX The GPU is not part of an AMD MGPU configuration. @ENG_END_DOX"] +pub const ADLX_MGPU_MODE_MGPU_NONE: ADLX_MGPU_MODE = 0; +#[doc = "< @ENG_START_DOX The GPU is the primary GPU in an AMD MGPU configuration. @ENG_END_DOX"] +pub const ADLX_MGPU_MODE_MGPU_PRIMARY: ADLX_MGPU_MODE = 1; +#[doc = "< @ENG_START_DOX The GPU is the secondary GPU in an AMD MGPU configuration. @ENG_END_DOX"] +pub const ADLX_MGPU_MODE_MGPU_SECONDARY: ADLX_MGPU_MODE = 2; +#[doc = " @enum ADLX_MGPU_MODE\n @ingroup enumerations\n @ENG_START_DOX\n @brief Indicates the AMD MGPU mode.\n @ENG_END_DOX"] +pub type ADLX_MGPU_MODE = ::std::os::raw::c_int; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct IADLXInterfaceVtbl { + pub Acquire: + ::std::option::Option adlx_long>, + pub Release: + ::std::option::Option adlx_long>, + pub QueryInterface: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXInterface, + interfaceId: *const wchar_t, + ppInterface: *mut *mut ::std::os::raw::c_void, + ) -> ADLX_RESULT, + >, +} +#[test] +fn bindgen_test_layout_IADLXInterfaceVtbl() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 24usize, + concat!("Size of: ", stringify!(IADLXInterfaceVtbl)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(IADLXInterfaceVtbl)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Acquire) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(IADLXInterfaceVtbl), + "::", + stringify!(Acquire) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Release) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(IADLXInterfaceVtbl), + "::", + stringify!(Release) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).QueryInterface) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(IADLXInterfaceVtbl), + "::", + stringify!(QueryInterface) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct IADLXInterface { + pub pVtbl: *const IADLXInterfaceVtbl, +} +#[test] +fn bindgen_test_layout_IADLXInterface() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(IADLXInterface)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(IADLXInterface)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).pVtbl) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(IADLXInterface), + "::", + stringify!(pVtbl) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct IADLXListVtbl { + pub Acquire: ::std::option::Option adlx_long>, + pub Release: ::std::option::Option adlx_long>, + pub QueryInterface: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXList, + interfaceId: *const wchar_t, + ppInterface: *mut *mut ::std::os::raw::c_void, + ) -> ADLX_RESULT, + >, + pub Size: ::std::option::Option adlx_uint>, + pub Empty: ::std::option::Option adlx_bool>, + pub Begin: ::std::option::Option adlx_uint>, + pub End: ::std::option::Option adlx_uint>, + pub At: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXList, + location: adlx_uint, + ppItem: *mut *mut IADLXInterface, + ) -> ADLX_RESULT, + >, + pub Clear: ::std::option::Option ADLX_RESULT>, + pub Remove_Back: + ::std::option::Option ADLX_RESULT>, + pub Add_Back: ::std::option::Option< + unsafe extern "C" fn(pThis: *mut IADLXList, pItem: *mut IADLXInterface) -> ADLX_RESULT, + >, +} +#[test] +fn bindgen_test_layout_IADLXListVtbl() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 88usize, + concat!("Size of: ", stringify!(IADLXListVtbl)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(IADLXListVtbl)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Acquire) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(IADLXListVtbl), + "::", + stringify!(Acquire) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Release) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(IADLXListVtbl), + "::", + stringify!(Release) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).QueryInterface) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(IADLXListVtbl), + "::", + stringify!(QueryInterface) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Size) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(IADLXListVtbl), + "::", + stringify!(Size) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Empty) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(IADLXListVtbl), + "::", + stringify!(Empty) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Begin) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(IADLXListVtbl), + "::", + stringify!(Begin) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).End) as usize - ptr as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(IADLXListVtbl), + "::", + stringify!(End) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).At) as usize - ptr as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(IADLXListVtbl), + "::", + stringify!(At) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Clear) as usize - ptr as usize }, + 64usize, + concat!( + "Offset of field: ", + stringify!(IADLXListVtbl), + "::", + stringify!(Clear) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Remove_Back) as usize - ptr as usize }, + 72usize, + concat!( + "Offset of field: ", + stringify!(IADLXListVtbl), + "::", + stringify!(Remove_Back) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Add_Back) as usize - ptr as usize }, + 80usize, + concat!( + "Offset of field: ", + stringify!(IADLXListVtbl), + "::", + stringify!(Add_Back) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct IADLXList { + pub pVtbl: *const IADLXListVtbl, +} +#[test] +fn bindgen_test_layout_IADLXList() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(IADLXList)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(IADLXList)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).pVtbl) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(IADLXList), + "::", + stringify!(pVtbl) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct IADLXGPUVtbl { + pub Acquire: ::std::option::Option adlx_long>, + pub Release: ::std::option::Option adlx_long>, + pub QueryInterface: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXGPU, + interfaceId: *const wchar_t, + ppInterface: *mut *mut ::std::os::raw::c_void, + ) -> ADLX_RESULT, + >, + pub VendorId: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXGPU, + vendorId: *mut *const ::std::os::raw::c_char, + ) -> ADLX_RESULT, + >, + pub ASICFamilyType: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXGPU, + asicFamilyType: *mut ADLX_ASIC_FAMILY_TYPE, + ) -> ADLX_RESULT, + >, + pub Type: ::std::option::Option< + unsafe extern "C" fn(pThis: *mut IADLXGPU, gpuType: *mut ADLX_GPU_TYPE) -> ADLX_RESULT, + >, + pub IsExternal: ::std::option::Option< + unsafe extern "C" fn(pThis: *mut IADLXGPU, isExternal: *mut adlx_bool) -> ADLX_RESULT, + >, + pub Name: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXGPU, + gpuName: *mut *const ::std::os::raw::c_char, + ) -> ADLX_RESULT, + >, + pub DriverPath: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXGPU, + driverPath: *mut *const ::std::os::raw::c_char, + ) -> ADLX_RESULT, + >, + pub PNPString: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXGPU, + pnpString: *mut *const ::std::os::raw::c_char, + ) -> ADLX_RESULT, + >, + pub HasDesktops: ::std::option::Option< + unsafe extern "C" fn(pThis: *mut IADLXGPU, hasDesktops: *mut adlx_bool) -> ADLX_RESULT, + >, + pub TotalVRAM: ::std::option::Option< + unsafe extern "C" fn(pThis: *mut IADLXGPU, vramMB: *mut adlx_uint) -> ADLX_RESULT, + >, + pub VRAMType: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXGPU, + type_: *mut *const ::std::os::raw::c_char, + ) -> ADLX_RESULT, + >, + pub BIOSInfo: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXGPU, + partNumber: *mut *const ::std::os::raw::c_char, + version: *mut *const ::std::os::raw::c_char, + date: *mut *const ::std::os::raw::c_char, + ) -> ADLX_RESULT, + >, + pub DeviceId: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXGPU, + deviceId: *mut *const ::std::os::raw::c_char, + ) -> ADLX_RESULT, + >, + pub RevisionId: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXGPU, + revisionId: *mut *const ::std::os::raw::c_char, + ) -> ADLX_RESULT, + >, + pub SubSystemId: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXGPU, + subSystemId: *mut *const ::std::os::raw::c_char, + ) -> ADLX_RESULT, + >, + pub SubSystemVendorId: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXGPU, + subSystemVendorId: *mut *const ::std::os::raw::c_char, + ) -> ADLX_RESULT, + >, + pub UniqueId: ::std::option::Option< + unsafe extern "C" fn(pThis: *mut IADLXGPU, uniqueId: *mut adlx_int) -> ADLX_RESULT, + >, +} +#[test] +fn bindgen_test_layout_IADLXGPUVtbl() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 152usize, + concat!("Size of: ", stringify!(IADLXGPUVtbl)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(IADLXGPUVtbl)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Acquire) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUVtbl), + "::", + stringify!(Acquire) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Release) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUVtbl), + "::", + stringify!(Release) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).QueryInterface) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUVtbl), + "::", + stringify!(QueryInterface) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).VendorId) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUVtbl), + "::", + stringify!(VendorId) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ASICFamilyType) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUVtbl), + "::", + stringify!(ASICFamilyType) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Type) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUVtbl), + "::", + stringify!(Type) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).IsExternal) as usize - ptr as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUVtbl), + "::", + stringify!(IsExternal) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Name) as usize - ptr as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUVtbl), + "::", + stringify!(Name) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).DriverPath) as usize - ptr as usize }, + 64usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUVtbl), + "::", + stringify!(DriverPath) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).PNPString) as usize - ptr as usize }, + 72usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUVtbl), + "::", + stringify!(PNPString) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).HasDesktops) as usize - ptr as usize }, + 80usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUVtbl), + "::", + stringify!(HasDesktops) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).TotalVRAM) as usize - ptr as usize }, + 88usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUVtbl), + "::", + stringify!(TotalVRAM) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).VRAMType) as usize - ptr as usize }, + 96usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUVtbl), + "::", + stringify!(VRAMType) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).BIOSInfo) as usize - ptr as usize }, + 104usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUVtbl), + "::", + stringify!(BIOSInfo) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).DeviceId) as usize - ptr as usize }, + 112usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUVtbl), + "::", + stringify!(DeviceId) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).RevisionId) as usize - ptr as usize }, + 120usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUVtbl), + "::", + stringify!(RevisionId) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).SubSystemId) as usize - ptr as usize }, + 128usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUVtbl), + "::", + stringify!(SubSystemId) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).SubSystemVendorId) as usize - ptr as usize }, + 136usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUVtbl), + "::", + stringify!(SubSystemVendorId) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).UniqueId) as usize - ptr as usize }, + 144usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUVtbl), + "::", + stringify!(UniqueId) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct IADLXGPU { + pub pVtbl: *const IADLXGPUVtbl, +} +#[test] +fn bindgen_test_layout_IADLXGPU() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(IADLXGPU)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(IADLXGPU)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).pVtbl) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPU), + "::", + stringify!(pVtbl) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct IADLXGPUListVtbl { + pub Acquire: ::std::option::Option adlx_long>, + pub Release: ::std::option::Option adlx_long>, + pub QueryInterface: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXGPUList, + interfaceId: *const wchar_t, + ppInterface: *mut *mut ::std::os::raw::c_void, + ) -> ADLX_RESULT, + >, + pub Size: ::std::option::Option adlx_uint>, + pub Empty: ::std::option::Option adlx_uint8>, + pub Begin: ::std::option::Option adlx_uint>, + pub End: ::std::option::Option adlx_uint>, + pub At: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXGPUList, + location: adlx_uint, + ppItem: *mut *mut IADLXInterface, + ) -> ADLX_RESULT, + >, + pub Clear: ::std::option::Option ADLX_RESULT>, + pub Remove_Back: + ::std::option::Option ADLX_RESULT>, + pub Add_Back: ::std::option::Option< + unsafe extern "C" fn(pThis: *mut IADLXGPUList, pItem: *mut IADLXInterface) -> ADLX_RESULT, + >, + pub At_GPUList: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXGPUList, + location: adlx_uint, + ppItem: *mut *mut IADLXGPU, + ) -> ADLX_RESULT, + >, + pub Add_Back_GPUList: ::std::option::Option< + unsafe extern "C" fn(pThis: *mut IADLXGPUList, pItem: *mut IADLXGPU) -> ADLX_RESULT, + >, +} +#[test] +fn bindgen_test_layout_IADLXGPUListVtbl() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 104usize, + concat!("Size of: ", stringify!(IADLXGPUListVtbl)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(IADLXGPUListVtbl)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Acquire) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUListVtbl), + "::", + stringify!(Acquire) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Release) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUListVtbl), + "::", + stringify!(Release) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).QueryInterface) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUListVtbl), + "::", + stringify!(QueryInterface) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Size) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUListVtbl), + "::", + stringify!(Size) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Empty) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUListVtbl), + "::", + stringify!(Empty) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Begin) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUListVtbl), + "::", + stringify!(Begin) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).End) as usize - ptr as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUListVtbl), + "::", + stringify!(End) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).At) as usize - ptr as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUListVtbl), + "::", + stringify!(At) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Clear) as usize - ptr as usize }, + 64usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUListVtbl), + "::", + stringify!(Clear) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Remove_Back) as usize - ptr as usize }, + 72usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUListVtbl), + "::", + stringify!(Remove_Back) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Add_Back) as usize - ptr as usize }, + 80usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUListVtbl), + "::", + stringify!(Add_Back) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).At_GPUList) as usize - ptr as usize }, + 88usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUListVtbl), + "::", + stringify!(At_GPUList) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Add_Back_GPUList) as usize - ptr as usize }, + 96usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUListVtbl), + "::", + stringify!(Add_Back_GPUList) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct IADLXGPUList { + pub pVtbl: *const IADLXGPUListVtbl, +} +#[test] +fn bindgen_test_layout_IADLXGPUList() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(IADLXGPUList)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(IADLXGPUList)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).pVtbl) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUList), + "::", + stringify!(pVtbl) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct IADLXGPUsEventListenerVtbl { + pub OnGPUListChanged: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXGPUsEventListener, + pNewGPUs: *mut IADLXGPUList, + ) -> adlx_bool, + >, +} +#[test] +fn bindgen_test_layout_IADLXGPUsEventListenerVtbl() { + const UNINIT: ::std::mem::MaybeUninit = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(IADLXGPUsEventListenerVtbl)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(IADLXGPUsEventListenerVtbl)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).OnGPUListChanged) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUsEventListenerVtbl), + "::", + stringify!(OnGPUListChanged) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct IADLXGPUsEventListener { + pub pVtbl: *const IADLXGPUsEventListenerVtbl, +} +#[test] +fn bindgen_test_layout_IADLXGPUsEventListener() { + const UNINIT: ::std::mem::MaybeUninit = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(IADLXGPUsEventListener)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(IADLXGPUsEventListener)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).pVtbl) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUsEventListener), + "::", + stringify!(pVtbl) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct IADLXGPUsChangedHandlingVtbl { + pub Acquire: ::std::option::Option< + unsafe extern "C" fn(pThis: *mut IADLXGPUsChangedHandling) -> adlx_long, + >, + pub Release: ::std::option::Option< + unsafe extern "C" fn(pThis: *mut IADLXGPUsChangedHandling) -> adlx_long, + >, + pub QueryInterface: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXGPUsChangedHandling, + interfaceId: *const wchar_t, + ppInterface: *mut *mut ::std::os::raw::c_void, + ) -> ADLX_RESULT, + >, + pub AddGPUsListEventListener: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXGPUsChangedHandling, + pListener: *mut IADLXGPUsEventListener, + ) -> ADLX_RESULT, + >, + pub RemoveGPUsListEventListener: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXGPUsChangedHandling, + pListener: *mut IADLXGPUsEventListener, + ) -> ADLX_RESULT, + >, +} +#[test] +fn bindgen_test_layout_IADLXGPUsChangedHandlingVtbl() { + const UNINIT: ::std::mem::MaybeUninit = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 40usize, + concat!("Size of: ", stringify!(IADLXGPUsChangedHandlingVtbl)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(IADLXGPUsChangedHandlingVtbl)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Acquire) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUsChangedHandlingVtbl), + "::", + stringify!(Acquire) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Release) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUsChangedHandlingVtbl), + "::", + stringify!(Release) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).QueryInterface) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUsChangedHandlingVtbl), + "::", + stringify!(QueryInterface) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).AddGPUsListEventListener) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUsChangedHandlingVtbl), + "::", + stringify!(AddGPUsListEventListener) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).RemoveGPUsListEventListener) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUsChangedHandlingVtbl), + "::", + stringify!(RemoveGPUsListEventListener) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct IADLXGPUsChangedHandling { + pub pVtbl: *const IADLXGPUsChangedHandlingVtbl, +} +#[test] +fn bindgen_test_layout_IADLXGPUsChangedHandling() { + const UNINIT: ::std::mem::MaybeUninit = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(IADLXGPUsChangedHandling)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(IADLXGPUsChangedHandling)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).pVtbl) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUsChangedHandling), + "::", + stringify!(pVtbl) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct IADLXDesktopServices { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct IADLXDisplayServices { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct IADLXLog { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct IADLX3DSettingsServices { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct IADLXGPUTuningServices { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct IADLXI2C { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct IADLXSystemVtbl { + pub GetHybridGraphicsType: ::std::option::Option< + unsafe extern "C" fn(pThis: *mut IADLXSystem, hgType: *mut ADLX_HG_TYPE) -> ADLX_RESULT, + >, + pub GetGPUs: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXSystem, + ppGPUs: *mut *mut IADLXGPUList, + ) -> ADLX_RESULT, + >, + pub QueryInterface: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXSystem, + interfaceId: *const wchar_t, + ppInterface: *mut *mut ::std::os::raw::c_void, + ) -> ADLX_RESULT, + >, + pub GetDisplaysServices: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXSystem, + ppDispServices: *mut *mut IADLXDisplayServices, + ) -> ADLX_RESULT, + >, + pub GetDesktopsServices: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXSystem, + ppDeskServices: *mut *mut IADLXDesktopServices, + ) -> ADLX_RESULT, + >, + pub GetGPUsChangedHandling: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXSystem, + ppGPUsChangedHandling: *mut *mut IADLXGPUsChangedHandling, + ) -> ADLX_RESULT, + >, + pub EnableLog: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXSystem, + mode: ADLX_LOG_DESTINATION, + severity: ADLX_LOG_SEVERITY, + pLogger: *mut IADLXLog, + fileName: *const wchar_t, + ) -> ADLX_RESULT, + >, + pub Get3DSettingsServices: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXSystem, + pp3DSettingsServices: *mut *mut IADLX3DSettingsServices, + ) -> ADLX_RESULT, + >, + pub GetGPUTuningServices: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXSystem, + ppGPUTuningServices: *mut *mut IADLXGPUTuningServices, + ) -> ADLX_RESULT, + >, + pub GetPerformanceMonitoringServices: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXSystem, + ppPerformanceMonitoringServices: *mut *mut IADLXPerformanceMonitoringServices, + ) -> ADLX_RESULT, + >, + pub TotalSystemRAM: ::std::option::Option< + unsafe extern "C" fn(pThis: *mut IADLXSystem, ramMB: *mut adlx_uint) -> ADLX_RESULT, + >, + pub GetI2C: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXSystem, + pGPU: *mut IADLXGPU, + ppI2C: *mut *mut IADLXI2C, + ) -> ADLX_RESULT, + >, +} +#[test] +fn bindgen_test_layout_IADLXSystemVtbl() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 96usize, + concat!("Size of: ", stringify!(IADLXSystemVtbl)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(IADLXSystemVtbl)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).GetHybridGraphicsType) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(IADLXSystemVtbl), + "::", + stringify!(GetHybridGraphicsType) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).GetGPUs) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(IADLXSystemVtbl), + "::", + stringify!(GetGPUs) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).QueryInterface) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(IADLXSystemVtbl), + "::", + stringify!(QueryInterface) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).GetDisplaysServices) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(IADLXSystemVtbl), + "::", + stringify!(GetDisplaysServices) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).GetDesktopsServices) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(IADLXSystemVtbl), + "::", + stringify!(GetDesktopsServices) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).GetGPUsChangedHandling) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(IADLXSystemVtbl), + "::", + stringify!(GetGPUsChangedHandling) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).EnableLog) as usize - ptr as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(IADLXSystemVtbl), + "::", + stringify!(EnableLog) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Get3DSettingsServices) as usize - ptr as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(IADLXSystemVtbl), + "::", + stringify!(Get3DSettingsServices) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).GetGPUTuningServices) as usize - ptr as usize }, + 64usize, + concat!( + "Offset of field: ", + stringify!(IADLXSystemVtbl), + "::", + stringify!(GetGPUTuningServices) + ) + ); + assert_eq!( + unsafe { + ::std::ptr::addr_of!((*ptr).GetPerformanceMonitoringServices) as usize - ptr as usize + }, + 72usize, + concat!( + "Offset of field: ", + stringify!(IADLXSystemVtbl), + "::", + stringify!(GetPerformanceMonitoringServices) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).TotalSystemRAM) as usize - ptr as usize }, + 80usize, + concat!( + "Offset of field: ", + stringify!(IADLXSystemVtbl), + "::", + stringify!(TotalSystemRAM) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).GetI2C) as usize - ptr as usize }, + 88usize, + concat!( + "Offset of field: ", + stringify!(IADLXSystemVtbl), + "::", + stringify!(GetI2C) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct IADLXSystem { + pub pVtbl: *const IADLXSystemVtbl, +} +#[test] +fn bindgen_test_layout_IADLXSystem() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(IADLXSystem)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(IADLXSystem)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).pVtbl) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(IADLXSystem), + "::", + stringify!(pVtbl) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct IADLXDisplay { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct IADLXDesktop { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct IADLMappingVtbl { + pub GetADLXGPUFromBdf: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLMapping, + bus: adlx_int, + device: adlx_int, + function: adlx_int, + ppGPU: *mut *mut IADLXGPU, + ) -> ADLX_RESULT, + >, + pub GetADLXGPUFromAdlAdapterIndex: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLMapping, + adlAdapterIndex: adlx_int, + ppGPU: *mut *mut IADLXGPU, + ) -> ADLX_RESULT, + >, + pub BdfFromADLXGPU: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLMapping, + pGPU: *mut IADLXGPU, + bus: *mut adlx_int, + device: *mut adlx_int, + function: *mut adlx_int, + ) -> ADLX_RESULT, + >, + pub AdlAdapterIndexFromADLXGPU: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLMapping, + pGPU: *mut IADLXGPU, + adlAdapterIndex: *mut adlx_int, + ) -> ADLX_RESULT, + >, + pub GetADLXDisplayFromADLIds: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLMapping, + adapterIndex: adlx_int, + displayIndex: adlx_int, + bus: adlx_int, + device: adlx_int, + function: adlx_int, + ppDisplay: *mut *mut IADLXDisplay, + ) -> ADLX_RESULT, + >, + pub ADLIdsFromADLXDisplay: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLMapping, + pDisplay: *mut IADLXDisplay, + adapterIndex: *mut adlx_int, + displayIndex: *mut adlx_int, + bus: *mut adlx_int, + device: *mut adlx_int, + function: *mut adlx_int, + ) -> ADLX_RESULT, + >, + pub GetADLXDesktopFromADLIds: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLMapping, + adapterIndex: adlx_int, + VidPnSourceId: adlx_int, + bus: adlx_int, + device: adlx_int, + function: adlx_int, + ppDesktop: *mut *mut IADLXDesktop, + ) -> ADLX_RESULT, + >, + pub ADLIdsFromADLXDesktop: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLMapping, + pDesktop: *mut IADLXDesktop, + adapterIndex: *mut adlx_int, + VidPnSourceId: *mut adlx_int, + bus: *mut adlx_int, + device: *mut adlx_int, + function: *mut adlx_int, + ) -> ADLX_RESULT, + >, +} +#[test] +fn bindgen_test_layout_IADLMappingVtbl() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 64usize, + concat!("Size of: ", stringify!(IADLMappingVtbl)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(IADLMappingVtbl)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).GetADLXGPUFromBdf) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(IADLMappingVtbl), + "::", + stringify!(GetADLXGPUFromBdf) + ) + ); + assert_eq!( + unsafe { + ::std::ptr::addr_of!((*ptr).GetADLXGPUFromAdlAdapterIndex) as usize - ptr as usize + }, + 8usize, + concat!( + "Offset of field: ", + stringify!(IADLMappingVtbl), + "::", + stringify!(GetADLXGPUFromAdlAdapterIndex) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).BdfFromADLXGPU) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(IADLMappingVtbl), + "::", + stringify!(BdfFromADLXGPU) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).AdlAdapterIndexFromADLXGPU) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(IADLMappingVtbl), + "::", + stringify!(AdlAdapterIndexFromADLXGPU) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).GetADLXDisplayFromADLIds) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(IADLMappingVtbl), + "::", + stringify!(GetADLXDisplayFromADLIds) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ADLIdsFromADLXDisplay) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(IADLMappingVtbl), + "::", + stringify!(ADLIdsFromADLXDisplay) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).GetADLXDesktopFromADLIds) as usize - ptr as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(IADLMappingVtbl), + "::", + stringify!(GetADLXDesktopFromADLIds) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ADLIdsFromADLXDesktop) as usize - ptr as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(IADLMappingVtbl), + "::", + stringify!(ADLIdsFromADLXDesktop) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct IADLMapping { + pub pVtbl: *const IADLMappingVtbl, +} +#[test] +fn bindgen_test_layout_IADLMapping() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(IADLMapping)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(IADLMapping)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).pVtbl) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(IADLMapping), + "::", + stringify!(pVtbl) + ) + ); +} +pub type ADLXQueryFullVersion_Fn = + ::std::option::Option ADLX_RESULT>; +pub type ADLXQueryVersion_Fn = ::std::option::Option< + unsafe extern "C" fn(version: *mut *const ::std::os::raw::c_char) -> ADLX_RESULT, +>; +#[doc = " @typedef ADLX_ADL_Main_Memory_Free\n @ingroup ADLXDefs\n @ENG_START_DOX The typedef of ADLX_ADL_Main_Memory_Free function. @ENG_END_DOX\n @definition\n @codeStart\n typedef void (ADLX_STD_CALL* ADLX_ADL_Main_Memory_Free)(void** buffer)\n @codeEnd"] +pub type ADLX_ADL_Main_Memory_Free = + ::std::option::Option; +pub type ADLXInitialize_Fn = ::std::option::Option< + unsafe extern "C" fn(version: adlx_uint64, ppSystem: *mut *mut IADLXSystem) -> ADLX_RESULT, +>; +pub type ADLXInitializeWithCallerAdl_Fn = ::std::option::Option< + unsafe extern "C" fn( + version: adlx_uint64, + ppSystem: *mut *mut IADLXSystem, + ppAdlMapping: *mut *mut IADLMapping, + adlContext: adlx_handle, + adlMainMemoryFree: ADLX_ADL_Main_Memory_Free, + ) -> ADLX_RESULT, +>; +pub type ADLXTerminate_Fn = ::std::option::Option ADLX_RESULT>; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct IADLXGPU1Vtbl { + pub Acquire: ::std::option::Option adlx_long>, + pub Release: ::std::option::Option adlx_long>, + pub QueryInterface: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXGPU1, + interfaceId: *const wchar_t, + ppInterface: *mut *mut ::std::os::raw::c_void, + ) -> ADLX_RESULT, + >, + pub VendorId: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXGPU1, + vendorId: *mut *const ::std::os::raw::c_char, + ) -> ADLX_RESULT, + >, + pub ASICFamilyType: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXGPU1, + asicFamilyType: *mut ADLX_ASIC_FAMILY_TYPE, + ) -> ADLX_RESULT, + >, + pub Type: ::std::option::Option< + unsafe extern "C" fn(pThis: *mut IADLXGPU1, gpuType: *mut ADLX_GPU_TYPE) -> ADLX_RESULT, + >, + pub IsExternal: ::std::option::Option< + unsafe extern "C" fn(pThis: *mut IADLXGPU1, isExternal: *mut adlx_bool) -> ADLX_RESULT, + >, + pub Name: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXGPU1, + gpuName: *mut *const ::std::os::raw::c_char, + ) -> ADLX_RESULT, + >, + pub DriverPath: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXGPU1, + driverPath: *mut *const ::std::os::raw::c_char, + ) -> ADLX_RESULT, + >, + pub PNPString: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXGPU1, + pnpString: *mut *const ::std::os::raw::c_char, + ) -> ADLX_RESULT, + >, + pub HasDesktops: ::std::option::Option< + unsafe extern "C" fn(pThis: *mut IADLXGPU1, hasDesktops: *mut adlx_bool) -> ADLX_RESULT, + >, + pub TotalVRAM: ::std::option::Option< + unsafe extern "C" fn(pThis: *mut IADLXGPU1, vramMB: *mut adlx_uint) -> ADLX_RESULT, + >, + pub VRAMType: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXGPU1, + type_: *mut *const ::std::os::raw::c_char, + ) -> ADLX_RESULT, + >, + pub BIOSInfo: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXGPU1, + partNumber: *mut *const ::std::os::raw::c_char, + version: *mut *const ::std::os::raw::c_char, + date: *mut *const ::std::os::raw::c_char, + ) -> ADLX_RESULT, + >, + pub DeviceId: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXGPU1, + deviceId: *mut *const ::std::os::raw::c_char, + ) -> ADLX_RESULT, + >, + pub RevisionId: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXGPU1, + revisionId: *mut *const ::std::os::raw::c_char, + ) -> ADLX_RESULT, + >, + pub SubSystemId: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXGPU1, + subSystemId: *mut *const ::std::os::raw::c_char, + ) -> ADLX_RESULT, + >, + pub SubSystemVendorId: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXGPU1, + subSystemVendorId: *mut *const ::std::os::raw::c_char, + ) -> ADLX_RESULT, + >, + pub UniqueId: ::std::option::Option< + unsafe extern "C" fn(pThis: *mut IADLXGPU1, uniqueId: *mut adlx_int) -> ADLX_RESULT, + >, + pub PCIBusType: ::std::option::Option< + unsafe extern "C" fn(pThis: *mut IADLXGPU1, busType: *mut ADLX_PCI_BUS_TYPE) -> ADLX_RESULT, + >, + pub PCIBusLaneWidth: ::std::option::Option< + unsafe extern "C" fn(pThis: *mut IADLXGPU1, laneWidth: *mut adlx_uint) -> ADLX_RESULT, + >, + pub MultiGPUMode: ::std::option::Option< + unsafe extern "C" fn(pThis: *mut IADLXGPU1, mode: *mut ADLX_MGPU_MODE) -> ADLX_RESULT, + >, + pub ProductName: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXGPU1, + productName: *mut *const ::std::os::raw::c_char, + ) -> ADLX_RESULT, + >, +} +#[test] +fn bindgen_test_layout_IADLXGPU1Vtbl() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 184usize, + concat!("Size of: ", stringify!(IADLXGPU1Vtbl)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(IADLXGPU1Vtbl)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Acquire) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPU1Vtbl), + "::", + stringify!(Acquire) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Release) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPU1Vtbl), + "::", + stringify!(Release) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).QueryInterface) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPU1Vtbl), + "::", + stringify!(QueryInterface) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).VendorId) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPU1Vtbl), + "::", + stringify!(VendorId) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ASICFamilyType) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPU1Vtbl), + "::", + stringify!(ASICFamilyType) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Type) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPU1Vtbl), + "::", + stringify!(Type) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).IsExternal) as usize - ptr as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPU1Vtbl), + "::", + stringify!(IsExternal) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Name) as usize - ptr as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPU1Vtbl), + "::", + stringify!(Name) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).DriverPath) as usize - ptr as usize }, + 64usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPU1Vtbl), + "::", + stringify!(DriverPath) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).PNPString) as usize - ptr as usize }, + 72usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPU1Vtbl), + "::", + stringify!(PNPString) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).HasDesktops) as usize - ptr as usize }, + 80usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPU1Vtbl), + "::", + stringify!(HasDesktops) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).TotalVRAM) as usize - ptr as usize }, + 88usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPU1Vtbl), + "::", + stringify!(TotalVRAM) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).VRAMType) as usize - ptr as usize }, + 96usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPU1Vtbl), + "::", + stringify!(VRAMType) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).BIOSInfo) as usize - ptr as usize }, + 104usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPU1Vtbl), + "::", + stringify!(BIOSInfo) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).DeviceId) as usize - ptr as usize }, + 112usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPU1Vtbl), + "::", + stringify!(DeviceId) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).RevisionId) as usize - ptr as usize }, + 120usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPU1Vtbl), + "::", + stringify!(RevisionId) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).SubSystemId) as usize - ptr as usize }, + 128usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPU1Vtbl), + "::", + stringify!(SubSystemId) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).SubSystemVendorId) as usize - ptr as usize }, + 136usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPU1Vtbl), + "::", + stringify!(SubSystemVendorId) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).UniqueId) as usize - ptr as usize }, + 144usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPU1Vtbl), + "::", + stringify!(UniqueId) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).PCIBusType) as usize - ptr as usize }, + 152usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPU1Vtbl), + "::", + stringify!(PCIBusType) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).PCIBusLaneWidth) as usize - ptr as usize }, + 160usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPU1Vtbl), + "::", + stringify!(PCIBusLaneWidth) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).MultiGPUMode) as usize - ptr as usize }, + 168usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPU1Vtbl), + "::", + stringify!(MultiGPUMode) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ProductName) as usize - ptr as usize }, + 176usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPU1Vtbl), + "::", + stringify!(ProductName) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct IADLXGPU1 { + pub pVtbl: *const IADLXGPU1Vtbl, +} +#[test] +fn bindgen_test_layout_IADLXGPU1() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(IADLXGPU1)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(IADLXGPU1)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).pVtbl) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPU1), + "::", + stringify!(pVtbl) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct IADLXPowerTuningServices { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct IADLXSystem1Vtbl { + pub Acquire: ::std::option::Option adlx_long>, + pub Release: ::std::option::Option adlx_long>, + pub QueryInterface: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXSystem1, + interfaceId: *const wchar_t, + ppInterface: *mut *mut ::std::os::raw::c_void, + ) -> ADLX_RESULT, + >, + pub GetPowerTuningServices: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXSystem1, + ppPowerTuningServices: *mut *mut IADLXPowerTuningServices, + ) -> ADLX_RESULT, + >, +} +#[test] +fn bindgen_test_layout_IADLXSystem1Vtbl() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 32usize, + concat!("Size of: ", stringify!(IADLXSystem1Vtbl)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(IADLXSystem1Vtbl)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Acquire) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(IADLXSystem1Vtbl), + "::", + stringify!(Acquire) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Release) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(IADLXSystem1Vtbl), + "::", + stringify!(Release) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).QueryInterface) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(IADLXSystem1Vtbl), + "::", + stringify!(QueryInterface) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).GetPowerTuningServices) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(IADLXSystem1Vtbl), + "::", + stringify!(GetPowerTuningServices) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct IADLXSystem1 { + pub pVtbl: *const IADLXSystem1Vtbl, +} +#[test] +fn bindgen_test_layout_IADLXSystem1() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(IADLXSystem1)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(IADLXSystem1)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).pVtbl) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(IADLXSystem1), + "::", + stringify!(pVtbl) + ) + ); +} +#[doc = " @struct ADLX_RGB\n @ingroup structuresVal\n @ENG_START_DOX\n @brief This structure contains RGB information.\n @ENG_END_DOX"] +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ADLX_RGB { + #[doc = "< @ENG_START_DOX Red @ENG_END_DOX"] + pub gamutR: adlx_double, + #[doc = "< @ENG_START_DOX Green @ENG_END_DOX"] + pub gamutG: adlx_double, + #[doc = "< @ENG_START_DOX Blue @ENG_END_DOX"] + pub gamutB: adlx_double, +} +#[test] +fn bindgen_test_layout_ADLX_RGB() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 24usize, + concat!("Size of: ", stringify!(ADLX_RGB)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ADLX_RGB)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).gamutR) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ADLX_RGB), + "::", + stringify!(gamutR) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).gamutG) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ADLX_RGB), + "::", + stringify!(gamutG) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).gamutB) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(ADLX_RGB), + "::", + stringify!(gamutB) + ) + ); +} +#[doc = " @struct ADLX_Point\n @ingroup structuresVal\n @ENG_START_DOX\n @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.\n @ENG_END_DOX"] +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ADLX_Point { + #[doc = "< @ENG_START_DOX The x coordinate. @ENG_END_DOX"] + pub x: adlx_int, + #[doc = "< @ENG_START_DOX The y coordinate. @ENG_END_DOX"] + pub y: adlx_int, +} +#[test] +fn bindgen_test_layout_ADLX_Point() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(ADLX_Point)) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(ADLX_Point)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).x) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ADLX_Point), + "::", + stringify!(x) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).y) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(ADLX_Point), + "::", + stringify!(y) + ) + ); +} +#[doc = " @struct ADLX_GamutColorSpace\n @ingroup structuresVal\n @ENG_START_DOX\n @brief This structure contains information on driver-supported gamut coordinates\n @ENG_END_DOX"] +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ADLX_GamutColorSpace { + #[doc = "< @ENG_START_DOX The red channel chromaticity coordinate. @ENG_END_DOX"] + pub red: ADLX_Point, + #[doc = "< @ENG_START_DOX The green channel chromaticity coordinate. @ENG_END_DOX"] + pub green: ADLX_Point, + #[doc = "< @ENG_START_DOX The blue channel chromaticity coordinate. @ENG_END_DOX"] + pub blue: ADLX_Point, +} +#[test] +fn bindgen_test_layout_ADLX_GamutColorSpace() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 24usize, + concat!("Size of: ", stringify!(ADLX_GamutColorSpace)) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(ADLX_GamutColorSpace)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).red) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ADLX_GamutColorSpace), + "::", + stringify!(red) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).green) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ADLX_GamutColorSpace), + "::", + stringify!(green) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).blue) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(ADLX_GamutColorSpace), + "::", + stringify!(blue) + ) + ); +} +#[doc = " @struct ADLX_GammaRamp\n @ingroup structuresVal\n @ENG_START_DOX\n @brief This structure contains the display gamma ramp used to program the re-gamma LUT.\n @ENG_END_DOX"] +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ADLX_GammaRamp { + #[doc = "< @ENG_START_DOX The gamma ramp is a buffer containing 256 triplets of adlx_uint16 values.\nEach triplet consists of red, green and blue values. @ENG_END_DOX"] + pub gamma: [adlx_uint16; 768usize], +} +#[test] +fn bindgen_test_layout_ADLX_GammaRamp() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 1536usize, + concat!("Size of: ", stringify!(ADLX_GammaRamp)) + ); + assert_eq!( + ::std::mem::align_of::(), + 2usize, + concat!("Alignment of ", stringify!(ADLX_GammaRamp)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).gamma) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ADLX_GammaRamp), + "::", + stringify!(gamma) + ) + ); +} +#[doc = " @struct ADLX_RegammaCoeff\n @ingroup structuresVal\n @ENG_START_DOX\n @brief This structure contains information on driver-supported re-gamma coefficients used to build the re-gamma curve.\n @ENG_END_DOX"] +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ADLX_RegammaCoeff { + #[doc = "< @ENG_START_DOX The a0 gamma coefficient. @ENG_END_DOX"] + pub coefficientA0: adlx_int, + #[doc = "< @ENG_START_DOX The a1 gamma coefficient. @ENG_END_DOX"] + pub coefficientA1: adlx_int, + #[doc = "< @ENG_START_DOX The a2 gamma coefficient. @ENG_END_DOX"] + pub coefficientA2: adlx_int, + #[doc = "< @ENG_START_DOX The a3 gamma coefficient. @ENG_END_DOX"] + pub coefficientA3: adlx_int, + #[doc = "< @ENG_START_DOX The regamma divider. @ENG_END_DOX"] + pub gamma: adlx_int, +} +#[test] +fn bindgen_test_layout_ADLX_RegammaCoeff() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 20usize, + concat!("Size of: ", stringify!(ADLX_RegammaCoeff)) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(ADLX_RegammaCoeff)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).coefficientA0) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ADLX_RegammaCoeff), + "::", + stringify!(coefficientA0) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).coefficientA1) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(ADLX_RegammaCoeff), + "::", + stringify!(coefficientA1) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).coefficientA2) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ADLX_RegammaCoeff), + "::", + stringify!(coefficientA2) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).coefficientA3) as usize - ptr as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(ADLX_RegammaCoeff), + "::", + stringify!(coefficientA3) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).gamma) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(ADLX_RegammaCoeff), + "::", + stringify!(gamma) + ) + ); +} +#[doc = " @struct ADLX_TimingInfo\n @ingroup structuresVal\n @ENG_START_DOX\n @brief This structure contains display timing information.\n @ENG_END_DOX"] +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ADLX_TimingInfo { + #[doc = "< @ENG_START_DOX The detailed timing flag. @ENG_END_DOX"] + pub timingFlags: adlx_int, + #[doc = "< @ENG_START_DOX The total number of pixels that compose all scan lines during a horizontal sync. @ENG_END_DOX"] + pub hTotal: adlx_int, + #[doc = "< @ENG_START_DOX The total number of vertical pixels permitted/processed per sync. @ENG_END_DOX"] + pub vTotal: adlx_int, + #[doc = "< @ENG_START_DOX The number of horizontal pixels within the active area. @ENG_END_DOX"] + pub hDisplay: adlx_int, + #[doc = "< @ENG_START_DOX The number of vertical pixels within the active display area. @ENG_END_DOX"] + pub vDisplay: adlx_int, + #[doc = "< @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"] + pub hFrontPorch: adlx_int, + #[doc = "< @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"] + pub vFrontPorch: adlx_int, + #[doc = "< @ENG_START_DOX The number of pixels that compose a scan line during a horizontal sync. @ENG_END_DOX"] + pub hSyncWidth: adlx_int, + #[doc = "< @ENG_START_DOX The number of vertical pixels permitted/processed during a sync. @ENG_END_DOX"] + pub vSyncWidth: adlx_int, + #[doc = "< @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"] + pub hPolarity: adlx_int, + #[doc = "< @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"] + pub vPolarity: adlx_int, +} +#[test] +fn bindgen_test_layout_ADLX_TimingInfo() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 44usize, + concat!("Size of: ", stringify!(ADLX_TimingInfo)) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(ADLX_TimingInfo)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).timingFlags) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ADLX_TimingInfo), + "::", + stringify!(timingFlags) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).hTotal) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(ADLX_TimingInfo), + "::", + stringify!(hTotal) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).vTotal) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ADLX_TimingInfo), + "::", + stringify!(vTotal) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).hDisplay) as usize - ptr as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(ADLX_TimingInfo), + "::", + stringify!(hDisplay) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).vDisplay) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(ADLX_TimingInfo), + "::", + stringify!(vDisplay) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).hFrontPorch) as usize - ptr as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(ADLX_TimingInfo), + "::", + stringify!(hFrontPorch) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).vFrontPorch) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(ADLX_TimingInfo), + "::", + stringify!(vFrontPorch) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).hSyncWidth) as usize - ptr as usize }, + 28usize, + concat!( + "Offset of field: ", + stringify!(ADLX_TimingInfo), + "::", + stringify!(hSyncWidth) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).vSyncWidth) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(ADLX_TimingInfo), + "::", + stringify!(vSyncWidth) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).hPolarity) as usize - ptr as usize }, + 36usize, + concat!( + "Offset of field: ", + stringify!(ADLX_TimingInfo), + "::", + stringify!(hPolarity) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).vPolarity) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(ADLX_TimingInfo), + "::", + stringify!(vPolarity) + ) + ); +} +#[doc = " @struct ADLX_CustomResolution\n @ingroup structuresVal\n @ENG_START_DOX\n @brief This structure contains information for custom resolution parameters on a given display.\n @ENG_END_DOX\n"] +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ADLX_CustomResolution { + #[doc = "< @ENG_START_DOX The resolution width. @ENG_END_DOX"] + pub resWidth: adlx_int, + #[doc = "< @ENG_START_DOX The resolution height. @ENG_END_DOX"] + pub resHeight: adlx_int, + #[doc = "< @ENG_START_DOX The refresh rate. @ENG_END_DOX"] + pub refreshRate: adlx_int, + #[doc = "< @ENG_START_DOX The presentation method, 0 PROGRESSIVE; 1 INTERLACED. @ENG_END_DOX"] + pub presentation: ADLX_DISPLAY_SCAN_TYPE, + #[doc = "< @ENG_START_DOX The display timing standard. @ENG_END_DOX"] + pub timingStandard: ADLX_TIMING_STANDARD, + #[doc = "< @ENG_START_DOX The speed at which pixels are transmitted within on a refresh cycle. @ENG_END_DOX"] + pub GPixelClock: adlx_long, + #[doc = "< @ENG_START_DOX The detailed timing information. @ENG_END_DOX"] + pub detailedTiming: ADLX_TimingInfo, +} +#[test] +fn bindgen_test_layout_ADLX_CustomResolution() { + const UNINIT: ::std::mem::MaybeUninit = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 68usize, + concat!("Size of: ", stringify!(ADLX_CustomResolution)) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(ADLX_CustomResolution)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).resWidth) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ADLX_CustomResolution), + "::", + stringify!(resWidth) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).resHeight) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(ADLX_CustomResolution), + "::", + stringify!(resHeight) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).refreshRate) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ADLX_CustomResolution), + "::", + stringify!(refreshRate) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).presentation) as usize - ptr as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(ADLX_CustomResolution), + "::", + stringify!(presentation) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).timingStandard) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(ADLX_CustomResolution), + "::", + stringify!(timingStandard) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).GPixelClock) as usize - ptr as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(ADLX_CustomResolution), + "::", + stringify!(GPixelClock) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).detailedTiming) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(ADLX_CustomResolution), + "::", + stringify!(detailedTiming) + ) + ); +} +#[doc = " @struct ADLX_IntRange\n @ingroup structuresVal\n @ENG_START_DOX\n @brief This structure contains information on the integer range.\n @ENG_END_DOX\n"] +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ADLX_IntRange { + #[doc = "< @ENG_START_DOX The minimum integer value. @ENG_END_DOX"] + pub minValue: adlx_int, + #[doc = "< @ENG_START_DOX The maximum integer value. @ENG_END_DOX"] + pub maxValue: adlx_int, + #[doc = "< @ENG_START_DOX The accepted integer range step. @ENG_END_DOX"] + pub step: adlx_int, +} +#[test] +fn bindgen_test_layout_ADLX_IntRange() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 12usize, + concat!("Size of: ", stringify!(ADLX_IntRange)) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(ADLX_IntRange)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).minValue) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ADLX_IntRange), + "::", + stringify!(minValue) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).maxValue) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(ADLX_IntRange), + "::", + stringify!(maxValue) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).step) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ADLX_IntRange), + "::", + stringify!(step) + ) + ); +} +#[doc = " @struct ADLX_UINT16_RGB\n @ingroup structuresVal\n @ENG_START_DOX\n @brief This structure contains UINT16 RGB information.\n @ENG_END_DOX\n"] +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ADLX_UINT16_RGB { + #[doc = "< @ENG_START_DOX Red @ENG_END_DOX"] + pub red: adlx_uint16, + #[doc = "< @ENG_START_DOX Green @ENG_END_DOX"] + pub green: adlx_uint16, + #[doc = "< @ENG_START_DOX Blue @ENG_END_DOX"] + pub blue: adlx_uint16, +} +#[test] +fn bindgen_test_layout_ADLX_UINT16_RGB() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 6usize, + concat!("Size of: ", stringify!(ADLX_UINT16_RGB)) + ); + assert_eq!( + ::std::mem::align_of::(), + 2usize, + concat!("Alignment of ", stringify!(ADLX_UINT16_RGB)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).red) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ADLX_UINT16_RGB), + "::", + stringify!(red) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).green) as usize - ptr as usize }, + 2usize, + concat!( + "Offset of field: ", + stringify!(ADLX_UINT16_RGB), + "::", + stringify!(green) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).blue) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(ADLX_UINT16_RGB), + "::", + stringify!(blue) + ) + ); +} +#[doc = " @struct ADLX_3DLUT_Data\n @ingroup structuresVal\n @ENG_START_DOX\n @brief This structure contains custom 3D LUT information.\n @ENG_END_DOX\n"] +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ADLX_3DLUT_Data { + #[doc = "< @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.\nFor 3D LUT data we use ushort 0 - 0xFFFF, data must be zero-padded to 16-bit. @ENG_END_DOX"] + pub data: [ADLX_UINT16_RGB; 4913usize], +} +#[test] +fn bindgen_test_layout_ADLX_3DLUT_Data() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 29478usize, + concat!("Size of: ", stringify!(ADLX_3DLUT_Data)) + ); + assert_eq!( + ::std::mem::align_of::(), + 2usize, + concat!("Alignment of ", stringify!(ADLX_3DLUT_Data)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ADLX_3DLUT_Data), + "::", + stringify!(data) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct IADLXGPUMetricsSupportVtbl { + pub Acquire: ::std::option::Option< + unsafe extern "C" fn(pThis: *mut IADLXGPUMetricsSupport) -> adlx_long, + >, + pub Release: ::std::option::Option< + unsafe extern "C" fn(pThis: *mut IADLXGPUMetricsSupport) -> adlx_long, + >, + pub QueryInterface: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXGPUMetricsSupport, + interfaceId: *const wchar_t, + ppInterface: *mut *mut ::std::os::raw::c_void, + ) -> ADLX_RESULT, + >, + pub IsSupportedGPUUsage: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXGPUMetricsSupport, + supported: *mut adlx_bool, + ) -> ADLX_RESULT, + >, + pub IsSupportedGPUClockSpeed: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXGPUMetricsSupport, + supported: *mut adlx_bool, + ) -> ADLX_RESULT, + >, + pub IsSupportedGPUVRAMClockSpeed: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXGPUMetricsSupport, + supported: *mut adlx_bool, + ) -> ADLX_RESULT, + >, + pub IsSupportedGPUTemperature: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXGPUMetricsSupport, + supported: *mut adlx_bool, + ) -> ADLX_RESULT, + >, + pub IsSupportedGPUHotspotTemperature: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXGPUMetricsSupport, + supported: *mut adlx_bool, + ) -> ADLX_RESULT, + >, + pub IsSupportedGPUPower: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXGPUMetricsSupport, + supported: *mut adlx_bool, + ) -> ADLX_RESULT, + >, + pub IsSupportedGPUTotalBoardPower: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXGPUMetricsSupport, + supported: *mut adlx_bool, + ) -> ADLX_RESULT, + >, + pub IsSupportedGPUFanSpeed: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXGPUMetricsSupport, + supported: *mut adlx_bool, + ) -> ADLX_RESULT, + >, + pub IsSupportedGPUVRAM: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXGPUMetricsSupport, + supported: *mut adlx_bool, + ) -> ADLX_RESULT, + >, + pub IsSupportedGPUVoltage: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXGPUMetricsSupport, + supported: *mut adlx_bool, + ) -> ADLX_RESULT, + >, + pub GetGPUUsageRange: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXGPUMetricsSupport, + minValue: *mut adlx_int, + maxValue: *mut adlx_int, + ) -> ADLX_RESULT, + >, + pub GetGPUClockSpeedRange: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXGPUMetricsSupport, + minValue: *mut adlx_int, + maxValue: *mut adlx_int, + ) -> ADLX_RESULT, + >, + pub GetGPUVRAMClockSpeedRange: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXGPUMetricsSupport, + minValue: *mut adlx_int, + maxValue: *mut adlx_int, + ) -> ADLX_RESULT, + >, + pub GetGPUTemperatureRange: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXGPUMetricsSupport, + minValue: *mut adlx_int, + maxValue: *mut adlx_int, + ) -> ADLX_RESULT, + >, + pub GetGPUHotspotTemperatureRange: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXGPUMetricsSupport, + minValue: *mut adlx_int, + maxValue: *mut adlx_int, + ) -> ADLX_RESULT, + >, + pub GetGPUPowerRange: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXGPUMetricsSupport, + minValue: *mut adlx_int, + maxValue: *mut adlx_int, + ) -> ADLX_RESULT, + >, + pub GetGPUFanSpeedRange: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXGPUMetricsSupport, + minValue: *mut adlx_int, + maxValue: *mut adlx_int, + ) -> ADLX_RESULT, + >, + pub GetGPUVRAMRange: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXGPUMetricsSupport, + minValue: *mut adlx_int, + maxValue: *mut adlx_int, + ) -> ADLX_RESULT, + >, + pub GetGPUVoltageRange: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXGPUMetricsSupport, + minValue: *mut adlx_int, + maxValue: *mut adlx_int, + ) -> ADLX_RESULT, + >, + pub GetGPUTotalBoardPowerRange: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXGPUMetricsSupport, + minValue: *mut adlx_int, + maxValue: *mut adlx_int, + ) -> ADLX_RESULT, + >, + pub GetGPUIntakeTemperatureRange: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXGPUMetricsSupport, + minValue: *mut adlx_int, + maxValue: *mut adlx_int, + ) -> ADLX_RESULT, + >, + pub IsSupportedGPUIntakeTemperature: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXGPUMetricsSupport, + supported: *mut adlx_bool, + ) -> ADLX_RESULT, + >, +} +#[test] +fn bindgen_test_layout_IADLXGPUMetricsSupportVtbl() { + const UNINIT: ::std::mem::MaybeUninit = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 200usize, + concat!("Size of: ", stringify!(IADLXGPUMetricsSupportVtbl)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(IADLXGPUMetricsSupportVtbl)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Acquire) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUMetricsSupportVtbl), + "::", + stringify!(Acquire) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Release) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUMetricsSupportVtbl), + "::", + stringify!(Release) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).QueryInterface) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUMetricsSupportVtbl), + "::", + stringify!(QueryInterface) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).IsSupportedGPUUsage) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUMetricsSupportVtbl), + "::", + stringify!(IsSupportedGPUUsage) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).IsSupportedGPUClockSpeed) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUMetricsSupportVtbl), + "::", + stringify!(IsSupportedGPUClockSpeed) + ) + ); + assert_eq!( + unsafe { + ::std::ptr::addr_of!((*ptr).IsSupportedGPUVRAMClockSpeed) as usize - ptr as usize + }, + 40usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUMetricsSupportVtbl), + "::", + stringify!(IsSupportedGPUVRAMClockSpeed) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).IsSupportedGPUTemperature) as usize - ptr as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUMetricsSupportVtbl), + "::", + stringify!(IsSupportedGPUTemperature) + ) + ); + assert_eq!( + unsafe { + ::std::ptr::addr_of!((*ptr).IsSupportedGPUHotspotTemperature) as usize - ptr as usize + }, + 56usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUMetricsSupportVtbl), + "::", + stringify!(IsSupportedGPUHotspotTemperature) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).IsSupportedGPUPower) as usize - ptr as usize }, + 64usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUMetricsSupportVtbl), + "::", + stringify!(IsSupportedGPUPower) + ) + ); + assert_eq!( + unsafe { + ::std::ptr::addr_of!((*ptr).IsSupportedGPUTotalBoardPower) as usize - ptr as usize + }, + 72usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUMetricsSupportVtbl), + "::", + stringify!(IsSupportedGPUTotalBoardPower) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).IsSupportedGPUFanSpeed) as usize - ptr as usize }, + 80usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUMetricsSupportVtbl), + "::", + stringify!(IsSupportedGPUFanSpeed) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).IsSupportedGPUVRAM) as usize - ptr as usize }, + 88usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUMetricsSupportVtbl), + "::", + stringify!(IsSupportedGPUVRAM) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).IsSupportedGPUVoltage) as usize - ptr as usize }, + 96usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUMetricsSupportVtbl), + "::", + stringify!(IsSupportedGPUVoltage) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).GetGPUUsageRange) as usize - ptr as usize }, + 104usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUMetricsSupportVtbl), + "::", + stringify!(GetGPUUsageRange) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).GetGPUClockSpeedRange) as usize - ptr as usize }, + 112usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUMetricsSupportVtbl), + "::", + stringify!(GetGPUClockSpeedRange) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).GetGPUVRAMClockSpeedRange) as usize - ptr as usize }, + 120usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUMetricsSupportVtbl), + "::", + stringify!(GetGPUVRAMClockSpeedRange) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).GetGPUTemperatureRange) as usize - ptr as usize }, + 128usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUMetricsSupportVtbl), + "::", + stringify!(GetGPUTemperatureRange) + ) + ); + assert_eq!( + unsafe { + ::std::ptr::addr_of!((*ptr).GetGPUHotspotTemperatureRange) as usize - ptr as usize + }, + 136usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUMetricsSupportVtbl), + "::", + stringify!(GetGPUHotspotTemperatureRange) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).GetGPUPowerRange) as usize - ptr as usize }, + 144usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUMetricsSupportVtbl), + "::", + stringify!(GetGPUPowerRange) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).GetGPUFanSpeedRange) as usize - ptr as usize }, + 152usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUMetricsSupportVtbl), + "::", + stringify!(GetGPUFanSpeedRange) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).GetGPUVRAMRange) as usize - ptr as usize }, + 160usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUMetricsSupportVtbl), + "::", + stringify!(GetGPUVRAMRange) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).GetGPUVoltageRange) as usize - ptr as usize }, + 168usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUMetricsSupportVtbl), + "::", + stringify!(GetGPUVoltageRange) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).GetGPUTotalBoardPowerRange) as usize - ptr as usize }, + 176usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUMetricsSupportVtbl), + "::", + stringify!(GetGPUTotalBoardPowerRange) + ) + ); + assert_eq!( + unsafe { + ::std::ptr::addr_of!((*ptr).GetGPUIntakeTemperatureRange) as usize - ptr as usize + }, + 184usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUMetricsSupportVtbl), + "::", + stringify!(GetGPUIntakeTemperatureRange) + ) + ); + assert_eq!( + unsafe { + ::std::ptr::addr_of!((*ptr).IsSupportedGPUIntakeTemperature) as usize - ptr as usize + }, + 192usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUMetricsSupportVtbl), + "::", + stringify!(IsSupportedGPUIntakeTemperature) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct IADLXGPUMetricsSupport { + pub pVtbl: *const IADLXGPUMetricsSupportVtbl, +} +#[test] +fn bindgen_test_layout_IADLXGPUMetricsSupport() { + const UNINIT: ::std::mem::MaybeUninit = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(IADLXGPUMetricsSupport)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(IADLXGPUMetricsSupport)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).pVtbl) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUMetricsSupport), + "::", + stringify!(pVtbl) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct IADLXSystemMetricsSupportVtbl { + pub Acquire: ::std::option::Option< + unsafe extern "C" fn(pThis: *mut IADLXSystemMetricsSupport) -> adlx_long, + >, + pub Release: ::std::option::Option< + unsafe extern "C" fn(pThis: *mut IADLXSystemMetricsSupport) -> adlx_long, + >, + pub QueryInterface: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXSystemMetricsSupport, + interfaceId: *const wchar_t, + ppInterface: *mut *mut ::std::os::raw::c_void, + ) -> ADLX_RESULT, + >, + pub IsSupportedCPUUsage: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXSystemMetricsSupport, + supported: *mut adlx_bool, + ) -> ADLX_RESULT, + >, + pub IsSupportedSystemRAM: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXSystemMetricsSupport, + supported: *mut adlx_bool, + ) -> ADLX_RESULT, + >, + pub IsSupportedSmartShift: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXSystemMetricsSupport, + supported: *mut adlx_bool, + ) -> ADLX_RESULT, + >, + pub GetCPUUsageRange: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXSystemMetricsSupport, + minValue: *mut adlx_int, + maxValue: *mut adlx_int, + ) -> ADLX_RESULT, + >, + pub GetSystemRAMRange: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXSystemMetricsSupport, + minValue: *mut adlx_int, + maxValue: *mut adlx_int, + ) -> ADLX_RESULT, + >, + pub GetSmartShiftRange: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXSystemMetricsSupport, + minValue: *mut adlx_int, + maxValue: *mut adlx_int, + ) -> ADLX_RESULT, + >, +} +#[test] +fn bindgen_test_layout_IADLXSystemMetricsSupportVtbl() { + const UNINIT: ::std::mem::MaybeUninit = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 72usize, + concat!("Size of: ", stringify!(IADLXSystemMetricsSupportVtbl)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(IADLXSystemMetricsSupportVtbl)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Acquire) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(IADLXSystemMetricsSupportVtbl), + "::", + stringify!(Acquire) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Release) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(IADLXSystemMetricsSupportVtbl), + "::", + stringify!(Release) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).QueryInterface) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(IADLXSystemMetricsSupportVtbl), + "::", + stringify!(QueryInterface) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).IsSupportedCPUUsage) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(IADLXSystemMetricsSupportVtbl), + "::", + stringify!(IsSupportedCPUUsage) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).IsSupportedSystemRAM) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(IADLXSystemMetricsSupportVtbl), + "::", + stringify!(IsSupportedSystemRAM) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).IsSupportedSmartShift) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(IADLXSystemMetricsSupportVtbl), + "::", + stringify!(IsSupportedSmartShift) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).GetCPUUsageRange) as usize - ptr as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(IADLXSystemMetricsSupportVtbl), + "::", + stringify!(GetCPUUsageRange) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).GetSystemRAMRange) as usize - ptr as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(IADLXSystemMetricsSupportVtbl), + "::", + stringify!(GetSystemRAMRange) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).GetSmartShiftRange) as usize - ptr as usize }, + 64usize, + concat!( + "Offset of field: ", + stringify!(IADLXSystemMetricsSupportVtbl), + "::", + stringify!(GetSmartShiftRange) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct IADLXSystemMetricsSupport { + pub pVtbl: *const IADLXSystemMetricsSupportVtbl, +} +#[test] +fn bindgen_test_layout_IADLXSystemMetricsSupport() { + const UNINIT: ::std::mem::MaybeUninit = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(IADLXSystemMetricsSupport)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(IADLXSystemMetricsSupport)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).pVtbl) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(IADLXSystemMetricsSupport), + "::", + stringify!(pVtbl) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct IADLXGPUMetricsVtbl { + pub Acquire: + ::std::option::Option adlx_long>, + pub Release: + ::std::option::Option adlx_long>, + pub QueryInterface: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXGPUMetrics, + interfaceId: *const wchar_t, + ppInterface: *mut *mut ::std::os::raw::c_void, + ) -> ADLX_RESULT, + >, + pub TimeStamp: ::std::option::Option< + unsafe extern "C" fn(pThis: *mut IADLXGPUMetrics, ms: *mut adlx_int64) -> ADLX_RESULT, + >, + pub GPUUsage: ::std::option::Option< + unsafe extern "C" fn(pThis: *mut IADLXGPUMetrics, data: *mut adlx_double) -> ADLX_RESULT, + >, + pub GPUClockSpeed: ::std::option::Option< + unsafe extern "C" fn(pThis: *mut IADLXGPUMetrics, data: *mut adlx_int) -> ADLX_RESULT, + >, + pub GPUVRAMClockSpeed: ::std::option::Option< + unsafe extern "C" fn(pThis: *mut IADLXGPUMetrics, data: *mut adlx_int) -> ADLX_RESULT, + >, + pub GPUTemperature: ::std::option::Option< + unsafe extern "C" fn(pThis: *mut IADLXGPUMetrics, data: *mut adlx_double) -> ADLX_RESULT, + >, + pub GPUHotspotTemperature: ::std::option::Option< + unsafe extern "C" fn(pThis: *mut IADLXGPUMetrics, data: *mut adlx_double) -> ADLX_RESULT, + >, + pub GPUPower: ::std::option::Option< + unsafe extern "C" fn(pThis: *mut IADLXGPUMetrics, data: *mut adlx_double) -> ADLX_RESULT, + >, + pub GPUTotalBoardPower: ::std::option::Option< + unsafe extern "C" fn(pThis: *mut IADLXGPUMetrics, data: *mut adlx_double) -> ADLX_RESULT, + >, + pub GPUFanSpeed: ::std::option::Option< + unsafe extern "C" fn(pThis: *mut IADLXGPUMetrics, data: *mut adlx_int) -> ADLX_RESULT, + >, + pub GPUVRAM: ::std::option::Option< + unsafe extern "C" fn(pThis: *mut IADLXGPUMetrics, data: *mut adlx_int) -> ADLX_RESULT, + >, + pub GPUVoltage: ::std::option::Option< + unsafe extern "C" fn(pThis: *mut IADLXGPUMetrics, data: *mut adlx_int) -> ADLX_RESULT, + >, + pub GPUIntakeTemperature: ::std::option::Option< + unsafe extern "C" fn(pThis: *mut IADLXGPUMetrics, data: *mut adlx_double) -> ADLX_RESULT, + >, +} +#[test] +fn bindgen_test_layout_IADLXGPUMetricsVtbl() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 120usize, + concat!("Size of: ", stringify!(IADLXGPUMetricsVtbl)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(IADLXGPUMetricsVtbl)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Acquire) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUMetricsVtbl), + "::", + stringify!(Acquire) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Release) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUMetricsVtbl), + "::", + stringify!(Release) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).QueryInterface) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUMetricsVtbl), + "::", + stringify!(QueryInterface) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).TimeStamp) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUMetricsVtbl), + "::", + stringify!(TimeStamp) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).GPUUsage) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUMetricsVtbl), + "::", + stringify!(GPUUsage) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).GPUClockSpeed) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUMetricsVtbl), + "::", + stringify!(GPUClockSpeed) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).GPUVRAMClockSpeed) as usize - ptr as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUMetricsVtbl), + "::", + stringify!(GPUVRAMClockSpeed) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).GPUTemperature) as usize - ptr as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUMetricsVtbl), + "::", + stringify!(GPUTemperature) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).GPUHotspotTemperature) as usize - ptr as usize }, + 64usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUMetricsVtbl), + "::", + stringify!(GPUHotspotTemperature) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).GPUPower) as usize - ptr as usize }, + 72usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUMetricsVtbl), + "::", + stringify!(GPUPower) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).GPUTotalBoardPower) as usize - ptr as usize }, + 80usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUMetricsVtbl), + "::", + stringify!(GPUTotalBoardPower) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).GPUFanSpeed) as usize - ptr as usize }, + 88usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUMetricsVtbl), + "::", + stringify!(GPUFanSpeed) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).GPUVRAM) as usize - ptr as usize }, + 96usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUMetricsVtbl), + "::", + stringify!(GPUVRAM) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).GPUVoltage) as usize - ptr as usize }, + 104usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUMetricsVtbl), + "::", + stringify!(GPUVoltage) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).GPUIntakeTemperature) as usize - ptr as usize }, + 112usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUMetricsVtbl), + "::", + stringify!(GPUIntakeTemperature) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct IADLXGPUMetrics { + pub pVtbl: *const IADLXGPUMetricsVtbl, +} +#[test] +fn bindgen_test_layout_IADLXGPUMetrics() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(IADLXGPUMetrics)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(IADLXGPUMetrics)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).pVtbl) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUMetrics), + "::", + stringify!(pVtbl) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct IADLXGPUMetricsListVtbl { + pub Acquire: + ::std::option::Option adlx_long>, + pub Release: + ::std::option::Option adlx_long>, + pub QueryInterface: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXGPUMetricsList, + interfaceId: *const wchar_t, + ppInterface: *mut *mut ::std::os::raw::c_void, + ) -> ADLX_RESULT, + >, + pub Size: + ::std::option::Option adlx_uint>, + pub Empty: + ::std::option::Option adlx_bool>, + pub Begin: + ::std::option::Option adlx_uint>, + pub End: + ::std::option::Option adlx_uint>, + pub At: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXGPUMetricsList, + location: adlx_uint, + ppItem: *mut *mut IADLXInterface, + ) -> ADLX_RESULT, + >, + pub Clear: + ::std::option::Option ADLX_RESULT>, + pub Remove_Back: + ::std::option::Option ADLX_RESULT>, + pub Add_Back: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXGPUMetricsList, + pItem: *mut IADLXInterface, + ) -> ADLX_RESULT, + >, + pub At_GPUMetricsList: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXGPUMetricsList, + location: adlx_uint, + ppItem: *mut *mut IADLXGPUMetrics, + ) -> ADLX_RESULT, + >, + pub Add_Back_GPUMetricsList: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXGPUMetricsList, + pItem: *mut IADLXGPUMetrics, + ) -> ADLX_RESULT, + >, +} +#[test] +fn bindgen_test_layout_IADLXGPUMetricsListVtbl() { + const UNINIT: ::std::mem::MaybeUninit = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 104usize, + concat!("Size of: ", stringify!(IADLXGPUMetricsListVtbl)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(IADLXGPUMetricsListVtbl)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Acquire) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUMetricsListVtbl), + "::", + stringify!(Acquire) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Release) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUMetricsListVtbl), + "::", + stringify!(Release) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).QueryInterface) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUMetricsListVtbl), + "::", + stringify!(QueryInterface) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Size) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUMetricsListVtbl), + "::", + stringify!(Size) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Empty) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUMetricsListVtbl), + "::", + stringify!(Empty) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Begin) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUMetricsListVtbl), + "::", + stringify!(Begin) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).End) as usize - ptr as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUMetricsListVtbl), + "::", + stringify!(End) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).At) as usize - ptr as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUMetricsListVtbl), + "::", + stringify!(At) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Clear) as usize - ptr as usize }, + 64usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUMetricsListVtbl), + "::", + stringify!(Clear) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Remove_Back) as usize - ptr as usize }, + 72usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUMetricsListVtbl), + "::", + stringify!(Remove_Back) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Add_Back) as usize - ptr as usize }, + 80usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUMetricsListVtbl), + "::", + stringify!(Add_Back) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).At_GPUMetricsList) as usize - ptr as usize }, + 88usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUMetricsListVtbl), + "::", + stringify!(At_GPUMetricsList) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Add_Back_GPUMetricsList) as usize - ptr as usize }, + 96usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUMetricsListVtbl), + "::", + stringify!(Add_Back_GPUMetricsList) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct IADLXGPUMetricsList { + pub pVtbl: *const IADLXGPUMetricsListVtbl, +} +#[test] +fn bindgen_test_layout_IADLXGPUMetricsList() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(IADLXGPUMetricsList)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(IADLXGPUMetricsList)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).pVtbl) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(IADLXGPUMetricsList), + "::", + stringify!(pVtbl) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct IADLXSystemMetricsVtbl { + pub Acquire: + ::std::option::Option adlx_long>, + pub Release: + ::std::option::Option adlx_long>, + pub QueryInterface: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXSystemMetrics, + interfaceId: *const wchar_t, + ppInterface: *mut *mut ::std::os::raw::c_void, + ) -> ADLX_RESULT, + >, + pub TimeStamp: ::std::option::Option< + unsafe extern "C" fn(pThis: *mut IADLXSystemMetrics, ms: *mut adlx_int64) -> ADLX_RESULT, + >, + pub CPUUsage: ::std::option::Option< + unsafe extern "C" fn(pThis: *mut IADLXSystemMetrics, data: *mut adlx_double) -> ADLX_RESULT, + >, + pub SystemRAM: ::std::option::Option< + unsafe extern "C" fn(pThis: *mut IADLXSystemMetrics, data: *mut adlx_int) -> ADLX_RESULT, + >, + pub SmartShift: ::std::option::Option< + unsafe extern "C" fn(pThis: *mut IADLXSystemMetrics, data: *mut adlx_int) -> ADLX_RESULT, + >, +} +#[test] +fn bindgen_test_layout_IADLXSystemMetricsVtbl() { + const UNINIT: ::std::mem::MaybeUninit = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 56usize, + concat!("Size of: ", stringify!(IADLXSystemMetricsVtbl)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(IADLXSystemMetricsVtbl)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Acquire) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(IADLXSystemMetricsVtbl), + "::", + stringify!(Acquire) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Release) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(IADLXSystemMetricsVtbl), + "::", + stringify!(Release) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).QueryInterface) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(IADLXSystemMetricsVtbl), + "::", + stringify!(QueryInterface) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).TimeStamp) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(IADLXSystemMetricsVtbl), + "::", + stringify!(TimeStamp) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).CPUUsage) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(IADLXSystemMetricsVtbl), + "::", + stringify!(CPUUsage) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).SystemRAM) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(IADLXSystemMetricsVtbl), + "::", + stringify!(SystemRAM) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).SmartShift) as usize - ptr as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(IADLXSystemMetricsVtbl), + "::", + stringify!(SmartShift) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct IADLXSystemMetrics { + pub pVtbl: *const IADLXSystemMetricsVtbl, +} +#[test] +fn bindgen_test_layout_IADLXSystemMetrics() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(IADLXSystemMetrics)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(IADLXSystemMetrics)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).pVtbl) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(IADLXSystemMetrics), + "::", + stringify!(pVtbl) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct IADLXSystemMetricsListVtbl { + pub Acquire: ::std::option::Option< + unsafe extern "C" fn(pThis: *mut IADLXSystemMetricsList) -> adlx_long, + >, + pub Release: ::std::option::Option< + unsafe extern "C" fn(pThis: *mut IADLXSystemMetricsList) -> adlx_long, + >, + pub QueryInterface: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXSystemMetricsList, + interfaceId: *const wchar_t, + ppInterface: *mut *mut ::std::os::raw::c_void, + ) -> ADLX_RESULT, + >, + pub Size: ::std::option::Option< + unsafe extern "C" fn(pThis: *mut IADLXSystemMetricsList) -> adlx_uint, + >, + pub Empty: ::std::option::Option< + unsafe extern "C" fn(pThis: *mut IADLXSystemMetricsList) -> adlx_bool, + >, + pub Begin: ::std::option::Option< + unsafe extern "C" fn(pThis: *mut IADLXSystemMetricsList) -> adlx_uint, + >, + pub End: ::std::option::Option< + unsafe extern "C" fn(pThis: *mut IADLXSystemMetricsList) -> adlx_uint, + >, + pub At: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXSystemMetricsList, + location: adlx_uint, + ppItem: *mut *mut IADLXInterface, + ) -> ADLX_RESULT, + >, + pub Clear: ::std::option::Option< + unsafe extern "C" fn(pThis: *mut IADLXSystemMetricsList) -> ADLX_RESULT, + >, + pub Remove_Back: ::std::option::Option< + unsafe extern "C" fn(pThis: *mut IADLXSystemMetricsList) -> ADLX_RESULT, + >, + pub Add_Back: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXSystemMetricsList, + pItem: *mut IADLXInterface, + ) -> ADLX_RESULT, + >, + pub At_SystemMetricsList: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXSystemMetricsList, + location: adlx_uint, + ppItem: *mut *mut IADLXSystemMetrics, + ) -> ADLX_RESULT, + >, + pub Add_Back_SystemMetricsList: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXSystemMetricsList, + pItem: *mut IADLXSystemMetrics, + ) -> ADLX_RESULT, + >, +} +#[test] +fn bindgen_test_layout_IADLXSystemMetricsListVtbl() { + const UNINIT: ::std::mem::MaybeUninit = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 104usize, + concat!("Size of: ", stringify!(IADLXSystemMetricsListVtbl)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(IADLXSystemMetricsListVtbl)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Acquire) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(IADLXSystemMetricsListVtbl), + "::", + stringify!(Acquire) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Release) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(IADLXSystemMetricsListVtbl), + "::", + stringify!(Release) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).QueryInterface) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(IADLXSystemMetricsListVtbl), + "::", + stringify!(QueryInterface) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Size) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(IADLXSystemMetricsListVtbl), + "::", + stringify!(Size) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Empty) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(IADLXSystemMetricsListVtbl), + "::", + stringify!(Empty) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Begin) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(IADLXSystemMetricsListVtbl), + "::", + stringify!(Begin) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).End) as usize - ptr as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(IADLXSystemMetricsListVtbl), + "::", + stringify!(End) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).At) as usize - ptr as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(IADLXSystemMetricsListVtbl), + "::", + stringify!(At) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Clear) as usize - ptr as usize }, + 64usize, + concat!( + "Offset of field: ", + stringify!(IADLXSystemMetricsListVtbl), + "::", + stringify!(Clear) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Remove_Back) as usize - ptr as usize }, + 72usize, + concat!( + "Offset of field: ", + stringify!(IADLXSystemMetricsListVtbl), + "::", + stringify!(Remove_Back) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Add_Back) as usize - ptr as usize }, + 80usize, + concat!( + "Offset of field: ", + stringify!(IADLXSystemMetricsListVtbl), + "::", + stringify!(Add_Back) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).At_SystemMetricsList) as usize - ptr as usize }, + 88usize, + concat!( + "Offset of field: ", + stringify!(IADLXSystemMetricsListVtbl), + "::", + stringify!(At_SystemMetricsList) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Add_Back_SystemMetricsList) as usize - ptr as usize }, + 96usize, + concat!( + "Offset of field: ", + stringify!(IADLXSystemMetricsListVtbl), + "::", + stringify!(Add_Back_SystemMetricsList) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct IADLXSystemMetricsList { + pub pVtbl: *const IADLXSystemMetricsListVtbl, +} +#[test] +fn bindgen_test_layout_IADLXSystemMetricsList() { + const UNINIT: ::std::mem::MaybeUninit = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(IADLXSystemMetricsList)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(IADLXSystemMetricsList)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).pVtbl) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(IADLXSystemMetricsList), + "::", + stringify!(pVtbl) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct IADLXFPSVtbl { + pub Acquire: ::std::option::Option adlx_long>, + pub Release: ::std::option::Option adlx_long>, + pub QueryInterface: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXFPS, + interfaceId: *const wchar_t, + ppInterface: *mut *mut ::std::os::raw::c_void, + ) -> ADLX_RESULT, + >, + pub TimeStamp: ::std::option::Option< + unsafe extern "C" fn(pThis: *mut IADLXFPS, ms: *mut adlx_int64) -> ADLX_RESULT, + >, + pub FPS: ::std::option::Option< + unsafe extern "C" fn(pThis: *mut IADLXFPS, data: *mut adlx_int) -> ADLX_RESULT, + >, +} +#[test] +fn bindgen_test_layout_IADLXFPSVtbl() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 40usize, + concat!("Size of: ", stringify!(IADLXFPSVtbl)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(IADLXFPSVtbl)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Acquire) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(IADLXFPSVtbl), + "::", + stringify!(Acquire) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Release) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(IADLXFPSVtbl), + "::", + stringify!(Release) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).QueryInterface) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(IADLXFPSVtbl), + "::", + stringify!(QueryInterface) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).TimeStamp) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(IADLXFPSVtbl), + "::", + stringify!(TimeStamp) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).FPS) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(IADLXFPSVtbl), + "::", + stringify!(FPS) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct IADLXFPS { + pub pVtbl: *const IADLXFPSVtbl, +} +#[test] +fn bindgen_test_layout_IADLXFPS() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(IADLXFPS)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(IADLXFPS)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).pVtbl) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(IADLXFPS), + "::", + stringify!(pVtbl) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct IADLXFPSListVtbl { + pub Acquire: ::std::option::Option adlx_long>, + pub Release: ::std::option::Option adlx_long>, + pub QueryInterface: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXFPSList, + interfaceId: *const wchar_t, + ppInterface: *mut *mut ::std::os::raw::c_void, + ) -> ADLX_RESULT, + >, + pub Size: ::std::option::Option adlx_uint>, + pub Empty: ::std::option::Option adlx_bool>, + pub Begin: ::std::option::Option adlx_uint>, + pub End: ::std::option::Option adlx_uint>, + pub At: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXFPSList, + location: adlx_uint, + ppItem: *mut *mut IADLXInterface, + ) -> ADLX_RESULT, + >, + pub Clear: ::std::option::Option ADLX_RESULT>, + pub Remove_Back: + ::std::option::Option ADLX_RESULT>, + pub Add_Back: ::std::option::Option< + unsafe extern "C" fn(pThis: *mut IADLXFPSList, pItem: *mut IADLXInterface) -> ADLX_RESULT, + >, + pub At_FPSList: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXFPSList, + location: adlx_uint, + ppItem: *mut *mut IADLXFPS, + ) -> ADLX_RESULT, + >, + pub Add_Back_FPSList: ::std::option::Option< + unsafe extern "C" fn(pThis: *mut IADLXFPSList, pItem: *mut IADLXFPS) -> ADLX_RESULT, + >, +} +#[test] +fn bindgen_test_layout_IADLXFPSListVtbl() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 104usize, + concat!("Size of: ", stringify!(IADLXFPSListVtbl)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(IADLXFPSListVtbl)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Acquire) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(IADLXFPSListVtbl), + "::", + stringify!(Acquire) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Release) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(IADLXFPSListVtbl), + "::", + stringify!(Release) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).QueryInterface) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(IADLXFPSListVtbl), + "::", + stringify!(QueryInterface) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Size) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(IADLXFPSListVtbl), + "::", + stringify!(Size) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Empty) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(IADLXFPSListVtbl), + "::", + stringify!(Empty) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Begin) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(IADLXFPSListVtbl), + "::", + stringify!(Begin) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).End) as usize - ptr as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(IADLXFPSListVtbl), + "::", + stringify!(End) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).At) as usize - ptr as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(IADLXFPSListVtbl), + "::", + stringify!(At) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Clear) as usize - ptr as usize }, + 64usize, + concat!( + "Offset of field: ", + stringify!(IADLXFPSListVtbl), + "::", + stringify!(Clear) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Remove_Back) as usize - ptr as usize }, + 72usize, + concat!( + "Offset of field: ", + stringify!(IADLXFPSListVtbl), + "::", + stringify!(Remove_Back) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Add_Back) as usize - ptr as usize }, + 80usize, + concat!( + "Offset of field: ", + stringify!(IADLXFPSListVtbl), + "::", + stringify!(Add_Back) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).At_FPSList) as usize - ptr as usize }, + 88usize, + concat!( + "Offset of field: ", + stringify!(IADLXFPSListVtbl), + "::", + stringify!(At_FPSList) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Add_Back_FPSList) as usize - ptr as usize }, + 96usize, + concat!( + "Offset of field: ", + stringify!(IADLXFPSListVtbl), + "::", + stringify!(Add_Back_FPSList) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct IADLXFPSList { + pub pVtbl: *const IADLXFPSListVtbl, +} +#[test] +fn bindgen_test_layout_IADLXFPSList() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(IADLXFPSList)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(IADLXFPSList)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).pVtbl) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(IADLXFPSList), + "::", + stringify!(pVtbl) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct IADLXAllMetricsVtbl { + pub Acquire: + ::std::option::Option adlx_long>, + pub Release: + ::std::option::Option adlx_long>, + pub QueryInterface: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXAllMetrics, + interfaceId: *const wchar_t, + ppInterface: *mut *mut ::std::os::raw::c_void, + ) -> ADLX_RESULT, + >, + pub TimeStamp: ::std::option::Option< + unsafe extern "C" fn(pThis: *mut IADLXAllMetrics, ms: *mut adlx_int64) -> ADLX_RESULT, + >, + pub GetSystemMetrics: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXAllMetrics, + metrics: *mut *mut IADLXSystemMetrics, + ) -> ADLX_RESULT, + >, + pub GetFPS: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXAllMetrics, + metrics: *mut *mut IADLXFPS, + ) -> ADLX_RESULT, + >, + pub GetGPUMetrics: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXAllMetrics, + pGPU: *mut IADLXGPU, + metrics: *mut *mut IADLXGPUMetrics, + ) -> ADLX_RESULT, + >, +} +#[test] +fn bindgen_test_layout_IADLXAllMetricsVtbl() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 56usize, + concat!("Size of: ", stringify!(IADLXAllMetricsVtbl)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(IADLXAllMetricsVtbl)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Acquire) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(IADLXAllMetricsVtbl), + "::", + stringify!(Acquire) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Release) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(IADLXAllMetricsVtbl), + "::", + stringify!(Release) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).QueryInterface) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(IADLXAllMetricsVtbl), + "::", + stringify!(QueryInterface) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).TimeStamp) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(IADLXAllMetricsVtbl), + "::", + stringify!(TimeStamp) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).GetSystemMetrics) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(IADLXAllMetricsVtbl), + "::", + stringify!(GetSystemMetrics) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).GetFPS) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(IADLXAllMetricsVtbl), + "::", + stringify!(GetFPS) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).GetGPUMetrics) as usize - ptr as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(IADLXAllMetricsVtbl), + "::", + stringify!(GetGPUMetrics) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct IADLXAllMetrics { + pub pVtbl: *const IADLXAllMetricsVtbl, +} +#[test] +fn bindgen_test_layout_IADLXAllMetrics() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(IADLXAllMetrics)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(IADLXAllMetrics)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).pVtbl) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(IADLXAllMetrics), + "::", + stringify!(pVtbl) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct IADLXAllMetricsListVtbl { + pub Acquire: + ::std::option::Option adlx_long>, + pub Release: + ::std::option::Option adlx_long>, + pub QueryInterface: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXAllMetricsList, + interfaceId: *const wchar_t, + ppInterface: *mut *mut ::std::os::raw::c_void, + ) -> ADLX_RESULT, + >, + pub Size: + ::std::option::Option adlx_uint>, + pub Empty: + ::std::option::Option adlx_bool>, + pub Begin: + ::std::option::Option adlx_uint>, + pub End: + ::std::option::Option adlx_uint>, + pub At: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXAllMetricsList, + location: adlx_uint, + ppItem: *mut *mut IADLXInterface, + ) -> ADLX_RESULT, + >, + pub Clear: + ::std::option::Option ADLX_RESULT>, + pub Remove_Back: + ::std::option::Option ADLX_RESULT>, + pub Add_Back: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXAllMetricsList, + pItem: *mut IADLXInterface, + ) -> ADLX_RESULT, + >, + pub At_AllMetricsList: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXAllMetricsList, + location: adlx_uint, + ppItem: *mut *mut IADLXAllMetrics, + ) -> ADLX_RESULT, + >, + pub Add_Back_AllMetricsList: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXAllMetricsList, + pItem: *mut IADLXAllMetrics, + ) -> ADLX_RESULT, + >, +} +#[test] +fn bindgen_test_layout_IADLXAllMetricsListVtbl() { + const UNINIT: ::std::mem::MaybeUninit = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 104usize, + concat!("Size of: ", stringify!(IADLXAllMetricsListVtbl)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(IADLXAllMetricsListVtbl)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Acquire) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(IADLXAllMetricsListVtbl), + "::", + stringify!(Acquire) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Release) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(IADLXAllMetricsListVtbl), + "::", + stringify!(Release) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).QueryInterface) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(IADLXAllMetricsListVtbl), + "::", + stringify!(QueryInterface) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Size) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(IADLXAllMetricsListVtbl), + "::", + stringify!(Size) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Empty) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(IADLXAllMetricsListVtbl), + "::", + stringify!(Empty) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Begin) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(IADLXAllMetricsListVtbl), + "::", + stringify!(Begin) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).End) as usize - ptr as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(IADLXAllMetricsListVtbl), + "::", + stringify!(End) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).At) as usize - ptr as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(IADLXAllMetricsListVtbl), + "::", + stringify!(At) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Clear) as usize - ptr as usize }, + 64usize, + concat!( + "Offset of field: ", + stringify!(IADLXAllMetricsListVtbl), + "::", + stringify!(Clear) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Remove_Back) as usize - ptr as usize }, + 72usize, + concat!( + "Offset of field: ", + stringify!(IADLXAllMetricsListVtbl), + "::", + stringify!(Remove_Back) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Add_Back) as usize - ptr as usize }, + 80usize, + concat!( + "Offset of field: ", + stringify!(IADLXAllMetricsListVtbl), + "::", + stringify!(Add_Back) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).At_AllMetricsList) as usize - ptr as usize }, + 88usize, + concat!( + "Offset of field: ", + stringify!(IADLXAllMetricsListVtbl), + "::", + stringify!(At_AllMetricsList) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Add_Back_AllMetricsList) as usize - ptr as usize }, + 96usize, + concat!( + "Offset of field: ", + stringify!(IADLXAllMetricsListVtbl), + "::", + stringify!(Add_Back_AllMetricsList) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct IADLXAllMetricsList { + pub pVtbl: *const IADLXAllMetricsListVtbl, +} +#[test] +fn bindgen_test_layout_IADLXAllMetricsList() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(IADLXAllMetricsList)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(IADLXAllMetricsList)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).pVtbl) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(IADLXAllMetricsList), + "::", + stringify!(pVtbl) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct IADLXPerformanceMonitoringServicesVtbl { + pub Acquire: ::std::option::Option< + unsafe extern "C" fn(pThis: *mut IADLXPerformanceMonitoringServices) -> adlx_long, + >, + pub Release: ::std::option::Option< + unsafe extern "C" fn(pThis: *mut IADLXPerformanceMonitoringServices) -> adlx_long, + >, + pub QueryInterface: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXPerformanceMonitoringServices, + interfaceId: *const wchar_t, + ppInterface: *mut *mut ::std::os::raw::c_void, + ) -> ADLX_RESULT, + >, + pub GetSamplingIntervalRange: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXPerformanceMonitoringServices, + range: *mut ADLX_IntRange, + ) -> ADLX_RESULT, + >, + pub SetSamplingInterval: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXPerformanceMonitoringServices, + intervalMs: adlx_int, + ) -> ADLX_RESULT, + >, + pub GetSamplingInterval: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXPerformanceMonitoringServices, + intervalMs: *mut adlx_int, + ) -> ADLX_RESULT, + >, + pub GetMaxPerformanceMetricsHistorySizeRange: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXPerformanceMonitoringServices, + range: *mut ADLX_IntRange, + ) -> ADLX_RESULT, + >, + pub SetMaxPerformanceMetricsHistorySize: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXPerformanceMonitoringServices, + sizeSec: adlx_int, + ) -> ADLX_RESULT, + >, + pub GetMaxPerformanceMetricsHistorySize: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXPerformanceMonitoringServices, + sizeSec: *mut adlx_int, + ) -> ADLX_RESULT, + >, + pub ClearPerformanceMetricsHistory: ::std::option::Option< + unsafe extern "C" fn(pThis: *mut IADLXPerformanceMonitoringServices) -> ADLX_RESULT, + >, + pub GetCurrentPerformanceMetricsHistorySize: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXPerformanceMonitoringServices, + sizeSec: *mut adlx_int, + ) -> ADLX_RESULT, + >, + pub StartPerformanceMetricsTracking: ::std::option::Option< + unsafe extern "C" fn(pThis: *mut IADLXPerformanceMonitoringServices) -> ADLX_RESULT, + >, + pub StopPerformanceMetricsTracking: ::std::option::Option< + unsafe extern "C" fn(pThis: *mut IADLXPerformanceMonitoringServices) -> ADLX_RESULT, + >, + pub GetAllMetricsHistory: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXPerformanceMonitoringServices, + startMs: adlx_int, + stopMs: adlx_int, + ppMetricsList: *mut *mut IADLXAllMetricsList, + ) -> ADLX_RESULT, + >, + pub GetGPUMetricsHistory: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXPerformanceMonitoringServices, + pGPU: *mut IADLXGPU, + startMs: adlx_int, + stopMs: adlx_int, + ppMetricsList: *mut *mut IADLXGPUMetricsList, + ) -> ADLX_RESULT, + >, + pub GetSystemMetricsHistory: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXPerformanceMonitoringServices, + startMs: adlx_int, + stopMs: adlx_int, + ppMetricsList: *mut *mut IADLXSystemMetricsList, + ) -> ADLX_RESULT, + >, + pub GetFPSHistory: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXPerformanceMonitoringServices, + startMs: adlx_int, + stopMs: adlx_int, + ppMetricsList: *mut *mut IADLXFPSList, + ) -> ADLX_RESULT, + >, + pub GetCurrentAllMetrics: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXPerformanceMonitoringServices, + ppMetrics: *mut *mut IADLXAllMetrics, + ) -> ADLX_RESULT, + >, + pub GetCurrentGPUMetrics: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXPerformanceMonitoringServices, + pGPU: *mut IADLXGPU, + ppMetrics: *mut *mut IADLXGPUMetrics, + ) -> ADLX_RESULT, + >, + pub GetCurrentSystemMetrics: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXPerformanceMonitoringServices, + ppMetrics: *mut *mut IADLXSystemMetrics, + ) -> ADLX_RESULT, + >, + pub GetCurrentFPS: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXPerformanceMonitoringServices, + ppMetrics: *mut *mut IADLXFPS, + ) -> ADLX_RESULT, + >, + pub GetSupportedGPUMetrics: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXPerformanceMonitoringServices, + pGPU: *mut IADLXGPU, + ppMetricsSupported: *mut *mut IADLXGPUMetricsSupport, + ) -> ADLX_RESULT, + >, + pub GetSupportedSystemMetrics: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXPerformanceMonitoringServices, + ppMetricsSupported: *mut *mut IADLXSystemMetricsSupport, + ) -> ADLX_RESULT, + >, +} +#[test] +fn bindgen_test_layout_IADLXPerformanceMonitoringServicesVtbl() { + const UNINIT: ::std::mem::MaybeUninit = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 184usize, + concat!( + "Size of: ", + stringify!(IADLXPerformanceMonitoringServicesVtbl) + ) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!( + "Alignment of ", + stringify!(IADLXPerformanceMonitoringServicesVtbl) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Acquire) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(IADLXPerformanceMonitoringServicesVtbl), + "::", + stringify!(Acquire) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Release) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(IADLXPerformanceMonitoringServicesVtbl), + "::", + stringify!(Release) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).QueryInterface) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(IADLXPerformanceMonitoringServicesVtbl), + "::", + stringify!(QueryInterface) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).GetSamplingIntervalRange) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(IADLXPerformanceMonitoringServicesVtbl), + "::", + stringify!(GetSamplingIntervalRange) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).SetSamplingInterval) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(IADLXPerformanceMonitoringServicesVtbl), + "::", + stringify!(SetSamplingInterval) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).GetSamplingInterval) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(IADLXPerformanceMonitoringServicesVtbl), + "::", + stringify!(GetSamplingInterval) + ) + ); + assert_eq!( + unsafe { + ::std::ptr::addr_of!((*ptr).GetMaxPerformanceMetricsHistorySizeRange) as usize + - ptr as usize + }, + 48usize, + concat!( + "Offset of field: ", + stringify!(IADLXPerformanceMonitoringServicesVtbl), + "::", + stringify!(GetMaxPerformanceMetricsHistorySizeRange) + ) + ); + assert_eq!( + unsafe { + ::std::ptr::addr_of!((*ptr).SetMaxPerformanceMetricsHistorySize) as usize - ptr as usize + }, + 56usize, + concat!( + "Offset of field: ", + stringify!(IADLXPerformanceMonitoringServicesVtbl), + "::", + stringify!(SetMaxPerformanceMetricsHistorySize) + ) + ); + assert_eq!( + unsafe { + ::std::ptr::addr_of!((*ptr).GetMaxPerformanceMetricsHistorySize) as usize - ptr as usize + }, + 64usize, + concat!( + "Offset of field: ", + stringify!(IADLXPerformanceMonitoringServicesVtbl), + "::", + stringify!(GetMaxPerformanceMetricsHistorySize) + ) + ); + assert_eq!( + unsafe { + ::std::ptr::addr_of!((*ptr).ClearPerformanceMetricsHistory) as usize - ptr as usize + }, + 72usize, + concat!( + "Offset of field: ", + stringify!(IADLXPerformanceMonitoringServicesVtbl), + "::", + stringify!(ClearPerformanceMetricsHistory) + ) + ); + assert_eq!( + unsafe { + ::std::ptr::addr_of!((*ptr).GetCurrentPerformanceMetricsHistorySize) as usize + - ptr as usize + }, + 80usize, + concat!( + "Offset of field: ", + stringify!(IADLXPerformanceMonitoringServicesVtbl), + "::", + stringify!(GetCurrentPerformanceMetricsHistorySize) + ) + ); + assert_eq!( + unsafe { + ::std::ptr::addr_of!((*ptr).StartPerformanceMetricsTracking) as usize - ptr as usize + }, + 88usize, + concat!( + "Offset of field: ", + stringify!(IADLXPerformanceMonitoringServicesVtbl), + "::", + stringify!(StartPerformanceMetricsTracking) + ) + ); + assert_eq!( + unsafe { + ::std::ptr::addr_of!((*ptr).StopPerformanceMetricsTracking) as usize - ptr as usize + }, + 96usize, + concat!( + "Offset of field: ", + stringify!(IADLXPerformanceMonitoringServicesVtbl), + "::", + stringify!(StopPerformanceMetricsTracking) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).GetAllMetricsHistory) as usize - ptr as usize }, + 104usize, + concat!( + "Offset of field: ", + stringify!(IADLXPerformanceMonitoringServicesVtbl), + "::", + stringify!(GetAllMetricsHistory) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).GetGPUMetricsHistory) as usize - ptr as usize }, + 112usize, + concat!( + "Offset of field: ", + stringify!(IADLXPerformanceMonitoringServicesVtbl), + "::", + stringify!(GetGPUMetricsHistory) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).GetSystemMetricsHistory) as usize - ptr as usize }, + 120usize, + concat!( + "Offset of field: ", + stringify!(IADLXPerformanceMonitoringServicesVtbl), + "::", + stringify!(GetSystemMetricsHistory) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).GetFPSHistory) as usize - ptr as usize }, + 128usize, + concat!( + "Offset of field: ", + stringify!(IADLXPerformanceMonitoringServicesVtbl), + "::", + stringify!(GetFPSHistory) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).GetCurrentAllMetrics) as usize - ptr as usize }, + 136usize, + concat!( + "Offset of field: ", + stringify!(IADLXPerformanceMonitoringServicesVtbl), + "::", + stringify!(GetCurrentAllMetrics) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).GetCurrentGPUMetrics) as usize - ptr as usize }, + 144usize, + concat!( + "Offset of field: ", + stringify!(IADLXPerformanceMonitoringServicesVtbl), + "::", + stringify!(GetCurrentGPUMetrics) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).GetCurrentSystemMetrics) as usize - ptr as usize }, + 152usize, + concat!( + "Offset of field: ", + stringify!(IADLXPerformanceMonitoringServicesVtbl), + "::", + stringify!(GetCurrentSystemMetrics) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).GetCurrentFPS) as usize - ptr as usize }, + 160usize, + concat!( + "Offset of field: ", + stringify!(IADLXPerformanceMonitoringServicesVtbl), + "::", + stringify!(GetCurrentFPS) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).GetSupportedGPUMetrics) as usize - ptr as usize }, + 168usize, + concat!( + "Offset of field: ", + stringify!(IADLXPerformanceMonitoringServicesVtbl), + "::", + stringify!(GetSupportedGPUMetrics) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).GetSupportedSystemMetrics) as usize - ptr as usize }, + 176usize, + concat!( + "Offset of field: ", + stringify!(IADLXPerformanceMonitoringServicesVtbl), + "::", + stringify!(GetSupportedSystemMetrics) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct IADLXPerformanceMonitoringServices { + pub pVtbl: *const IADLXPerformanceMonitoringServicesVtbl, +} +#[test] +fn bindgen_test_layout_IADLXPerformanceMonitoringServices() { + const UNINIT: ::std::mem::MaybeUninit = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(IADLXPerformanceMonitoringServices)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!( + "Alignment of ", + stringify!(IADLXPerformanceMonitoringServices) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).pVtbl) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(IADLXPerformanceMonitoringServices), + "::", + stringify!(pVtbl) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct IADLXSystemMetricsSupport1Vtbl { + pub Acquire: ::std::option::Option< + unsafe extern "C" fn(pThis: *mut IADLXSystemMetricsSupport1) -> adlx_long, + >, + pub Release: ::std::option::Option< + unsafe extern "C" fn(pThis: *mut IADLXSystemMetricsSupport1) -> adlx_long, + >, + pub QueryInterface: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXSystemMetricsSupport1, + interfaceId: *const wchar_t, + ppInterface: *mut *mut ::std::os::raw::c_void, + ) -> ADLX_RESULT, + >, + pub IsSupportedCPUUsage: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXSystemMetricsSupport1, + supported: *mut adlx_bool, + ) -> ADLX_RESULT, + >, + pub IsSupportedSystemRAM: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXSystemMetricsSupport1, + supported: *mut adlx_bool, + ) -> ADLX_RESULT, + >, + pub IsSupportedSmartShift: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXSystemMetricsSupport1, + supported: *mut adlx_bool, + ) -> ADLX_RESULT, + >, + pub GetCPUUsageRange: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXSystemMetricsSupport1, + minValue: *mut adlx_int, + maxValue: *mut adlx_int, + ) -> ADLX_RESULT, + >, + pub GetSystemRAMRange: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXSystemMetricsSupport1, + minValue: *mut adlx_int, + maxValue: *mut adlx_int, + ) -> ADLX_RESULT, + >, + pub GetSmartShiftRange: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXSystemMetricsSupport1, + minValue: *mut adlx_int, + maxValue: *mut adlx_int, + ) -> ADLX_RESULT, + >, + pub IsSupportedPowerDistribution: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXSystemMetricsSupport1, + supported: *mut adlx_bool, + ) -> ADLX_RESULT, + >, +} +#[test] +fn bindgen_test_layout_IADLXSystemMetricsSupport1Vtbl() { + const UNINIT: ::std::mem::MaybeUninit = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 80usize, + concat!("Size of: ", stringify!(IADLXSystemMetricsSupport1Vtbl)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(IADLXSystemMetricsSupport1Vtbl)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Acquire) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(IADLXSystemMetricsSupport1Vtbl), + "::", + stringify!(Acquire) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Release) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(IADLXSystemMetricsSupport1Vtbl), + "::", + stringify!(Release) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).QueryInterface) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(IADLXSystemMetricsSupport1Vtbl), + "::", + stringify!(QueryInterface) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).IsSupportedCPUUsage) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(IADLXSystemMetricsSupport1Vtbl), + "::", + stringify!(IsSupportedCPUUsage) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).IsSupportedSystemRAM) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(IADLXSystemMetricsSupport1Vtbl), + "::", + stringify!(IsSupportedSystemRAM) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).IsSupportedSmartShift) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(IADLXSystemMetricsSupport1Vtbl), + "::", + stringify!(IsSupportedSmartShift) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).GetCPUUsageRange) as usize - ptr as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(IADLXSystemMetricsSupport1Vtbl), + "::", + stringify!(GetCPUUsageRange) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).GetSystemRAMRange) as usize - ptr as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(IADLXSystemMetricsSupport1Vtbl), + "::", + stringify!(GetSystemRAMRange) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).GetSmartShiftRange) as usize - ptr as usize }, + 64usize, + concat!( + "Offset of field: ", + stringify!(IADLXSystemMetricsSupport1Vtbl), + "::", + stringify!(GetSmartShiftRange) + ) + ); + assert_eq!( + unsafe { + ::std::ptr::addr_of!((*ptr).IsSupportedPowerDistribution) as usize - ptr as usize + }, + 72usize, + concat!( + "Offset of field: ", + stringify!(IADLXSystemMetricsSupport1Vtbl), + "::", + stringify!(IsSupportedPowerDistribution) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct IADLXSystemMetricsSupport1 { + pub pVtbl: *const IADLXSystemMetricsSupport1Vtbl, +} +#[test] +fn bindgen_test_layout_IADLXSystemMetricsSupport1() { + const UNINIT: ::std::mem::MaybeUninit = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(IADLXSystemMetricsSupport1)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(IADLXSystemMetricsSupport1)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).pVtbl) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(IADLXSystemMetricsSupport1), + "::", + stringify!(pVtbl) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct IADLXSystemMetrics1Vtbl { + pub Acquire: + ::std::option::Option adlx_long>, + pub Release: + ::std::option::Option adlx_long>, + pub QueryInterface: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXSystemMetrics1, + interfaceId: *const wchar_t, + ppInterface: *mut *mut ::std::os::raw::c_void, + ) -> ADLX_RESULT, + >, + pub TimeStamp: ::std::option::Option< + unsafe extern "C" fn(pThis: *mut IADLXSystemMetrics1, ms: *mut adlx_int64) -> ADLX_RESULT, + >, + pub CPUUsage: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXSystemMetrics1, + data: *mut adlx_double, + ) -> ADLX_RESULT, + >, + pub SystemRAM: ::std::option::Option< + unsafe extern "C" fn(pThis: *mut IADLXSystemMetrics1, data: *mut adlx_int) -> ADLX_RESULT, + >, + pub SmartShift: ::std::option::Option< + unsafe extern "C" fn(pThis: *mut IADLXSystemMetrics1, data: *mut adlx_int) -> ADLX_RESULT, + >, + pub PowerDistribution: ::std::option::Option< + unsafe extern "C" fn( + pThis: *mut IADLXSystemMetrics1, + apuShiftValue: *mut adlx_int, + gpuShiftValue: *mut adlx_int, + apuShiftLimit: *mut adlx_int, + gpuShiftLimit: *mut adlx_int, + totalShiftLimit: *mut adlx_int, + ) -> ADLX_RESULT, + >, +} +#[test] +fn bindgen_test_layout_IADLXSystemMetrics1Vtbl() { + const UNINIT: ::std::mem::MaybeUninit = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 64usize, + concat!("Size of: ", stringify!(IADLXSystemMetrics1Vtbl)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(IADLXSystemMetrics1Vtbl)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Acquire) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(IADLXSystemMetrics1Vtbl), + "::", + stringify!(Acquire) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Release) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(IADLXSystemMetrics1Vtbl), + "::", + stringify!(Release) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).QueryInterface) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(IADLXSystemMetrics1Vtbl), + "::", + stringify!(QueryInterface) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).TimeStamp) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(IADLXSystemMetrics1Vtbl), + "::", + stringify!(TimeStamp) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).CPUUsage) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(IADLXSystemMetrics1Vtbl), + "::", + stringify!(CPUUsage) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).SystemRAM) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(IADLXSystemMetrics1Vtbl), + "::", + stringify!(SystemRAM) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).SmartShift) as usize - ptr as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(IADLXSystemMetrics1Vtbl), + "::", + stringify!(SmartShift) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).PowerDistribution) as usize - ptr as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(IADLXSystemMetrics1Vtbl), + "::", + stringify!(PowerDistribution) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct IADLXSystemMetrics1 { + pub pVtbl: *const IADLXSystemMetrics1Vtbl, +} +#[test] +fn bindgen_test_layout_IADLXSystemMetrics1() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(IADLXSystemMetrics1)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(IADLXSystemMetrics1)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).pVtbl) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(IADLXSystemMetrics1), + "::", + stringify!(pVtbl) + ) + ); +} diff --git a/src/gpu.rs b/src/gpu.rs index 4201099..924fabe 100644 --- a/src/gpu.rs +++ b/src/gpu.rs @@ -107,7 +107,8 @@ impl Gpu { let mut x = MaybeUninit::uninit(); let result = unsafe { (self.vtable().DeviceId.unwrap())(self.as_raw(), x.as_mut_ptr()) }; - Error::from_result_with_assume_init_on_success(result, x).map(|x| unsafe { CStr::from_ptr(x).to_str().unwrap().to_string() }) + Error::from_result_with_assume_init_on_success(result, x) + .map(|x| unsafe { CStr::from_ptr(x).to_str().unwrap().to_string() }) } // #[doc(alias = "RevisionId")] // pub fn RevisionId(&self) -> Result<()> { diff --git a/src/gpu_list.rs b/src/gpu_list.rs index ac911b0..d4fea27 100644 --- a/src/gpu_list.rs +++ b/src/gpu_list.rs @@ -51,10 +51,7 @@ impl GpuList { } pub fn iter(&self) -> GpuIterator { - GpuIterator { - list: self, - i: 0, - } + GpuIterator { list: self, i: 0 } } } diff --git a/src/lib.rs b/src/lib.rs index e9dd2fe..5d28da5 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,5 +1,11 @@ #![doc = include_str!("../README.md")] +#[allow( + non_upper_case_globals, + non_camel_case_types, + non_snake_case, + dead_code +)] pub mod ffi; pub mod gpu; @@ -20,4 +26,4 @@ pub use interface::*; pub use list::*; pub use performance_monitoring_services::*; pub use result::*; -pub use system::*; \ No newline at end of file +pub use system::*; diff --git a/src/performance_monitoring_services.rs b/src/performance_monitoring_services.rs index 9d828c8..cfe95a4 100644 --- a/src/performance_monitoring_services.rs +++ b/src/performance_monitoring_services.rs @@ -106,10 +106,10 @@ impl PerformanceMonitoringServices { pub fn current_performance_metrics_history_size_in_sec(&self) -> Result { let mut size = MaybeUninit::uninit(); let result = unsafe { - (self.vtable().GetCurrentPerformanceMetricsHistorySize.unwrap())( - self.as_raw(), - size.as_mut_ptr(), - ) + (self + .vtable() + .GetCurrentPerformanceMetricsHistorySize + .unwrap())(self.as_raw(), size.as_mut_ptr()) }; Error::from_result_with_assume_init_on_success(result, size) } diff --git a/vendor/ADLX b/vendor/ADLX new file mode 160000 index 0000000..d361234 --- /dev/null +++ b/vendor/ADLX @@ -0,0 +1 @@ +Subproject commit d3612344d19250f6030b27a787e8eeb2322e5dec