From a67d56bda6eebe64618e12743c5a67832455cd95 Mon Sep 17 00:00:00 2001 From: Apprentice-Alchemist <53486764+Apprentice-Alchemist@users.noreply.github.com> Date: Mon, 20 Jun 2022 09:33:39 +0200 Subject: [PATCH] Add Display test. --- .gitignore | 2 ++ Tests/Display/Deployment/keepme | 0 Tests/Display/Sources/display.c | 45 +++++++++++++++++++++++++++++++++ Tests/Display/kfile.js | 10 ++++++++ 4 files changed, 57 insertions(+) create mode 100644 Tests/Display/Deployment/keepme create mode 100644 Tests/Display/Sources/display.c create mode 100644 Tests/Display/kfile.js diff --git a/.gitignore b/.gitignore index 0c2e479c4..cd930842c 100644 --- a/.gitignore +++ b/.gitignore @@ -13,3 +13,5 @@ **/Deployment/MultiWindow compile_commands.json .vscode/** +**/Deployment/** +!**/Deployment/keepme* \ No newline at end of file diff --git a/Tests/Display/Deployment/keepme b/Tests/Display/Deployment/keepme new file mode 100644 index 000000000..e69de29bb diff --git a/Tests/Display/Sources/display.c b/Tests/Display/Sources/display.c new file mode 100644 index 000000000..182acb995 --- /dev/null +++ b/Tests/Display/Sources/display.c @@ -0,0 +1,45 @@ +#include "kinc/string.h" +#include +#include + +void print_mode(const char *indent, kinc_display_mode_t mode) { + kinc_log(KINC_LOG_LEVEL_INFO, "%sx: %i", indent, mode.x); + kinc_log(KINC_LOG_LEVEL_INFO, "%sy: %i", indent, mode.y); + kinc_log(KINC_LOG_LEVEL_INFO, "%swidth: %i", indent, mode.width); + kinc_log(KINC_LOG_LEVEL_INFO, "%sheight: %i", indent, mode.height); + kinc_log(KINC_LOG_LEVEL_INFO, "%spixels_per_inch: %i", indent, mode.pixels_per_inch); + kinc_log(KINC_LOG_LEVEL_INFO, "%sfrequency: %i", indent, mode.frequency); + kinc_log(KINC_LOG_LEVEL_INFO, "%sbits_per_pixel: %i", indent, mode.bits_per_pixel); +} + +int kickstart(int argc, char **argv) { + bool print_modes = false; + if (argc > 1 && kinc_string_compare(argv[1], "--print-modes") == 0) { + print_modes = true; + } + kinc_display_init(); + int count = kinc_count_displays(); + kinc_log(KINC_LOG_LEVEL_INFO, "display count: %i", count); + kinc_log(KINC_LOG_LEVEL_INFO, "primary display: %i", kinc_primary_display()); + for (int i = 0; i < count; i++) { + bool available = kinc_display_available(i); + kinc_log(KINC_LOG_LEVEL_INFO, "display %i:", i); + kinc_log(KINC_LOG_LEVEL_INFO, "\tavailable: %s", available ? "true" : "false"); + if (available) { + kinc_log(KINC_LOG_LEVEL_INFO, "\tname: %s", kinc_display_name(i)); + kinc_display_mode_t mode = kinc_display_current_mode(i); + print_mode("\t", mode); + kinc_log(KINC_LOG_LEVEL_INFO, ""); + int mode_count = kinc_display_count_available_modes(i); + kinc_log(KINC_LOG_LEVEL_INFO, "\tavailable modes: %i", mode_count); + if (print_modes) { + for (int j = 0; j < mode_count; j++) { + kinc_display_mode_t mode = kinc_display_available_mode(i, j); + print_mode("\t\t", mode); + kinc_log(KINC_LOG_LEVEL_INFO, ""); + } + } + } + } + return 0; +} \ No newline at end of file diff --git a/Tests/Display/kfile.js b/Tests/Display/kfile.js new file mode 100644 index 000000000..c2b571a5c --- /dev/null +++ b/Tests/Display/kfile.js @@ -0,0 +1,10 @@ +const project = new Project('DisplayTest'); + +await project.addProject('../../'); + +project.addFile('Sources/**'); +project.setDebugDir('Deployment'); + +project.flatten(); + +resolve(project);