diff options
author | David Robillard <d@drobilla.net> | 2019-08-04 22:00:04 +0200 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2019-09-03 08:34:39 +0200 |
commit | 4c6ac6b1c3e9f7ac04b5f6ba0b30eb8eacfcce9c (patch) | |
tree | 42f39dfb66004b2153ab36a77fcfb13508d9f5dc /test/pugl_cairo_test.c | |
parent | 36f9c9dd7bc2f3d986b90477238c24e121936a25 (diff) | |
download | pugl-4c6ac6b1c3e9f7ac04b5f6ba0b30eb8eacfcce9c.tar.gz pugl-4c6ac6b1c3e9f7ac04b5f6ba0b30eb8eacfcce9c.tar.bz2 pugl-4c6ac6b1c3e9f7ac04b5f6ba0b30eb8eacfcce9c.zip |
Factor out parsing test options
Diffstat (limited to 'test/pugl_cairo_test.c')
-rw-r--r-- | test/pugl_cairo_test.c | 35 |
1 files changed, 10 insertions, 25 deletions
diff --git a/test/pugl_cairo_test.c b/test/pugl_cairo_test.c index 278a74d..3a36e53 100644 --- a/test/pugl_cairo_test.c +++ b/test/pugl_cairo_test.c @@ -31,8 +31,8 @@ #include <string.h> static PuglWorld* world = NULL; +PuglTestOptions opts = {0}; -static bool continuous = false; static int quit = 0; static bool entered = false; static bool mouseDown = false; @@ -133,7 +133,7 @@ onDisplay(PuglView* view) // Draw button for (Button* b = buttons; b->label; ++b) { - buttonDraw(cr, b, continuous ? puglGetTime(world) : 0.0); + buttonDraw(cr, b, opts.continuous ? puglGetTime(world) : 0.0); } ++framesDrawn; @@ -184,25 +184,10 @@ onEvent(PuglView* view, const PuglEvent* event) int main(int argc, char** argv) { - bool ignoreKeyRepeat = false; - bool resizable = false; - for (int i = 1; i < argc; ++i) { - if (!strcmp(argv[i], "-c")) { - continuous = true; - } else if (!strcmp(argv[i], "-h")) { - printf("USAGE: %s [OPTIONS]...\n\n" - " -c Continuously animate and draw\n" - " -h Display this help\n" - " -i Ignore key repeat\n" - " -r Resizable window\n", argv[0]); - return 0; - } else if (!strcmp(argv[i], "-i")) { - ignoreKeyRepeat = true; - } else if (!strcmp(argv[i], "-r")) { - resizable = true; - } else { - fprintf(stderr, "Unknown option: %s\n", argv[i]); - } + opts = puglParseTestOptions(&argc, &argv); + if (opts.help) { + puglPrintTestUsage("pugl_test", ""); + return 1; } world = puglNewWorld(); @@ -212,10 +197,10 @@ main(int argc, char** argv) PuglView* view = puglNewView(world); puglSetFrame(view, frame); puglSetMinSize(view, 256, 256); - puglSetViewHint(view, PUGL_RESIZABLE, resizable); + puglSetViewHint(view, PUGL_RESIZABLE, opts.resizable); puglSetBackend(view, puglCairoBackend()); - puglSetViewHint(view, PUGL_IGNORE_KEY_REPEAT, ignoreKeyRepeat); + puglSetViewHint(view, PUGL_IGNORE_KEY_REPEAT, opts.ignoreKeyRepeat); puglSetEventFunc(view, onEvent); if (puglCreateWindow(view, "Pugl Test")) { @@ -226,7 +211,7 @@ main(int argc, char** argv) PuglFpsPrinter fpsPrinter = { puglGetTime(world) }; while (!quit) { - if (continuous) { + if (opts.continuous) { puglPostRedisplay(view); } else { puglPollEvents(world, -1); @@ -234,7 +219,7 @@ main(int argc, char** argv) puglDispatchEvents(world); - if (continuous) { + if (opts.continuous) { puglPrintFps(world, &fpsPrinter, &framesDrawn); } } |