[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