[C con Clase] SDL2 Salvar pantalla como bmp

Hl3 halowin3 en gmail.com
Mar Nov 19 09:10:16 CET 2013


Hola Borja, es una buena solucion.

Aqui aporto otra:

//******************
SDL_Surface *img = DL_CreateRGBSurface(0,SCREEN_WIDTH,SCREEN_HEIGHT,32,0,0,0,0);
img = IMG_Load("imagen.png");	

SDL_Texture *tex = SDL_CreateTextureFromSurface(ren, img);

SDL_Rect des  ={ 0,0,img->w, img->h };

SDL_RenderCopy( ren, tex, NULL, &des );
SDL_RenderPresent(ren);

//salvo la pantalla
SDL_Surface* salvapantalla = SDL_GetWindowSurface( win );
SDL_SaveBMP( salvapantalla, "pantallazo.bmp");

...
...
NOTA: Esto me funciona en un Windows xp de 32 bits, si paso el programa a un Windows 8 de 64 bits no me funciona, me dice que la textura "tex" debe ser creada con el flag SDL_TEXTUREACCESS_TARGET, por lo que hay que crearla independiente de "img" con SDL_CreateTexture.
Sigo investigando por que me funciona en 32 bits y no en 64.

Un saludo



Más información sobre la lista de distribución Cconclase