All pastes #577916 Raw Edit

Untitled

public cpp v1 · immutable
·published 2007-06-20 02:54 UTC
rendered paste body
void screenshot(char *filename){    SDL_Surface *image = SDL_CreateRGBSurface(SDL_SWSURFACE, scr_w, scr_h, 24, 0x0000FF, 0x00FF00, 0xFF0000, 0);    if(!image) return;    uchar *tmp = new uchar[scr_w*scr_h*3];    glPixelStorei(GL_PACK_ALIGNMENT, 1);    glReadPixels(0, 0, scr_w, scr_h, GL_RGB, GL_UNSIGNED_BYTE, tmp);    uchar *dst = (uchar *)image->pixels;    loopi(scr_h)    {        memcpy(dst, &tmp[3*scr_w*(scr_h-i-1)], 3*scr_w);        endianswap(dst, 3, scr_w);        dst += image->pitch;    }    delete[] tmp;    if(!filename[0])    {        static string buf;        s_sprintf(buf)("screenshot_%d.bmp", lastmillis);        filename = buf;    }    SDL_SaveBMP(image, filename);    SDL_FreeSurface(image);}