Mercurial > sdl-ios-xcode
view test/nds-test-progs/general/source/main.c @ 2694:c1c7cb1b5a47 gsoc2008_nds
More sprite-work in the render driver, and some updates to the nds-test-progs.
author | Darren Alton <dalton@stevens.edu> |
---|---|
date | Sat, 16 Aug 2008 12:58:36 +0000 |
parents | cd8978f47849 |
children | 0b395a60deff |
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 = {8,8,240,176}; 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: switch(event.jbutton.which) { case 0: SDL_FillRect(screen, &rect, RGB15(31,0,0)|0x8000); break; case 1: SDL_FillRect(screen, &rect, RGB15(0,31,0)|0x8000); break; case 2: SDL_FillRect(screen, &rect, RGB15(0,0,31)|0x8000); break; case 3: SDL_FillRect(screen, &rect, RGB15(0,0,0)|0x8000); break; default: break; } printf("joy_%d, at %d\n", event.jbutton.which, SDL_GetTicks()); SDL_Flip(screen); break; case SDL_QUIT: SDL_Quit(); return 0; default: break; } return 0; }