Zaslal: frca
Jazyk: C++
Vloženo: 23.5.2010, 15:43
Stáhnout jako soubor
#include <cstdlib> #include <SDL/SDL.h> /* pokus by frca */ float getdeltaT() { static bool bfirstrun = true; static double tm_prev; if (bfirstrun) { tm_prev = double(SDL_GetTicks())*0.001; bfirstrun = false; return 0.f; } double tm_now = double(SDL_GetTicks())*0.001; double deltaT = tm_now-tm_prev; tm_prev = tm_now; if (deltaT < 0.0) return 0.0; return deltaT; } int main ( int argc, char** argv ) { // initialize SDL video if ( SDL_Init( SDL_INIT_VIDEO ) < 0 ) { printf( "Unable to init SDL: %s\n", SDL_GetError() ); return 1; } // make sure SDL cleans up before exit atexit(SDL_Quit); // create a new window SDL_Surface* screen = SDL_SetVideoMode(640, 480, 16, SDL_HWSURFACE|SDL_DOUBLEBUF); if ( !screen ) { printf("Unable to set 640x480 video: %s\n", SDL_GetError()); return 1; } SDL_Event event; bool firstdraw = true; //SDL_EventState(SDL_VIDEOEXPOSE, SDL_ENABLE); while (SDL_WaitEvent(&event)) { bool done = false; bool exposed = false; switch (event.type) { // exit if the window is closed case SDL_QUIT: done = true; break; // check for keypresses case SDL_KEYDOWN: { // exit if ESCAPE is pressed if (event.key.keysym.sym == SDLK_ESCAPE) done = true; break; } case SDL_VIDEOEXPOSE: { exposed = true; printf("exposed "); } break; } // end switch if (done) break; if (firstdraw) { // clear screen SDL_FillRect(screen, 0, SDL_MapRGB(screen->format, 0, 255, 0)); firstdraw = false; // finally, update the screen :) printf("sdl_flip "); SDL_Flip(screen); } // DRAWING ENDS HERE } // all is well ;) return 0; }
© 2006 Michal Tuláček, Syntax Highlight - GeSHi (thx bref)