@lay:4401l3 Listing 3. Drawing Large Amounts of Data to the Screen #include #include #include int main() { SDL_Surface *screen; SDL_Surface *image; SDL_Rect src,dest; /* Initialization code, just like the previous example's. */ /* Load the bitmap file. SDL_LoadBMP returns a pointer to a new surface containing the loaded image. */ image = SDL_LoadBMP("tux.bmp"); if (image == NULL) { printf("Unable to load bitmap.\n"); return 1; }; /* The SDL blitting function needs to know how much data to copy. We provide this with SDL_Rect structures, which define the source and destination rectangles. The areas should be the same; SDL does not currently handle image stretching. */ src.x = 0; src.y = 0; src.w = image->w; /* copy the entire image */ src.h = image->h; dest.x = 0; dest.y = 0; dest.w = image->w; dest.h = image->h; /* Draw the bitmap to the screen. We are using a hicolor video mode, so we don't have to worry about colormap silliness. It is not necessary to lock surfaces before blitting; SDL will handle that. */ SDL_BlitSurface(image,&src,screen,&dest); /* Ask SDL to update the entire screen. */ SDL_UpdateRect(screen,0,0,0,0); /* Pause for a few seconds as the viewer gasps in awe. */ SDL_Delay(3000); /* Free the memory that was allocated to the bitmap. */ SDL_FreeSurface(image); return 0; }