iamgreaser / iceball

Open-source rewrite of the VOXLAP version of Ace of Spades.
http://iceball.build
GNU General Public License v3.0
113 stars 32 forks source link

Add screenshot functionality #184

Closed fkaa closed 9 years ago

fkaa commented 9 years ago

The ability to save the screen contents to a file is always nice. Maybe mapped to some function key (f2, f3?). Should it save to clsave or somewhere else? What file name should it have? (eg. YYYY-MM-DD-HH-MM-ss.ext). What format should it save to? (png, tga etc.)

rakiru commented 9 years ago

I'd definitely say PNG.

iamgreaser commented 9 years ago

I'd say add an API thing and from Lua you can dump the screenshots into clsave/vol/.

For PNG, it should be fine to just use the same filter mode for each scanline. Mode 3 (difference against average of left and top) and Mode 4 (Paeth predictor) are both pretty good overall. If you're feeling slack, Mode 0 (unfiltered) works.

Should probably just use 8bpc colour mode 6 (32bpp incl alpha) just because it'll be easier - it'll probably need a red-blue swap but we aren't exactly going to be compressing these really really well, are we? (I really cannot be bothered with adding libpng as a dependency, let alone actually using libpng. It felt easier just implementing our own PNG loader relying on zlib instead of using libpng.)