ultimatepp/uppdev/sdlt1/sdlt1.cpp
cxl 351994a6cc Adding uppdev....
git-svn-id: svn://ultimatepp.org/upp/trunk@328 f0d560ea-af0d-0410-9eb7-867de7ffcac7
2008-08-15 08:36:24 +00:00

65 lines
1.3 KiB
C++

#include "sdlt1.h"
SDL_Surface * OpenScreen(const int width, const int height, const int bpp, const int flags)
{
SDL_Surface * screen = SDL_SetVideoMode(width, height, bpp, flags);
if(!screen)
{
printf("Couldn't set display mode: %s\n", SDL_GetError());
return NULL;
}
return screen;
}
void Paint(SDL_Surface * surface)
{
/* Put your painting code here */
}
int main(int argc, char **argv)
{
if(SDL_Init(SDL_INIT_VIDEO) < 0)
return 1;
int videoflags = SDL_HWSURFACE | SDL_HWACCEL | SDL_FULLSCREEN | SDL_DOUBLEBUF;
SDL_Surface * screen = OpenScreen(1024, 768, 32, videoflags);
if(!screen)
return 1;
SDL_Event event;
bool done = false;
while(!done)
{
if(SDL_PollEvent(&event))
{
switch (event.type)
{
case SDL_KEYDOWN:
if(event.key.keysym.sym == SDLK_LALT || event.key.keysym.sym == SDLK_TAB)
break;
if(event.key.keysym.sym == SDLK_RETURN)
{
videoflags ^= SDL_FULLSCREEN;
screen = OpenScreen(screen->w, screen->h, screen->format->BitsPerPixel, videoflags);
if(!screen)
done = true;
break;
}
case SDL_QUIT:
done = true;
break;
default:
break;
}
}
else
{
Paint(screen);
SDL_Flip(screen);
}
}
SDL_FreeSurface(screen);
SDL_Quit();
return 0;
}