All pastes #31167 Raw Edit

Anonymous

public text v1 · immutable
#31167 ·published 2005-11-25 14:03 UTC
rendered paste body

/******************************************************************************\

	Title:
		SDL_gfx Example

	Description:
		This is an example of how to use the SDL_gfx DevKit.  After the dev kit
		is installed into Dev-C++, you should be able to goto New Project and
		see the SDL_gfx Example project available there.  SDL_gfx is a great
		graphics library for SDL.  More information is available about it at
		http://www.ferzkopp.net/~aschiffler/Software/SDL_gfx-2.0/

	Author:
		Rob Loach (http://www.robloach.net)

	Date:
		February 8th, 2005

	Note:
		REQUIRED - You must copy SDL.dll, SDL_gfx.dll and sample24.bmp
		from Dev-C++/DLL directory to the folder where you saved this
		project.

		When making a new project, you must link to -lSDL_gfx.
	
\******************************************************************************/

#include <SDL/SDL.h>
#include <stdio.h>
#include <stdlib.h>

// SDL_gfx
#include <SDL/SDL_rotozoom.h>		// SDL_gfx Rotozoom
#include <SDL/SDL_gfxPrimitives.h>	// SDL_gfx Primitives
#include <SDL/SDL_framerate.h>		// SDL_gfx Framerate Manager


// For more information about SDL_gfx, please visit their website at
// http://www.ferzkopp.net/~aschiffler/Software/SDL_gfx-2.0/



int main(int argc, char *argv[]){
	
	// Initialize SDL
	if(SDL_Init(SDL_INIT_VIDEO) == -1){
		fprintf(stderr, "Failed to initialize SDL: %s\n", SDL_GetError());
		exit(1);
	}
	atexit(SDL_Quit);

	// Initilize the screen
	SDL_Surface *screen = SDL_SetVideoMode(400, 300, 32, SDL_HWSURFACE|SDL_DOUBLEBUF);
	if(screen == NULL){
		fprintf(stderr, "Unable to set video mode: %s\n", SDL_GetError());
		exit(1);
	}

	// Load the image
	SDL_Surface* image = SDL_LoadBMP("sample24.bmp");
	if(image == NULL)
		fprintf(stderr, "Unable to load image: %s\n", SDL_GetError());



	// FRAME RATE MANAGER EXAMPLE
	// Initialize Frame Rate Manager
	FPSmanager fpsm;
	SDL_initFramerate(&fpsm);
	SDL_setFramerate(&fpsm, 60); // 60 Frames Per Second



	int toiminta = 1;
	while(toiminta = 1){
	 
		// Clear the screen
		SDL_FillRect(screen, NULL, 0);

		

		// ROTOZOOM EXAMPLE
		// Make the new rotated image
		static double rotationAngle = 0;
		rotationAngle += 0.3;
		SDL_Surface* imageRotated = rotozoomSurface(image, rotationAngle, 1, 0);

		// Draw the rotated image
		SDL_Rect rect;
		rect.x = (int)(screen->w / 2) - (int)(imageRotated->w / 2);
		rect.y = (int)(screen->h / 2) - (int)(imageRotated->h / 2);
		SDL_BlitSurface(imageRotated, NULL, screen, &rect);

		// Clear memory when finished with the rotated image
		SDL_FreeSurface(imageRotated);
		



		// GRAPHICS PRIMATIVES EXAMPLE
		filledCircleRGBA(screen, 200, 200, 50, 255, 0, 0, 150);

		
		 
		// Output to the screen
		SDL_Flip(screen);



		// FRAME RATE MANAGER EXAMPLE
		// Delay using the frame rate manager
		SDL_framerateDelay(&fpsm);



	 
		// Check if user quits
		SDL_Event event;
		while(SDL_PollEvent(&event)){
			switch(event.type){
			case SDL_QUIT:
				toiminta = 2;
				break;
			case SDL_KEYDOWN:
				if(event.key.keysym.sym == SDLK_ESCAPE)
					toiminta = 2;
				break;
			}
		}
		
	}

	// Clean up the loaded image
	SDL_FreeSurface(image);
	
	return 0;
}