Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: Komodo en 14 Septiembre 2010, 13:09 PM

Título: Problema empezando con SDL[RESUELTO]
Publicado por: Komodo en 14 Septiembre 2010, 13:09 PM
#include "stdlib.h"
#include "SDL/SDL.h"

int main(int argc, char *argv[])
{
   SDL_Surface *screen;    //Este puntero referenciara al backbuffer
   SDL_Surface *image;    //Este puntero referenciara el bmp
   SDL_Surface *temp;    //Este puntero va a hacer referencia temporal al bmp
   SDL_Rect src, dest;    //Fuente y destino de el blit

   //Primero se inicializan variables y se comprueba si fue exitoso
   if (SDL_Init(SDL_INIT_VIDEO) != 0) {
       printf("No se pudo inicializar SDL: %s\n", SDL_GetError());
       return 1;
   }

   //
   atexit(SDL_Quit);

   //Inicializando variables de video , profundidad y doble buffer , ademas de pantalla completa
   screen = SDL_SetVideoMode(640, 480, 16, SDL_DOUBLEBUF | SDL_FULLSCREEN);
   if (screen == NULL) {
       printf("No se pudo cambiar modo de video: %s\n", SDL_GetError());
       return 1;
   }

   //Cargar el bmp a una intefaz temporal y comprobar si funciono
   temp = SDL_LoadBMP("image.bmp");
   if (temp == NULL) {
       printf("No se pudo cargar bmp: %s\n", SDL_GetError());
       return 1;
   }

   //Transformar interfaz a la forma adecuada
   image = SDL_DisplayFormat(temp);

   //Liberar interfaz temporal
   SDL_FreeSurface(temp);

   //Construyendo el rectangulo...
   src.x = 0;
   src.y = 0;
   src.w = image->w;    //usar image->w para mostrar el ancho de la imagen
   src.h = image->h;    //usar image->h para mostrar el largo

   //Construyendo el rectangulo.. para la imagen
   dest.x = 100;        //Mostrar la imagen en las coordenadas (100,100)
   dest.y = 100;
   dest.w = image->w;    //Asegurarse que el largo esta bien
   dest.h = image->h;

   //Pasar la imgen a backbuffer
   SDL_BlitSurface(image, &src, screen, &dest);

   //cambiar el backbuffer como principal
   SDL_Flip(screen);

   //Esperar 2.5 segundos para ver la imagen
   SDL_Delay(2500);

   //Liberar intefaz
   SDL_FreeSurface(image);

   //Terminar felizmente xD
   return 0;
}

El caso es que instale en DevC++ con el DevPack SDL y ahora me saca errores, esto claro esta, porque necesito poner algo en el linker

¿Alguien me ayuda?
Título: Re: Problema empezando con SDL
Publicado por: Littlehorse en 14 Septiembre 2010, 13:12 PM
Postea los errores así lo vemos mas en detalle.
Título: Re: Problema empezando con SDL
Publicado por: Komodo en 14 Septiembre 2010, 13:13 PM
Thanks LH resuelto ;)

Todo son las dronjas! jjajja
Título: Re: Problema empezando con SDL[RESUELTO]
Publicado por: Littlehorse en 14 Septiembre 2010, 13:29 PM
Me alegro. Si puedes, agrega al primer post los pasos que seguiste, así otros usuarios con la misma duda tienen un punto de referencia.

Saludos
Título: Re: Problema empezando con SDL[RESUELTO]
Publicado por: Komodo en 14 Septiembre 2010, 17:38 PM
Por supuesto, LH(me recuerda siempre que pongo esto a una web en la cual estaba antes ;D )

Bueno, primero yo decidi usar esto con Dev-C++ no es mi IDE preferida ni mucho menos, pero tengo conio2, conio, allegro, openGL y SDL ahi entonces decidi ponerme otro DevPack, en esta ocasión fue el de SDL, el cual podeis encontrarlo, aquí http://devpaks.org/details.php?devpak=12

Lo instalais y luego abris DevC++ y creais un nuevo proyecto y buscais hasta encontrar SDL Project le dais creais el main.c y tal y pegais el code de arriba si os funciona todo bien, podeis llorar de alegría :D