Mercurial > sdl-ios-xcode
view test/nds-test-progs/general/source/main.c @ 3409:c8f580ebc96a
Adam Strzelecki to SDL
Sending a patch for fullscreen Mac OS X SDL 1.3 (SVN) Cocoa mouse position handling. In fullscreen mouse coordinates should be relative to SCREEN not to the window, which doesn't really occupy fullscreen.
Without this patch mouse position (especially Y) was totally incorrect (shifted) in fullscreen.
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Thu, 22 Oct 2009 04:46:11 +0000 |
parents | 204be4fc2726 |
children | 7aba0406c273 |
line wrap: on
line source
#include <SDL/SDL.h> #if defined(NDS) || defined(__NDS__) || defined (__NDS) #include <nds.h> #include <fat.h> #else #define swiWaitForVBlank() #define consoleDemoInit() #define fatInitDefault() #define RGB15(r,g,b) SDL_MapRGB(screen->format,((r)<<3),((g)<<3),((b)<<3)) #endif void splash(SDL_Surface * screen, int s) { SDL_Surface *logo; SDL_Rect area = { 0, 0, 256, 192 }; logo = SDL_LoadBMP("sdl.bmp"); if (!logo) { printf("Couldn't splash.\n"); return; } /*logo->flags &= ~SDL_PREALLOC; */ SDL_BlitSurface(logo, NULL, screen, &area); SDL_Flip(screen); while (s-- > 0) { int i = 60; while (--i) swiWaitForVBlank(); } } int main(void) { SDL_Surface *screen; SDL_Joystick *stick; SDL_Event event; SDL_Rect rect = { 0, 0, 256, 192 }; int i; consoleDemoInit(); puts("Hello world! Initializing FAT..."); fatInitDefault(); if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_JOYSTICK) < 0) { puts("# error initializing SDL"); puts(SDL_GetError()); return 1; } puts("* initialized SDL"); screen = SDL_SetVideoMode(256, 192, 15, SDL_SWSURFACE); if (!screen) { puts("# error setting video mode"); puts(SDL_GetError()); return 2; } screen->flags &= ~SDL_PREALLOC; puts("* set video mode"); stick = SDL_JoystickOpen(0); if (stick == NULL) { puts("# error opening joystick"); puts(SDL_GetError()); // return 3; } puts("* opened joystick"); /*splash(screen, 3); */ SDL_FillRect(screen, &rect, RGB15(0, 0, 31) | 0x8000); SDL_Flip(screen); while (1) while (SDL_PollEvent(&event)) switch (event.type) { case SDL_JOYBUTTONDOWN: SDL_FillRect(screen, &rect, (u16) rand() | 0x8000); SDL_Flip(screen); if (rect.w > 8) { rect.x += 4; rect.y += 3; rect.w -= 8; rect.h -= 6; } printf("button %d pressed at %d ticks\n", event.jbutton.which, SDL_GetTicks()); break; case SDL_QUIT: SDL_Quit(); return 0; default: break; } return 0; }