Foro de elhacker.net

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
Código
  1. #include "stdlib.h"
  2. #include "SDL/SDL.h"
  3.  
  4. int main(int argc, char *argv[])
  5. {
  6.    SDL_Surface *screen;    //Este puntero referenciara al backbuffer
  7.    SDL_Surface *image;    //Este puntero referenciara el bmp
  8.    SDL_Surface *temp;    //Este puntero va a hacer referencia temporal al bmp
  9.    SDL_Rect src, dest;    //Fuente y destino de el blit
  10.  
  11.    //Primero se inicializan variables y se comprueba si fue exitoso
  12.    if (SDL_Init(SDL_INIT_VIDEO) != 0) {
  13.        printf("No se pudo inicializar SDL: %s\n", SDL_GetError());
  14.        return 1;
  15.    }
  16.  
  17.    //
  18.    atexit(SDL_Quit);
  19.  
  20.    //Inicializando variables de video , profundidad y doble buffer , ademas de pantalla completa
  21.    screen = SDL_SetVideoMode(640, 480, 16, SDL_DOUBLEBUF | SDL_FULLSCREEN);
  22.    if (screen == NULL) {
  23.        printf("No se pudo cambiar modo de video: %s\n", SDL_GetError());
  24.        return 1;
  25.    }
  26.  
  27.    //Cargar el bmp a una intefaz temporal y comprobar si funciono
  28.    temp = SDL_LoadBMP("image.bmp");
  29.    if (temp == NULL) {
  30.        printf("No se pudo cargar bmp: %s\n", SDL_GetError());
  31.        return 1;
  32.    }
  33.  
  34.    //Transformar interfaz a la forma adecuada
  35.    image = SDL_DisplayFormat(temp);
  36.  
  37.    //Liberar interfaz temporal
  38.    SDL_FreeSurface(temp);
  39.  
  40.    //Construyendo el rectangulo...
  41.    src.x = 0;
  42.    src.y = 0;
  43.    src.w = image->w;    //usar image->w para mostrar el ancho de la imagen
  44.    src.h = image->h;    //usar image->h para mostrar el largo
  45.  
  46.    //Construyendo el rectangulo.. para la imagen
  47.    dest.x = 100;        //Mostrar la imagen en las coordenadas (100,100)
  48.    dest.y = 100;
  49.    dest.w = image->w;    //Asegurarse que el largo esta bien
  50.    dest.h = image->h;
  51.  
  52.    //Pasar la imgen a backbuffer
  53.    SDL_BlitSurface(image, &src, screen, &dest);
  54.  
  55.    //cambiar el backbuffer como principal
  56.    SDL_Flip(screen);
  57.  
  58.    //Esperar 2.5 segundos para ver la imagen
  59.    SDL_Delay(2500);
  60.  
  61.    //Liberar intefaz
  62.    SDL_FreeSurface(image);
  63.  
  64.    //Terminar felizmente xD
  65.    return 0;
  66. }
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