Mercurial > sdl-ios-xcode
diff test/nds-test-progs/general/source/main.c @ 2686:e9f27fe4f2a1 gsoc2008_nds
Existing testsprite programs made into NDS projects
author | Darren Alton <dalton@stevens.edu> |
---|---|
date | Wed, 13 Aug 2008 00:49:03 +0000 |
parents | |
children | 87cfb5fde5db |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/nds-test-progs/general/source/main.c Wed Aug 13 00:49:03 2008 +0000 @@ -0,0 +1,77 @@ + +#include <SDL/SDL.h> +#if defined(NDS) || defined(__NDS__) || defined (__NDS) +#include <nds.h> +#else +#define swiWaitForVBlank() +#define consoleDemoInit() +#define RGB15(r,g,b) SDL_MapRGB(screen->format,((r)<<3),((g)<<3),((b)<<3)) +#endif + +void delay(int s) { + 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}; + + consoleDemoInit(); + if(SDL_Init(SDL_INIT_VIDEO|SDL_INIT_JOYSTICK) < 0) { + puts("# error initializing SDL"); + puts(SDL_GetError()); + return 1; + } + puts("* initialized SDL\n"); delay(1); + + screen = SDL_SetVideoMode(256, 192, 16, SDL_SWSURFACE); + if(!screen) { + puts("# error setting video mode"); + puts(SDL_GetError()); + return 2; + } + puts("* set video mode\n"); delay(1); + + stick = SDL_JoystickOpen(0); + if(stick == NULL) { + puts("# error opening joystick"); + puts(SDL_GetError()); +// return 3; + } + puts("* opened joystick"); delay(1); + 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\n", event.jbutton.which); + SDL_Flip(screen); + break; + case SDL_QUIT: SDL_Quit(); return 0; + default: break; + } + + return 0; +}