Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
19ef219
Updated version to v178
GfxDisplayBot Feb 2, 2024
121042b
Updated version to v178 (#72)
murali-i Feb 2, 2024
19516e5
Updated version to v184
GfxDisplayBot Feb 28, 2024
5976873
Updated version to v184 (#75)
murali-i Feb 28, 2024
b8e0fa0
Update README.md
kpsam2000Intel Mar 14, 2024
f217ec3
Folder name update
GfxDisplayBot Mar 13, 2024
ffa90cc
Folder name update (#80)
murali-i Mar 14, 2024
0f5f3ec
Updated version to v192
GfxDisplayBot Apr 22, 2024
bb77e70
Updated version to v192 (#81)
murali-i Apr 22, 2024
9512dcc
Remove stale files
int-roh Apr 25, 2024
d206de6
Remove stale files (#84)
murali-i Apr 25, 2024
d2f9034
add required SECURITY.md file for OSSF Scorecard compliance
rdower May 3, 2024
65f5c43
Updated version to v196
GfxDisplayBot May 15, 2024
decef08
Updated version to v196 (#86)
murali-i May 15, 2024
029cb0f
Updated version to v200
GfxDisplayBot Jun 20, 2024
7ff695d
Updated version to v200 (#87)
murali-i Jun 20, 2024
558c2ac
add required SECURITY.md file for OSSF Scorecard compliance (#85)
murali-i Jun 20, 2024
0874942
Updated version to v202
GfxDisplayBot Jul 16, 2024
bfc8d4c
Updated version to v202 (#90)
murali-i Jul 16, 2024
cafcc9f
Updated version to v207
GfxDisplayBot Aug 26, 2024
5d7c64e
Updated version to v207 (#93)
murali-i Aug 26, 2024
ba54e30
Updated version to v210
GfxDisplayBot Oct 3, 2024
8e12e82
Updated version to v210 (#97)
murali-i Oct 3, 2024
e215946
Updated version to v213
GfxDisplayBot Nov 4, 2024
e6135cc
Updated version to v213 (#101)
ashutosh-d-shukla Nov 4, 2024
b913983
Updated version to v221
GfxDisplayBot Nov 21, 2024
26339e6
Updated version to v221 (#103)
ashutosh-d-shukla Nov 21, 2024
a3f76f8
Updated version to v225
GfxDisplayBot Feb 3, 2025
1b5892e
Updated version to v225 (#107)
murali-i Feb 3, 2025
9f7e0cc
Updated version to v233
GfxDisplayBot Mar 1, 2025
38ae843
Updated version to v233 (#111)
ashutosh-d-shukla Mar 1, 2025
7a9cf8e
Updated version to v240
GfxDisplayBot May 9, 2025
8f2c5c2
Updated version to v240 (#118)
ashutosh-d-shukla May 15, 2025
5a7edaf
Updated version to v247
GfxDisplayBot Jul 8, 2025
1bbacbf
Updated version to v247 (#121)
ashutosh-d-shukla Jul 9, 2025
523a523
Update README.md
kpsam2000Intel Sep 23, 2025
0419085
Update README.md (#126)
kpsam2000Intel Sep 23, 2025
b0f4524
Updated version to v252
GfxDisplayBot Sep 26, 2025
142ddd4
Updated version to v252 (#128)
ashutosh-d-shukla Sep 27, 2025
92ae846
Updated version to v255
GfxDisplayBot Oct 31, 2025
eee7881
Updated version to v255 (#130)
ashutosh-d-shukla Oct 31, 2025
81b306e
Updated version to v257
GfxDisplayBot Nov 4, 2025
0b95422
Updated version to v257 (#134)
ashutosh-d-shukla Nov 4, 2025
a06dbe1
Updated version to v262
GfxDisplayBot Dec 24, 2025
0d78708
Updated version to v262 (#136)
ashutosh-d-shukla Dec 24, 2025
1c2b0b8
Updated version to v268
GfxDisplayBot Jan 21, 2026
c32a172
Updated version to v268 (#139)
ashutosh-d-shukla Jan 22, 2026
9571258
Updated version to v272
GfxDisplayBot Feb 17, 2026
ad6d499
Updated version to v272 (#141)
ashutosh-d-shukla Feb 17, 2026
269974e
Update to latest Intel source, Rename ToothNClaw Wrapper
BassemMohsen Mar 1, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions SECURITY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Security Policy
Intel is committed to rapidly addressing security vulnerabilities affecting our customers and providing clear guidance on the solution, impact, severity and mitigation.

## Reporting a Vulnerability
Please report any security vulnerabilities in this project utilizing the guidelines [here](https://www.intel.com/content/www/us/en/security-center/vulnerability-handling-guidelines.html).
557 changes: 440 additions & 117 deletions Samples/3D_Feature_Samples/3D_Feature_Sample_App.cpp

Large diffs are not rendered by default.

6 changes: 3 additions & 3 deletions Samples/3D_Feature_Samples/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
cmake_minimum_required(VERSION 3.2.0 FATAL_ERROR)
cmake_minimum_required(VERSION 3.13.4 FATAL_ERROR)
set(TARGET_NAME 3D_Feature_Samples)
get_filename_component(ROOT_DIR ../../ ABSOLUTE)
project(3D_Feature_Samples VERSION 1.0)
add_executable(${TARGET_NAME}
${CMAKE_CURRENT_SOURCE_DIR}/3D_Feature_Sample_App.cpp
${ROOT_DIR}/wrapper/cApiWrapper.cpp
${ROOT_DIR}/Source/cApiWrapper.cpp
)

if(MSVC)
Expand All @@ -18,5 +18,5 @@ if(MSVC)
ADD_DEFINITIONS(-D_UNICODE)
endif()

include_directories(${ROOT_DIR}/includes)
include_directories(${ROOT_DIR}/include)
include_directories(${ROOT_DIR}/Samples/inc)
6 changes: 3 additions & 3 deletions Samples/Color_Samples/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
cmake_minimum_required(VERSION 3.2.0 FATAL_ERROR)
cmake_minimum_required(VERSION 3.13.4 FATAL_ERROR)
set(TARGET_NAME Color_Samples)
get_filename_component(ROOT_DIR ../../ ABSOLUTE)
project(Color_Samples VERSION 1.0)
add_executable(${TARGET_NAME}
${CMAKE_CURRENT_SOURCE_DIR}/ColorAlgorithms_App.cpp
${CMAKE_CURRENT_SOURCE_DIR}/Color_Sample_App.cpp
${CMAKE_CURRENT_SOURCE_DIR}/ColorAlgorithms_App.h
${ROOT_DIR}/wrapper/cApiWrapper.cpp
${ROOT_DIR}/Source/cApiWrapper.cpp
)

if(MSVC)
Expand All @@ -20,5 +20,5 @@ if(MSVC)
ADD_DEFINITIONS(-D_UNICODE)
endif()

include_directories(${ROOT_DIR}/includes)
include_directories(${ROOT_DIR}/include)
include_directories(${ROOT_DIR}/Samples/inc)
209 changes: 151 additions & 58 deletions Samples/Color_Samples/Color_Sample_App.cpp

Large diffs are not rendered by default.

6 changes: 3 additions & 3 deletions Samples/CombinedDisplay/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
cmake_minimum_required(VERSION 3.2.0 FATAL_ERROR)
cmake_minimum_required(VERSION 3.13.4 FATAL_ERROR)
set(TARGET_NAME CombinedDisplay)
get_filename_component(ROOT_DIR ../../ ABSOLUTE)
project(CombinedDisplay VERSION 1.0)
add_executable(${TARGET_NAME}
${CMAKE_CURRENT_SOURCE_DIR}/CombinedDisplay_Sample_App.cpp
${ROOT_DIR}/wrapper/cApiWrapper.cpp
${ROOT_DIR}/Source/cApiWrapper.cpp
)

if(MSVC)
Expand All @@ -18,5 +18,5 @@ if(MSVC)
ADD_DEFINITIONS(-D_UNICODE)
endif()

include_directories(${ROOT_DIR}/includes)
include_directories(${ROOT_DIR}/include)
include_directories(${ROOT_DIR}/Samples/inc)
115 changes: 76 additions & 39 deletions Samples/CombinedDisplay/CombinedDisplay_Sample_App.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -56,14 +56,14 @@ enum ChildInfoIndex
***************************************************************/
void PrintUsage(char *pArgv[])
{
printf("Combined Display Sample Test Application.\n");
printf("\nUsage: %s [Combined Display Port] <Config File>\n", pArgv[0]);
printf("\nCombined Display Port - 0 | 1\n");
printf("\tCombined Display port number you want to disable or query. Default is 0.\n");
printf("Config File - sample config file\n");
printf("\tEnable.cfg - Enabling 1x2 mode of Combined Display with 1080p displays\n");
printf("\tDisable.cfg - Disabling Combined Display\n");
printf("\tQuery.cfg - Querying current Combined Display topology\n");
APP_LOG_INFO("Combined Display Sample Test Application.");
APP_LOG_INFO("Usage: %s [Combined Display Port] <Config File>", pArgv[0]);
APP_LOG_INFO("Combined Display Port - 0 | 1");
APP_LOG_INFO("Combined Display port number you want to disable or query. Default is 0.");
APP_LOG_INFO("Config File - sample config file");
APP_LOG_INFO("Enable.cfg - Enabling 1x2 mode of Combined Display with 1080p displays");
APP_LOG_INFO("Disable.cfg - Disabling Combined Display");
APP_LOG_INFO("Query.cfg - Querying current Combined Display topology");
}

/***************************************************************
Expand All @@ -82,7 +82,7 @@ ctl_result_t ParseArguments(const char *pCDArgFile, ctl_combined_display_args_t

if (false == ConfigFile.is_open())
{
printf("Cannot open a config file.\n");
APP_LOG_ERROR("Cannot open a config file.");
Result = CTL_RESULT_ERROR_INVALID_ARGUMENT;
EXIT_ON_ERROR(Result);
}
Expand All @@ -107,7 +107,7 @@ ctl_result_t ParseArguments(const char *pCDArgFile, ctl_combined_display_args_t
}

// Print lines
printf("%s = %s\n", Name.c_str(), Value.c_str());
APP_LOG_INFO("%s = %s", Name.c_str(), Value.c_str());

// Fill out combined display config arguments
pCombinedDisplayArgs->Size = sizeof(ctl_combined_display_args_t);
Expand Down Expand Up @@ -163,7 +163,7 @@ ctl_result_t ParseChildInfoArguments(const char *pCDArgFile, ctl_combined_displa

if (false == ConfigFile.is_open())
{
printf("Cannot open a config file.\n");
APP_LOG_ERROR("Cannot open a config file.");
Result = CTL_RESULT_ERROR_INVALID_ARGUMENT;
EXIT_ON_ERROR(Result);
}
Expand Down Expand Up @@ -296,7 +296,7 @@ ctl_result_t ParseDisplayOrderArguments(uint8_t NumOutputs, const char *pCDArgFi

if (false == ConfigFile.is_open())
{
printf("Cannot open a config file.\n");
APP_LOG_ERROR("Cannot open a config file.");
Result = CTL_RESULT_ERROR_INVALID_ARGUMENT;
EXIT_ON_ERROR(Result);
}
Expand Down Expand Up @@ -338,7 +338,7 @@ ctl_result_t ParseDisplayOrderArguments(uint8_t NumOutputs, const char *pCDArgFi
break;
}
}
Order = Value;
Order = move(Value);
SelectedDisplays[Index] = stoi(Order);
break;
}
Expand All @@ -362,23 +362,23 @@ void PrintCombinedConfig(const ctl_combined_display_args_t CombinedDisplayArgs)
ctl_rect_t FbSrc, FbPos;
ctl_child_display_target_mode_t TargetMode;

printf("========= Combined Display Configuration =========\n");
printf("Number of Display Outputs: %u\n", CombinedDisplayArgs.NumOutputs);
printf("Combined Display Width: %u\n", CombinedDisplayArgs.CombinedDesktopWidth);
printf("Combined Display Height: %u\n", CombinedDisplayArgs.CombinedDesktopHeight);
PRINT_LOGS("========= Combined Display Configuration =========");
APP_LOG_INFO("Number of Display Outputs: %u", CombinedDisplayArgs.NumOutputs);
APP_LOG_INFO("Combined Display Width: %u", CombinedDisplayArgs.CombinedDesktopWidth);
APP_LOG_INFO("Combined Display Height: %u", CombinedDisplayArgs.CombinedDesktopHeight);
for (uint8_t i = 0; i < CombinedDisplayArgs.NumOutputs; i++)
{
FbSrc = CombinedDisplayArgs.pChildInfo[i].FbSrc;
FbPos = CombinedDisplayArgs.pChildInfo[i].FbPos;
TargetMode = CombinedDisplayArgs.pChildInfo[i].TargetMode;

printf("Display[%u]: ", i);
printf("{%u,%u,%u,%u},", FbSrc.Left, FbSrc.Top, FbSrc.Right, FbSrc.Bottom);
printf("{%u,%u,%u,%u},", FbPos.Left, FbPos.Top, FbPos.Right, FbPos.Bottom);
printf("%u,", CombinedDisplayArgs.pChildInfo[i].DisplayOrientation);
printf("{%u,%u,%.1f}\n", TargetMode.Width, TargetMode.Height, TargetMode.RefreshRate);
APP_LOG_INFO("Display[%u]: ", i);
APP_LOG_INFO("{%u,%u,%u,%u},", FbSrc.Left, FbSrc.Top, FbSrc.Right, FbSrc.Bottom);
APP_LOG_INFO("{%u,%u,%u,%u},", FbPos.Left, FbPos.Top, FbPos.Right, FbPos.Bottom);
APP_LOG_INFO("%u,", CombinedDisplayArgs.pChildInfo[i].DisplayOrientation);
APP_LOG_INFO("{%u,%u,%.1f}", TargetMode.Width, TargetMode.Height, TargetMode.RefreshRate);
}
printf("==========================================================\n");
PRINT_LOGS("==========================================================");
}

/***************************************************************
Expand Down Expand Up @@ -491,7 +491,7 @@ ctl_result_t TestCombinedDisplay(uint32_t AdapterCount, ctl_device_adapter_handl
}
else if (DisplayCount <= 0)
{
printf("Invalid Display Count. Skipping display enumeration for adapter: %d\n", Index);
APP_LOG_WARN("Invalid Display Count. Skipping display enumeration for adapter: %d", Index);
CTL_FREE_MEM(pSelectedDisplays);
continue;
}
Expand Down Expand Up @@ -519,7 +519,7 @@ ctl_result_t TestCombinedDisplay(uint32_t AdapterCount, ctl_device_adapter_handl

if (NULL == pHDisplayOutput[i])
{
printf("pHDisplayOutput[%d] is NULL.\n", i);
APP_LOG_ERROR("pHDisplayOutput[%d] is NULL.", i);
Result = CTL_RESULT_ERROR_INVALID_NULL_HANDLE;
EXIT_ON_ERROR(Result);
}
Expand All @@ -539,8 +539,9 @@ ctl_result_t TestCombinedDisplay(uint32_t AdapterCount, ctl_device_adapter_handl
pHCombinedDisplayOutputs[CombinedDisplayCount++] = pHDisplayOutput[i];
}

uint32_t CombinedAllowedEncoderTypes = CTL_ENCODER_CONFIG_FLAG_TYPEC_CAPABLE | CTL_ENCODER_CONFIG_FLAG_TBT_CAPABLE | CTL_ENCODER_CONFIG_FLAG_DITHERING_SUPPORTED;
bool IsCombinedAvailable = false;
uint32_t CombinedAllowedEncoderTypes =
CTL_ENCODER_CONFIG_FLAG_TYPEC_CAPABLE | CTL_ENCODER_CONFIG_FLAG_TBT_CAPABLE | CTL_ENCODER_CONFIG_FLAG_DITHERING_SUPPORTED | CTL_ENCODER_CONFIG_FLAG_INTERNAL_DISPLAY;
bool IsCombinedAvailable = false;

IsCombinedAvailable = (0 == stDisplayEncoderProperties.EncoderConfigFlags) || (stDisplayEncoderProperties.EncoderConfigFlags & CombinedAllowedEncoderTypes);
IsDisplayActive = stDisplayProperties.DisplayConfigFlags & CTL_DISPLAY_CONFIG_FLAG_DISPLAY_ACTIVE;
Expand All @@ -558,7 +559,7 @@ ctl_result_t TestCombinedDisplay(uint32_t AdapterCount, ctl_device_adapter_handl
{
if (CombinedDisplayArgs.NumOutputs > NumActiveOutputs)
{
printf("The input NumOutputs of %u is greater than the system's NumActiveOutputs of %u.\n", CombinedDisplayArgs.NumOutputs, NumActiveOutputs);
APP_LOG_ERROR("The input NumOutputs of %u is greater than the system's NumActiveOutputs of %u.", CombinedDisplayArgs.NumOutputs, NumActiveOutputs);
Result = CTL_RESULT_ERROR_INVALID_ARGUMENT;
EXIT_ON_ERROR(Result);
}
Expand All @@ -568,7 +569,7 @@ ctl_result_t TestCombinedDisplay(uint32_t AdapterCount, ctl_device_adapter_handl
{
if ((CTL_DISPLAY_ORIENTATION_0 != CombinedDisplayArgs.pChildInfo[i].DisplayOrientation) && (CTL_DISPLAY_ORIENTATION_180 != CombinedDisplayArgs.pChildInfo[i].DisplayOrientation))
{
printf("Only 0/180 degree rotation is supported.\n");
APP_LOG_ERROR("Only 0/180 degree rotation is supported.");
Result = CTL_RESULT_ERROR_INVALID_ARGUMENT;
EXIT_ON_ERROR(Result);
}
Expand All @@ -583,7 +584,7 @@ ctl_result_t TestCombinedDisplay(uint32_t AdapterCount, ctl_device_adapter_handl
Result = ctlGetSetCombinedDisplay(hDevices[Index], &CombinedDisplayArgs);
if (CTL_RESULT_SUCCESS == Result && CombinedDisplayArgs.IsSupported == false)
{
printf("The following Combined Display configuration is not supported\n");
APP_LOG_WARN("The following Combined Display configuration is not supported");
PrintCombinedConfig(CombinedDisplayArgs);
}
}
Expand Down Expand Up @@ -680,28 +681,64 @@ int main(int argc, char *pArgv[])
CtlInitArgs.Size = sizeof(CtlInitArgs);
CtlInitArgs.Version = 0;

Result = ctlInit(&CtlInitArgs, &hAPIHandle);
LOG_AND_EXIT_ON_ERROR(Result, "ctlInit");
try
{
Result = ctlInit(&CtlInitArgs, &hAPIHandle);
LOG_AND_EXIT_ON_ERROR(Result, "ctlInit");
}
catch (const std::bad_array_new_length &e)
{
APP_LOG_ERROR("%s ", e.what());
}

// Initialization successful
// Get the list of Intel Adapters
Result = ctlEnumerateDevices(hAPIHandle, &AdapterCount, NULL);
LOG_AND_EXIT_ON_ERROR(Result, "ctlEnumerateDevices");
try
{
Result = ctlEnumerateDevices(hAPIHandle, &AdapterCount, NULL);
LOG_AND_EXIT_ON_ERROR(Result, "ctlEnumerateDevices");
}
catch (const std::bad_array_new_length &e)
{
APP_LOG_ERROR("%s ", e.what());
}

hDevices = (ctl_device_adapter_handle_t *)malloc(sizeof(ctl_device_adapter_handle_t) * AdapterCount);
EXIT_ON_MEM_ALLOC_FAILURE(hDevices, "hDevices");

Result = ctlEnumerateDevices(hAPIHandle, &AdapterCount, hDevices);
LOG_AND_EXIT_ON_ERROR(Result, "ctlEnumerateDevices");
try
{
Result = ctlEnumerateDevices(hAPIHandle, &AdapterCount, hDevices);
LOG_AND_EXIT_ON_ERROR(Result, "ctlEnumerateDevices");
}
catch (const std::bad_array_new_length &e)
{
APP_LOG_ERROR("%s ", e.what());
}

Result = TestCombinedDisplay(AdapterCount, hDevices, pCDArgFile, CombinedPort);
LOG_AND_EXIT_ON_ERROR(Result, "TestCombinedDisplay");
try
{
Result = TestCombinedDisplay(AdapterCount, hDevices, pCDArgFile, CombinedPort);
LOG_AND_EXIT_ON_ERROR(Result, "TestCombinedDisplay");
}
catch (const std::bad_array_new_length &e)
{
APP_LOG_ERROR("%s ", e.what());
}
catch (const std::ios_base::failure &e)
{
APP_LOG_ERROR("%s ", e.what());
}
catch (const std::bad_cast &e)
{
APP_LOG_ERROR("%s ", e.what());
}

Exit:

ctlClose(hAPIHandle);
CTL_FREE_MEM(hDevices);

printf("Overall test result is 0x%X\n", GResult);
APP_LOG_INFO("Overall test result is 0x%X", GResult);
return GResult;
}
17 changes: 17 additions & 0 deletions Samples/CombinedDisplay/Disable.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
## syntax - OpType and NumOutputs must be placed at first. Configuration item label is case sensitive.

OpType = 3 # Operation type: 1 -- Is_Supported_Config, 2 -- Enable, 3 -- Disable, 4 -- Query_Config
NumOutputs = 4 # Number of (display) outputs: has to be 2 or greater, maximum is 4.
DisplayOrder = 0,1,2,3 # which displays are involved: 0 indicates the first, 1 indicates the 2nd, and so on. order matters, "1 0" means display 1 will be viewed as first elected and display 0 is will be viewed as 2nd selected.
CombinedDesktopWidth = 3840 # combined display width
CombinedDesktopHeight = 2160 # combined display height

# ChildInfo = Display Number,{FbSrc},{FbPos},Orientation,{Target Mode} where
# FbSrc = {left,top,right,bottom}
# FbPos = {left,top,right,bottom}
# Display Orientation = 0 (0 rotation), 2 (180 rotation)
# Target Mode = {width, height, refresh} : If 0, this means using native target mode instead of custom mode
ChildInfo = 0,{0,0,1920,1080},{0,0,1920,1080}, 0, {0,0,0}
ChildInfo = 1,{1920,0,3840,1080},{0,0,1920,1080}, 0, {0,0,0}
ChildInfo = 2,{0,1080,1920,2160},{0,0,1920,1080}, 0, {0,0,0}
ChildInfo = 3,{1920,1080,3840,2160},{0,0,1920,1080}, 0, {0,0,0}
17 changes: 17 additions & 0 deletions Samples/CombinedDisplay/Enable.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
## syntax - OpType and NumOutputs must be placed at first. Configuration item label is case sensitive.

OpType = 2 # Operation type: 1 -- Is_Supported_Config, 2 -- Enable, 3 -- Disable, 4 -- Query_Config
NumOutputs = 2 # Number of (display) outputs: has to be 2 or greater, maximum is 4.
DisplayOrder = 0,1,2,3 # which displays are involved: 0 indicates the first, 1 indicates the 2nd, and so on. order matters, "1 0" means display 1 will be viewed as first elected and display 0 is will be viewed as 2nd selected.
CombinedDesktopWidth = 3840 # combined display width
CombinedDesktopHeight = 1080 # combined display height

# ChildInfo = Display Number,{FbSrc},{FbPos},Orientation,{Target Mode} where
# FbSrc = {left,top,right,bottom}
# FbPos = {left,top,right,bottom}
# Display Orientation = 0 (0 rotation), 2 (180 rotation)
# Target Mode = {width, height, refresh} : If 0, this means using native target mode instead of custom mode
ChildInfo = 0,{0,0,1920,1080},{0,0,1920,1080}, 0, {0,0,0}
ChildInfo = 1,{1920,0,3840,1080},{0,0,1920,1080}, 0, {0,0,0}
ChildInfo = 2,{0,1080,1920,2160},{0,0,1920,1080}, 0, {0,0,0}
ChildInfo = 3,{1920,1080,3840,2160},{0,0,1920,1080}, 0, {0,0,0}
17 changes: 17 additions & 0 deletions Samples/CombinedDisplay/Query.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
## syntax - OpType and NumOutputs must be placed at first. Configuration item label is case sensitive.

OpType = 4 # Operation type: 1 -- Is_Supported_Config, 2 -- Enable, 3 -- Disable, 4 -- Query_Config
NumOutputs = 4 # Number of (display) outputs: has to be 2 or greater, maximum is 4.
DisplayOrder = 0,1,2,3 # which displays are involved: 0 indicates the first, 1 indicates the 2nd, and so on. order matters, "1 0" means display 1 will be viewed as first elected and display 0 is will be viewed as 2nd selected.
CombinedDesktopWidth = 3840 # combined display width
CombinedDesktopHeight = 2160 # combined display height

# ChildInfo = Display Number,{FbSrc},{FbPos},Orientation,{Target Mode} where
# FbSrc = {left,top,right,bottom}
# FbPos = {left,top,right,bottom}
# Display Orientation = 0 (0 rotation), 2 (180 rotation)
# Target Mode = {width, height, refresh} : If 0, this means using native target mode instead of custom mode
ChildInfo = 0,{0,0,1920,1080},{0,0,1920,1080}, 0, {0,0,0}
ChildInfo = 1,{1920,0,3840,1080},{0,0,1920,1080}, 0, {0,0,0}
ChildInfo = 2,{0,1080,1920,2160},{0,0,1920,1080}, 0, {0,0,0}
ChildInfo = 3,{1920,1080,3840,2160},{0,0,1920,1080}, 0, {0,0,0}
6 changes: 3 additions & 3 deletions Samples/Custom_Mode_Samples/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
cmake_minimum_required(VERSION 3.2.0 FATAL_ERROR)
cmake_minimum_required(VERSION 3.13.4 FATAL_ERROR)
set(TARGET_NAME Custom_Mode_Samples)
get_filename_component(ROOT_DIR ../../ ABSOLUTE)
project(Custom_Mode_Samples VERSION 1.0)
add_executable(${TARGET_NAME}
${CMAKE_CURRENT_SOURCE_DIR}/CustomMode_Sample_App.cpp
${ROOT_DIR}/wrapper/cApiWrapper.cpp
${ROOT_DIR}/Source/cApiWrapper.cpp
)

if(MSVC)
Expand All @@ -18,5 +18,5 @@ if(MSVC)
ADD_DEFINITIONS(-D_UNICODE)
endif()

include_directories(${ROOT_DIR}/includes)
include_directories(${ROOT_DIR}/include)
include_directories(${ROOT_DIR}/Samples/inc)
Loading