Mercurial > sdl-ios-xcode
view test/nds-test-progs/general/source/main.c @ 2960:91708bc14aab
It's probably not worth pushing palettized textures. The memory optimization
isn't worth the effort on modern hardware with the sorts of games that would
be using the SDL 1.3 texture API.
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Fri, 02 Jan 2009 09:27:36 +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; }