From: Jean-Philippe Bruyère Date: Wed, 29 Dec 2021 19:39:23 +0000 (+0100) Subject: set offscreen/on screen as sample options, no longer cmake option X-Git-Tag: v0.3.0-beta~58 X-Git-Url: https://git.osiis.dedyn.io/?a=commitdiff_plain;h=0de28aa2782bbaf15fc53333d30c509b8d3f1e3a;p=jp%2Fvkvg.git set offscreen/on screen as sample options, no longer cmake option --- diff --git a/CMakeLists.txt b/CMakeLists.txt index c3d3551..0d0b2ba 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -98,7 +98,6 @@ CMAKE_DEPENDENT_OPTION(VKVG_USE_FREETYPE "use freetype to load and render font g CMAKE_DEPENDENT_OPTION(VKVG_USE_FONTCONFIG "use FontConfig to resolve font names" ON "Fontconfig_FOUND" OFF) CMAKE_DEPENDENT_OPTION(VKVG_USE_HARFBUZZ "use Harbuzz for text layouting" ON "HarfBuzz_FOUND" OFF) CMAKE_DEPENDENT_OPTION(VKVG_BUILD_TESTS "build tests with glfw" ON "GLFW3_FOUND" OFF) -CMAKE_DEPENDENT_OPTION(VKVG_BUILD_OFFSCREEN_TEST "build offscreen test" ON "NOT VKVG_BUILD_TESTS" OFF) CMAKE_DEPENDENT_OPTION(VKVG_BUILD_DOCS "build documentation" OFF "DOXYGEN_FOUND" OFF) CMAKE_DEPENDENT_OPTION(VKVG_LCD_FONT_FILTER "enable freetype lcd font filtering" OFF "VKVG_USE_FONTCONFIG" OFF) @@ -314,9 +313,6 @@ IF (VKVG_BUILD_TESTS) ELSE () MESSAGE(STATUS "Build tests\t\t= false.") ENDIF () -IF (VKVG_TEST_OFFSCREEN) - MESSAGE(STATUS "Offscreen\t\t= true.") -ENDIF () IF (VKVG_DBG_STATS) MESSAGE(STATUS "Debug statistics\t= enabled.") ELSE () diff --git a/tests/common/test.c b/tests/common/test.c index 47fa8e0..1572d16 100644 --- a/tests/common/test.c +++ b/tests/common/test.c @@ -47,6 +47,7 @@ int single_test = -1; //if not < 0, contains the index of the single test to ru static bool paused = false; +static bool offscreen = false; static VkSampleCountFlags samples = VK_SAMPLE_COUNT_1_BIT; static VkPhysicalDeviceType preferedPhysicalDeviceType = VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU; static vk_engine_t* e; @@ -194,7 +195,8 @@ void _print_usage_and_exit () { printf("\t-q:\t\tQuiet, don't print measures table head row, usefull for batch tests.\n"); printf("\t-p:\t\tPrint test details and exit without performing test, usefull to print details in logs.\n"); printf("\t-vsync:\t\tEnable VSync, disabled by default.\n"); - printf("\t-w filepath:\t\twrite last image to png.\n"); + printf("\t-o:\t\tPerform test offscreen.\n"); + printf("\t-w filepath:\twrite last image to png.\n"); printf("\t-h:\t\tThis help message.\n"); printf("\n"); exit(-1); @@ -244,6 +246,8 @@ void _parse_args (int argc, char* argv[]) { line_width = atoi (argv[i]); }else if (strcmp (argv[i], "-d\0") == 0) { dashes_count = 2; + } else if (strcmp (argv[i], "-o\0") == 0) { + offscreen = true; }else if (strcmp (argv[i], "-j\0") == 0) { if (argc -1 < ++i) _print_usage_and_exit(); @@ -315,12 +319,10 @@ void _parse_args (int argc, char* argv[]) { printf("CPU\n"); break; } - - #ifdef VKVG_TEST_OFFSCREEN - printf("Offscreen:\ttrue\n"); - #else - printf("Offscreen:\tfalse\n"); - #endif + if (offscreen) + printf("Offscreen:\ttrue\n"); + else + printf("Offscreen:\tfalse\n"); printf("\n"); exit(0); } @@ -374,6 +376,14 @@ void _print_debug_stats () { } #endif +void perform_test (void(*testfunc)(void), const char *testName, int argc, char* argv[]) { + _parse_args (argc, argv); + if (offscreen) + perform_test_offscreen(testfunc, testName, argc, argv); + else + perform_test_onscreen(testfunc, testName, argc, argv); +} + void perform_test_offscreen (void(*testfunc)(void), const char *testName, int argc, char* argv[]) { //init random gen struct timeval currentTime; @@ -382,8 +392,6 @@ void perform_test_offscreen (void(*testfunc)(void), const char *testName, int ar //dumpLayerExts(); - _parse_args (argc, argv); - if (single_test >= 0 && test_index != single_test){ test_index++; return; @@ -493,7 +501,7 @@ void perform_test_offscreen (void(*testfunc)(void), const char *testName, int ar test_index++; } -void perform_test (void(*testfunc)(void), const char *testName, int argc, char* argv[]) { +void perform_test_onscreen (void(*testfunc)(void), const char *testName, int argc, char* argv[]) { //init random gen struct timeval currentTime; gettimeofday(¤tTime, NULL); diff --git a/tests/common/test.h b/tests/common/test.h index 40afb80..c2ddaf0 100644 --- a/tests/common/test.h +++ b/tests/common/test.h @@ -22,11 +22,9 @@ #ifndef MAX # define MAX(a,b) (((a) > (b)) ? (a) : (b)) #endif -#ifdef VKVG_TEST_OFFSCREEN -#define PERFORM_TEST(testName, argc, argv) perform_test_offscreen(testName, #testName, argc, argv); -#else + #define PERFORM_TEST(testName, argc, argv) perform_test(testName, #testName, argc, argv); -#endif + #if defined(_WIN32) || defined(_WIN64) #define WIN32_LEAN_AND_MEAN #define NOMINMAX @@ -106,6 +104,7 @@ void _parse_args (int argc, char* argv[]); //run test in one step void perform_test (void(*testfunc)(), const char* testName, int argc, char *argv[]); +void perform_test_onscreen (void(*testfunc)(void), const char *testName, int argc, char* argv[]); void perform_test_offscreen (void(*testfunc)(void), const char *testName, int argc, char* argv[]); void randomize_color (VkvgContext ctx);