mirror of
https://github.com/ZDoom/raze-gles.git
synced 2024-12-27 20:20:40 +00:00
- simplified screenshot code.
This commit is contained in:
parent
f2d075e0d0
commit
a419181c36
2 changed files with 5 additions and 25 deletions
|
@ -40,8 +40,6 @@ extern int32_t qsetmode;
|
|||
extern int32_t g_logFlushWindow;
|
||||
bool System_WantGuiCapture(); // During playing this tells us whether the game must be paused due to active GUI elememts.
|
||||
|
||||
void getScreen(uint8_t* imgBuf);
|
||||
|
||||
|
||||
#include "print.h"
|
||||
|
||||
|
|
|
@ -62,10 +62,6 @@ static FileWriter *opennextfile(const char *fn)
|
|||
return FileWriter::Open(name);
|
||||
}
|
||||
|
||||
void getScreen(uint8_t* imgBuf)
|
||||
{
|
||||
screen->CopyScreenToBuffer(xdim, ydim, imgBuf);
|
||||
}
|
||||
|
||||
|
||||
CVAR(String, screenshotname, "", CVAR_ARCHIVE) // not GLOBALCONFIG - allow setting this per game.
|
||||
|
@ -123,25 +119,11 @@ static int SaveScreenshot()
|
|||
return -1;
|
||||
}
|
||||
|
||||
auto truecolor = videoGetRenderMode() >= REND_POLYMOST;
|
||||
TArray<uint8_t> imgBuf(xdim * ydim * (truecolor ? 3 : 1), true);
|
||||
|
||||
if (truecolor)
|
||||
{
|
||||
getScreen(imgBuf.Data());
|
||||
int bytesPerLine = xdim * 3;
|
||||
|
||||
TArray<uint8_t> rowBuf(bytesPerLine * 3, true);
|
||||
|
||||
for (int i = 0, numRows = ydim >> 1; i < numRows; ++i)
|
||||
{
|
||||
memcpy(rowBuf.Data(), imgBuf.Data() + i * bytesPerLine, bytesPerLine);
|
||||
memcpy(imgBuf.Data() + i * bytesPerLine, imgBuf.Data() + (ydim - i - 1) * bytesPerLine, bytesPerLine);
|
||||
memcpy(imgBuf.Data() + (ydim - i - 1) * bytesPerLine, rowBuf.Data(), bytesPerLine);
|
||||
}
|
||||
}
|
||||
|
||||
WritePNGfile(fil, imgBuf.Data(), Palette, truecolor ? SS_RGB : SS_PAL, xdim, ydim, truecolor? xdim*3 : xdim, png_gamma);
|
||||
float gamma;
|
||||
int pitch;
|
||||
ESSType ctype;
|
||||
auto imgBuf = screen->GetScreenshotBuffer(pitch, ctype, gamma);
|
||||
WritePNGfile(fil, imgBuf.Data(), Palette, ctype, xdim, ydim, pitch, gamma);
|
||||
delete fil;
|
||||
Printf("screenshot saved\n");
|
||||
return 0;
|
||||
|
|
Loading…
Reference in a new issue