63 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			63 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/* Example of simple blitting with SD>. */
 | 
						|
 | 
						|
#include <SDL/SDL.h>
 | 
						|
#include <stdio.h>
 | 
						|
#include <stdlib.h>
 | 
						|
 | 
						|
int main()
 | 
						|
{
 | 
						|
	SDL_Surface *screen;
 | 
						|
	SDL_Surface *image;
 | 
						|
	SDL_Rect src, dest;
 | 
						|
 | 
						|
	/* init and check for errors*/
 | 
						|
	if (SDL_Init(SDL_INIT_VIDEO) != 0) {
 | 
						|
		printf("Unable to init SDL: %s\n", SDL_GetError());
 | 
						|
		return 1;
 | 
						|
	}
 | 
						|
 | 
						|
	atexit(SDL_Quit);
 | 
						|
 | 
						|
	/* 256x256 hicolor (16-bit) */
 | 
						|
 | 
						|
	screen = SDL_SetVideoMode(512, 512, 32, 0); // finding BMPs is hard // Doesn't work anyway... 
 | 
						|
																							//I seem to remem ber having htis problem before
 | 
						|
	if (screen == NULL) {
 | 
						|
		printf("Setting video mode failed: %s\n", SDL_GetError());
 | 
						|
		return 1;
 | 
						|
	}
 | 
						|
 | 
						|
	/* Load bitmap file. SDL_LoadBMP returns a pointer to a new surface containing 
 | 
						|
	 * the loaded image. */
 | 
						|
	image = SDL_LoadBMP("test-image.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
 | 
						|
	 * shoul be the same; SDL does not currently handle image
 | 
						|
	 * stretching. */
 | 
						|
 | 
						|
	src.x = 0;
 | 
						|
	src.y = 0;
 | 
						|
	src.w = image->w; /* copy entire image */
 | 
						|
	src.h = image->h;
 | 
						|
 | 
						|
	/* Draw the bitmap to the screen. It is not necessary to lock surfaces
 | 
						|
	 * before blitting; SDL will handle that. */
 | 
						|
 | 
						|
	SDL_BlitSurface(image, &src, screen, &dest);
 | 
						|
 | 
						|
	SDL_Delay(3000);
 | 
						|
 | 
						|
	/* Free memory allocated to the bitmap. */
 | 
						|
	SDL_FreeSurface(image);
 | 
						|
 | 
						|
	return 0;
 | 
						|
}
 | 
						|
 | 
						|
 |