mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2025-11-18 06:35:12 +00:00
moved svg and PNG screenshot to a new file screenshots.cpp; moved some commandline arguments from commandline.cpp to their respective modules
This commit is contained in:
@@ -984,96 +984,6 @@ ld textscale() {
|
||||
|
||||
// bool notgl = false;
|
||||
|
||||
int pngres = 2000;
|
||||
int pngformat = 0;
|
||||
|
||||
#if CAP_PNG
|
||||
void IMAGESAVE(SDL_Surface *s, const char *fname) {
|
||||
SDL_Surface *s2 = SDL_PNGFormatAlpha(s);
|
||||
SDL_SavePNG(s2, fname);
|
||||
SDL_FreeSurface(s2);
|
||||
}
|
||||
#endif
|
||||
|
||||
hookset<void(renderbuffer*)> *hooks_hqshot;
|
||||
|
||||
#if CAP_SDL
|
||||
void saveHighQualityShot(const char *fname, const char *caption, int fade) {
|
||||
|
||||
resetbuffer rb;
|
||||
|
||||
// int maxrange = getDistLimit() * 3/2;
|
||||
|
||||
// dynamicval<int> v3(sightrange, (cheater && sightrange < maxrange) ? maxrange : sightrange);
|
||||
|
||||
if(cheater) doOvergenerate();
|
||||
|
||||
time_t timer;
|
||||
timer = time(NULL);
|
||||
|
||||
dynamicval<videopar> v(vid, vid);
|
||||
dynamicval<bool> v2(inHighQual, true);
|
||||
dynamicval<bool> v6(auraNOGL, fname ? true : false);
|
||||
|
||||
vid.xres = vid.yres = pngres;
|
||||
if(pngformat == 1) vid.xres = vid.yres * 4/3;
|
||||
if(pngformat == 2) vid.xres = vid.yres * 16/9;
|
||||
if(pngformat == 3) {
|
||||
vid.xres = vid.yres * 22/16;
|
||||
while(vid.xres & 15) vid.xres++;
|
||||
}
|
||||
|
||||
// if(vid.pmodel == 0) vid.scale = 0.99;
|
||||
calcparam();
|
||||
|
||||
renderbuffer glbuf(vid.xres, vid.yres, vid.usingGL);
|
||||
glbuf.enable();
|
||||
stereo::set_viewport(0);
|
||||
|
||||
// printf("format = %d, %d x %d\n", pngformat, vid.xres, vid.yres);
|
||||
|
||||
darken = 0;
|
||||
|
||||
int numi = (fname?1:2);
|
||||
|
||||
for(int i=0; i<numi; i++) {
|
||||
glbuf.clear(numi==1 ? backcolor : i ? 0xFFFFFF : 0);
|
||||
|
||||
#if CAP_RUG
|
||||
if(rug::rugged)
|
||||
rug::drawRugScene();
|
||||
else
|
||||
#endif
|
||||
drawfullmap();
|
||||
|
||||
drawStats();
|
||||
|
||||
callhooks(hooks_hqshot, &glbuf);
|
||||
|
||||
if(fade < 255)
|
||||
for(int y=0; y<vid.yres; y++)
|
||||
for(int x=0; x<vid.xres; x++) {
|
||||
int& p = qpixel(s, x, y);
|
||||
for(int i=0; i<3; i++) {
|
||||
part(p,i) = (part(p,i) * fade + 127) / 255;
|
||||
}
|
||||
}
|
||||
|
||||
if(caption)
|
||||
displayfr(vid.xres/2, vid.fsize+vid.fsize/4, 3, vid.fsize*2, caption, forecolor, 8);
|
||||
|
||||
char buf[128]; strftime(buf, 128, "bigshota-%y%m%d-%H%M%S" IMAGEEXT, localtime(&timer));
|
||||
buf[7] += i;
|
||||
if(!fname) fname = buf;
|
||||
IMAGESAVE(glbuf.render(), fname);
|
||||
|
||||
if(i == 0) addMessage(XLAT("Saved the high quality shot to %1", fname));
|
||||
}
|
||||
|
||||
rb.reset();
|
||||
}
|
||||
#endif
|
||||
|
||||
bool setfsize = true;
|
||||
|
||||
bool vsync_off;
|
||||
|
||||
Reference in New Issue
Block a user