mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2026-04-26 20:11:47 +00:00
Disable colour profile influence on screenshots and gifs if you want.
(cherry picked from commit 8b46ee76ff)
# Conflicts:
# src/m_menu.c
This commit is contained in:
parent
56ac088443
commit
7a14bbba82
4 changed files with 39 additions and 11 deletions
|
|
@ -789,6 +789,7 @@ void D_RegisterClientCommands(void)
|
||||||
|
|
||||||
CV_RegisterVar(&cv_screenshot_option);
|
CV_RegisterVar(&cv_screenshot_option);
|
||||||
CV_RegisterVar(&cv_screenshot_folder);
|
CV_RegisterVar(&cv_screenshot_folder);
|
||||||
|
CV_RegisterVar(&cv_screenshot_colorprofile);
|
||||||
CV_RegisterVar(&cv_moviemode);
|
CV_RegisterVar(&cv_moviemode);
|
||||||
// PNG variables
|
// PNG variables
|
||||||
CV_RegisterVar(&cv_zlib_level);
|
CV_RegisterVar(&cv_zlib_level);
|
||||||
|
|
|
||||||
|
|
@ -18,6 +18,7 @@
|
||||||
#include "z_zone.h"
|
#include "z_zone.h"
|
||||||
#include "v_video.h"
|
#include "v_video.h"
|
||||||
#include "i_video.h"
|
#include "i_video.h"
|
||||||
|
#include "m_misc.h"
|
||||||
|
|
||||||
// GIFs are always little-endian
|
// GIFs are always little-endian
|
||||||
#include "byteptr.h"
|
#include "byteptr.h"
|
||||||
|
|
@ -396,7 +397,6 @@ static void GIF_headwrite(void)
|
||||||
{
|
{
|
||||||
UINT8 *gifhead = Z_Malloc(800, PU_STATIC, NULL);
|
UINT8 *gifhead = Z_Malloc(800, PU_STATIC, NULL);
|
||||||
UINT8 *p = gifhead;
|
UINT8 *p = gifhead;
|
||||||
RGBA_t *c;
|
|
||||||
INT32 i;
|
INT32 i;
|
||||||
UINT16 rwidth, rheight;
|
UINT16 rwidth, rheight;
|
||||||
|
|
||||||
|
|
@ -427,12 +427,24 @@ static void GIF_headwrite(void)
|
||||||
WRITEUINT8(p, 0x00);
|
WRITEUINT8(p, 0x00);
|
||||||
|
|
||||||
// write color table
|
// write color table
|
||||||
for (i = 0; i < 256; ++i)
|
if (cv_screenshot_colorprofile.value)
|
||||||
{
|
{
|
||||||
c = &pLocalPalette[i];
|
for (i = 0; i < 256; i++)
|
||||||
WRITEUINT8(p, c->s.red);
|
{
|
||||||
WRITEUINT8(p, c->s.green);
|
WRITEUINT8(p, pLocalPalette[i].s.red);
|
||||||
WRITEUINT8(p, c->s.blue);
|
WRITEUINT8(p, pLocalPalette[i].s.green);
|
||||||
|
WRITEUINT8(p, pLocalPalette[i].s.blue);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
const UINT8 *pal = (UINT8 *)W_CacheLumpName(GetPalette(), PU_CACHE);
|
||||||
|
for (i = 0; i < 256; i++)
|
||||||
|
{
|
||||||
|
WRITEUINT8(p, *pal); pal++;
|
||||||
|
WRITEUINT8(p, *pal); pal++;
|
||||||
|
WRITEUINT8(p, *pal); pal++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// write extension block
|
// write extension block
|
||||||
|
|
|
||||||
23
src/m_misc.c
23
src/m_misc.c
|
|
@ -104,6 +104,8 @@ static CV_PossibleValue_t screenshot_cons_t[] = {{0, "Default"}, {1, "HOME"}, {2
|
||||||
consvar_t cv_screenshot_option = {"screenshot_option", "Default", CV_SAVE|CV_CALL, screenshot_cons_t, Screenshot_option_Onchange, 0, NULL, NULL, 0, 0, NULL};
|
consvar_t cv_screenshot_option = {"screenshot_option", "Default", CV_SAVE|CV_CALL, screenshot_cons_t, Screenshot_option_Onchange, 0, NULL, NULL, 0, 0, NULL};
|
||||||
consvar_t cv_screenshot_folder = {"screenshot_folder", "", CV_SAVE, NULL, NULL, 0, NULL, NULL, 0, 0, NULL};
|
consvar_t cv_screenshot_folder = {"screenshot_folder", "", CV_SAVE, NULL, NULL, 0, NULL, NULL, 0, 0, NULL};
|
||||||
|
|
||||||
|
consvar_t cv_screenshot_colorprofile = {"screenshot_colorprofile", "Yes", CV_SAVE, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
|
||||||
|
|
||||||
static CV_PossibleValue_t moviemode_cons_t[] = {{MM_GIF, "GIF"}, {MM_APNG, "aPNG"}, {MM_SCREENSHOT, "Screenshots"}, {0, NULL}};
|
static CV_PossibleValue_t moviemode_cons_t[] = {{MM_GIF, "GIF"}, {MM_APNG, "aPNG"}, {MM_SCREENSHOT, "Screenshots"}, {0, NULL}};
|
||||||
consvar_t cv_moviemode = {"moviemode_mode", "GIF", CV_SAVE|CV_CALL, moviemode_cons_t, Moviemode_mode_Onchange, 0, NULL, NULL, 0, 0, NULL};
|
consvar_t cv_moviemode = {"moviemode_mode", "GIF", CV_SAVE|CV_CALL, moviemode_cons_t, Moviemode_mode_Onchange, 0, NULL, NULL, 0, 0, NULL};
|
||||||
|
|
||||||
|
|
@ -661,11 +663,24 @@ static void M_PNGhdr(png_structp png_ptr, png_infop png_info_ptr, PNG_CONST png_
|
||||||
{
|
{
|
||||||
png_colorp png_PLTE = png_malloc(png_ptr, sizeof(png_color)*256); //palette
|
png_colorp png_PLTE = png_malloc(png_ptr, sizeof(png_color)*256); //palette
|
||||||
png_uint_16 i;
|
png_uint_16 i;
|
||||||
for (i = 0; i < 256; i++)
|
if (cv_screenshot_colorprofile.value)
|
||||||
{
|
{
|
||||||
png_PLTE[i].red = pLocalPalette[i].s.red;
|
for (i = 0; i < 256; i++)
|
||||||
png_PLTE[i].green = pLocalPalette[i].s.green;
|
{
|
||||||
png_PLTE[i].blue = pLocalPalette[i].s.blue;
|
png_PLTE[i].red = pLocalPalette[i].s.red;
|
||||||
|
png_PLTE[i].green = pLocalPalette[i].s.green;
|
||||||
|
png_PLTE[i].blue = pLocalPalette[i].s.blue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
const png_byte *pal = (png_byte *)W_CacheLumpName(GetPalette(), PU_CACHE);
|
||||||
|
for (i = 0; i < 256; i++)
|
||||||
|
{
|
||||||
|
png_PLTE[i].red = *pal++;
|
||||||
|
png_PLTE[i].green = *pal++;
|
||||||
|
png_PLTE[i].blue = *pal++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
png_set_IHDR(png_ptr, png_info_ptr, width, height, 8, PNG_COLOR_TYPE_PALETTE,
|
png_set_IHDR(png_ptr, png_info_ptr, width, height, 8, PNG_COLOR_TYPE_PALETTE,
|
||||||
png_interlace, PNG_COMPRESSION_TYPE_BASE, PNG_FILTER_TYPE_BASE);
|
png_interlace, PNG_COMPRESSION_TYPE_BASE, PNG_FILTER_TYPE_BASE);
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,7 @@ typedef enum {
|
||||||
} moviemode_t;
|
} moviemode_t;
|
||||||
extern moviemode_t moviemode;
|
extern moviemode_t moviemode;
|
||||||
|
|
||||||
extern consvar_t cv_screenshot_option, cv_screenshot_folder;
|
extern consvar_t cv_screenshot_option, cv_screenshot_folder, cv_screenshot_colorprofile;
|
||||||
extern consvar_t cv_moviemode;
|
extern consvar_t cv_moviemode;
|
||||||
extern consvar_t cv_zlib_memory, cv_zlib_level, cv_zlib_strategy, cv_zlib_window_bits;
|
extern consvar_t cv_zlib_memory, cv_zlib_level, cv_zlib_strategy, cv_zlib_window_bits;
|
||||||
extern consvar_t cv_zlib_memorya, cv_zlib_levela, cv_zlib_strategya, cv_zlib_window_bitsa;
|
extern consvar_t cv_zlib_memorya, cv_zlib_levela, cv_zlib_strategya, cv_zlib_window_bitsa;
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue