Tema: libreria SDL
Ver Mensaje Individual
  #1 (permalink)  
Antiguo 06/10/2008, 17:44
Avatar de chwc
chwc
 
Fecha de Ingreso: julio-2008
Ubicación: Buenos Aires ! :D
Mensajes: 814
Antigüedad: 16 años, 5 meses
Puntos: 103
libreria SDL

hola, tengo un problema , tengo varios ejemplos de SDL pero el problema es que al ponerle ejecutar a cualkiera que utilice SDL_image.h el fichero se abre y se cierra ( dura como 1 cuarto de segundo ) uso dev-cpp.
les dejo algun ejemplo:
Código:
#include <stdio.h>
#include <stdlib.h>
#include <SDL/SDL_image.h>

int main(int argc, char *argv[])
{
	SDL_Surface *screen, *imagen, *circulo, *circulo_key;
	SDL_Rect ori, dest;
	
	if (SDL_Init(SDL_INIT_VIDEO) < 0) {
		printf("Error al iniciar SDL\n");
		system("pause");
		return 1;
	}

	atexit(SDL_Quit);
	
	screen = SDL_SetVideoMode(640, 480, 16, 0);

	if (screen == NULL) {
		printf("Error al setear video:%s\n", SDL_GetError());
		return 1;
	}

	//Cargo las imagenes
	imagen = IMG_Load("imagen.jpg");
	if (imagen == NULL) {
		printf("error al cargar imagen:%s\n", SDL_GetError());
		return 1;
	}
	
	circulo = IMG_Load("circulo.png");
	if (circulo == NULL) {
		printf("error al cargar imagen:%s\n", SDL_GetError());
		//Libero la estructura
		SDL_FreeSurface(imagen);
		return 1;
	}

	circulo_key = IMG_Load("circulo.png");
	if (circulo_key == NULL) {
		printf("error al cargar imagen:%s\n", SDL_GetError());
		//Libero la estructura
		SDL_FreeSurface(imagen);
		SDL_FreeSurface(circulo);
		return 1;
	}	

	SDL_SetColorKey (circulo_key, SDL_SRCCOLORKEY, SDL_MapRGB(circulo_key->format, 0, 0, 0));

	//Quiero toda la imagen
	ori.x = 0;
	ori.y = 0;
	ori.w = imagen->w;
	ori.h = imagen->h;

	dest.x = 0;
	dest.y = 0;

	SDL_BlitSurface(imagen, &ori, screen, &dest);

	//dibujo el circulo sin color_key y otro con
	ori.w = circulo->w;
	ori.h = circulo->h;

	dest.x = 30;
	dest.y = 280;

	SDL_BlitSurface(circulo, &ori, screen, &dest);

	dest.x = 140;
	dest.y = 280;

	SDL_BlitSurface(circulo_key, &ori, screen, &dest);

	//Realmente lo muestra.
	SDL_Flip(screen);

	SDL_Delay(5000); 

	//Liberamos todo
	SDL_FreeSurface(imagen);
	SDL_FreeSurface(circulo);
	SDL_FreeSurface(circulo_key);

}

que le pasa?