Mercurial > sdl-ios-xcode
diff test/testwm2.c @ 1933:7ee5297340f7
Implemented Cocoa window support
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Mon, 24 Jul 2006 05:03:02 +0000 |
parents | c121d94672cb |
children | 8055185ae4ed |
line wrap: on
line diff
--- a/test/testwm2.c Sun Jul 23 09:16:14 2006 +0000 +++ b/test/testwm2.c Mon Jul 24 05:03:02 2006 +0000 @@ -1,98 +1,56 @@ -/* Simple program: Move N sprites around on the screen as fast as possible */ -#include "SDL.h" +#include <stdlib.h> +#include <stdio.h> -#define NUM_WINDOWS 2 -#define WINDOW_W 640 -#define WINDOW_H 480 +#include "common.h" -static int num_windows; -static SDL_WindowID *windows; +static CommonState *state; /* 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(); + CommonQuit(state); 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); + /* Initialize test framework */ + state = CommonCreateState(argv, SDL_INIT_VIDEO); + if (!state) { + return 1; } + state->skip_renderer = SDL_TRUE; + for (i = 1; i < argc;) { + int consumed; - 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]); + consumed = CommonArg(state, i); + if (consumed == 0) { + consumed = -1; + } + if (consumed < 0) { + fprintf(stderr, "Usage: %s %s", argv[0], CommonUsage(state)); quit(1); } + i += consumed; + } + if (!CommonInit(state)) { + 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]; - 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 */ + /* Main render loop */ 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; - } + CommonEvent(state, &event, &done); } } - quit(0); }