1
0
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:
Zeno Rogue
2018-07-19 23:46:58 +02:00
parent 8c5a88c513
commit 30cb9158cb
11 changed files with 507 additions and 440 deletions

View File

@@ -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;