Pas de dépendances
#include <sdl/sdl.h> #ifdef WIN32 #pragma comment(lib,"sdl.lib") #pragma comment(lib,"sdlmain.lib") #endif void UpdateEvents(Sint32* mousex,Sint32* mousey,char boutons[8],char key[SDLK_LAST]) { SDL_Event event; while(SDL_PollEvent(&event)) { switch (event.type) { case SDL_KEYDOWN: key[event.key.keysym.sym]=1; break; case SDL_KEYUP: key[event.key.keysym.sym]=0; break; case SDL_MOUSEMOTION: *mousex=event.motion.x; *mousey=event.motion.y; break; case SDL_MOUSEBUTTONDOWN: boutons[event.button.button]=1; break; case SDL_MOUSEBUTTONUP: boutons[event.button.button]=0; break; } } } void SDL_PutPixel32(SDL_Surface *surface, int x, int y, Uint32 pixel) { Uint8 *p = (Uint8*)surface->pixels + y * surface->pitch + x * 4; *(Uint32*)p = pixel; } Uint32 SDL_GetPixel32(SDL_Surface *surface, int x, int y) { Uint8 *p = (Uint8*)surface->pixels + y * surface->pitch + x * 4; return *(Uint32*)p; } int main(int argc,char** argv) { Sint32 mousex = 0; Sint32 mousey = 0; char boutons[8] = {0}; char key[SDLK_LAST] = {0}; SDL_Surface* screen; int i,j; unsigned char currentblue = 0; SDL_Init(SDL_INIT_VIDEO); screen=SDL_SetVideoMode(256,256,32,SDL_SWSURFACE|SDL_DOUBLEBUF); SDL_ShowCursor(1); while(!key[SDLK_ESCAPE]) { UpdateEvents(&mousex,&mousey,boutons,key); if (SDL_MUSTLOCK(screen)) SDL_LockSurface(screen); for(i=0;i<256;i++) for(j=0;j<256;j++) { SDL_PutPixel32(screen,i,j,SDL_MapRGBA(screen->format,i,j,currentblue,0)); } currentblue++; if (SDL_MUSTLOCK(screen)) SDL_UnlockSurface(screen); SDL_Flip(screen); } return 0; }
No explanations yet.