diff test/testwm2.c @ 1895:c121d94672cb

SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
author Sam Lantinga <slouken@libsdl.org>
date Mon, 10 Jul 2006 21:04:37 +0000
parents
children 7ee5297340f7
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/testwm2.c	Mon Jul 10 21:04:37 2006 +0000
@@ -0,0 +1,99 @@
+/* Simple program:  Move N sprites around on the screen as fast as possible */
+
+#include "SDL.h"
+
+#define NUM_WINDOWS 2
+#define WINDOW_W    640
+#define WINDOW_H    480
+
+static int num_windows;
+static SDL_WindowID *windows;
+
+/* Call this instead of exit(), so we can clean up SDL: atexit() is evil. */
+static void
+quit(int rc)
+{
+    if (windows) {
+        SDL_free(windows);
+    }
+    SDL_Quit();
+    exit(rc);
+}
+
+int
+main(int argc, char *argv[])
+{
+    int window_w, window_h;
+    int i, done;
+    SDL_Event event;
+
+    /* Initialize SDL */
+    if (SDL_Init(SDL_INIT_VIDEO) < 0) {
+        fprintf(stderr, "Couldn't initialize SDL: %s\n", SDL_GetError());
+        return (1);
+    }
+
+    num_windows = NUM_WINDOWS;
+    window_w = WINDOW_W;
+    window_h = WINDOW_H;
+    while (argc > 1) {
+        if (strcmp(argv[argc - 1], "-width") == 0) {
+            window_w = atoi(argv[argc]);
+            --argc;
+        } else if (strcmp(argv[argc - 1], "-height") == 0) {
+            window_h = atoi(argv[argc]);
+            --argc;
+        } else {
+            fprintf(stderr, "Usage: %s [-width] [-height]\n", argv[0]);
+            quit(1);
+        }
+    }
+
+    /* Create the windows */
+    windows = (SDL_WindowID *) SDL_malloc(num_windows * sizeof(*windows));
+    if (!windows) {
+        fprintf(stderr, "Out of memory!\n");
+        quit(2);
+    }
+    for (i = 0; i < num_windows; ++i) {
+        char title[32];
+        int x, y;
+
+        SDL_snprintf(title, sizeof(title), "testwm %d", i + 1);
+        if (i == 0) {
+            x = SDL_WINDOWPOS_CENTERED;
+            y = SDL_WINDOWPOS_CENTERED;
+        } else {
+            x = SDL_WINDOWPOS_UNDEFINED;
+            y = SDL_WINDOWPOS_UNDEFINED;
+        }
+        windows[i] =
+            SDL_CreateWindow(title, x, y, window_w, window_h,
+                             SDL_WINDOW_SHOWN);
+        if (!windows[i]) {
+            fprintf(stderr, "Couldn't create window: %s\n", SDL_GetError());
+            quit(2);
+        }
+    }
+
+    /* Loop, blitting sprites and waiting for a keystroke */
+    done = 0;
+    while (!done) {
+        /* Check for events */
+        while (SDL_PollEvent(&event)) {
+            switch (event.type) {
+            case SDL_KEYDOWN:
+                /* Any keypress quits the app... */
+            case SDL_QUIT:
+                done = 1;
+                break;
+            default:
+                break;
+            }
+        }
+    }
+
+    quit(0);
+}
+
+/* vi: set ts=4 sw=4 expandtab: */