Ruutu
Mureakuha
Tämä yksinkertainen ohjelma maalaa kuvaruudun täyteen neliöitä.
#include <SDL.h> #include <stdlib.h> // rand() esittely. // laiska tapa lisätä kirjastoja #pragma comment(lib, "SDLmain.lib") #pragma comment(lib, "SDL.lib") // Piirrettävän ruudun koko pikseleinä #define BLOCKSIZE 20 int main( int argc, char* argv[] ) { SDL_Surface * scr; SDL_Rect rc; Uint32 col; int i,y; // Valittavat värit Uint32 colors[] = { 0xF8F8FF, 0x191970, 0x4682B4, 0x000080, 0xB0E0E6}; // Alustetaan SDL kirjasto. if( SDL_Init(SDL_INIT_VIDEO) < 0 ) { fprintf(stderr, "SDL error: %s\n", SDL_GetError()); return 0; } // Asetetaan näyttötila. scr = SDL_SetVideoMode(1024, 768, 32, SDL_HWSURFACE|SDL_FULLSCREEN); if(scr == NULL) { fprintf(stderr, "SDL error: %s\n", SDL_GetError()); return 0; } // Piilotetaan hiiri SDL_ShowCursor(SDL_DISABLE); // Poistetaan käytöstä kaikki ylimääräiset tapahtumat for ( i = 0; i<SDL_NUMEVENTS; ++i ) { if((i != SDL_KEYDOWN) && (i != SDL_QUIT) && (i != SDL_MOUSEBUTTONDOWN)) { SDL_EventState(i, SDL_IGNORE); } } // Piirretään jokainen ruutu erikseen. while(SDL_PollEvent(NULL) == 0) { for(i=6; i<1012; i+=BLOCKSIZE) { rc.x = i; rc.y = BLOCKSIZE; rc.h = rc.w = BLOCKSIZE; i=i+2; for(y=0; y<768; y+=BLOCKSIZE) { rc.y = y; y=y+2; col = colors[rand()% sizeof(colors)/sizeof(Uint32)]; SDL_FillRect(scr, &rc, col); } } SDL_Delay(200); } SDL_Quit(); return 0; }

