Mercurial > sdl-ios-xcode
view test/nds-test-progs/general/source/main.c @ 4639:f5cd4b6231ba
Added Test Directory. Touch input works in touchSimp for wacom bamboo fun on Ubuntu linux. Not yet integrated into library. Should support other touch devices and other linux distros, but not tested on anything else.
author | Jim Grandpre <jim.tla@gmail.com> |
---|---|
date | Mon, 24 May 2010 23:44:24 -0400 |
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; }