]> O.S.I.I.S - jp/vkvg.git/commitdiff
set offscreen/on screen as sample options, no longer cmake option
authorJean-Philippe Bruyère <jp_bruyere@hotmail.com>
Wed, 29 Dec 2021 19:39:23 +0000 (20:39 +0100)
committerJean-Philippe Bruyère <jp_bruyere@hotmail.com>
Wed, 29 Dec 2021 19:39:23 +0000 (20:39 +0100)
CMakeLists.txt
tests/common/test.c
tests/common/test.h

index c3d355135211a1fd21d571abbfcb5ca36e65d440..0d0b2ba57ef1a99d291f0cd5808e1298189d9959 100644 (file)
@@ -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 ()
index 47fa8e0e43f3045c7c4823048ff56fd96e2669a9..1572d1691ff56da2df7316d1ea3c134ad606b559 100644 (file)
@@ -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(&currentTime, NULL);
index 40afb80eb207937da6e8d10cbf9c5ec747dd7a4b..c2ddaf0109732c8f06dbdcb97528e786f5e974a0 100644 (file)
 #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);