Mercurial > sdl-ios-xcode
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: */