diff test/testwm2.c @ 1712:931d111e737a SDL-1.3

Started framework for Windows video driver
author Sam Lantinga <slouken@libsdl.org>
date Mon, 26 Jun 2006 13:56:56 +0000
parents
children 3e66ed1690e4
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/testwm2.c	Mon Jun 26 13:56:56 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) {
+        --argc;
+        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);
+        }
+    }
+
+    /* Set the desktop mode, we don't care what it is */
+    if (SDL_SetDisplayMode(NULL) < 0) {
+        fprintf(stderr, "Couldn't set display mode: %s\n", SDL_GetError());
+        quit(2);
+    }
+
+    /* 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];
+
+        SDL_snprintf(title, sizeof(title), "testwm %d", i + 1);
+        windows[i] =
+            SDL_CreateWindow(title, -1, -1, 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: */