]> de.git.xonotic.org Git - xonotic/darkplaces.git/commitdiff
implemented scr_screenshot_gamma in screenshot saving (previously only implemented...
authorhavoc <havoc@d7cf8633-e32d-0410-b094-e92efae38249>
Wed, 1 Dec 2004 23:19:06 +0000 (23:19 +0000)
committerhavoc <havoc@d7cf8633-e32d-0410-b094-e92efae38249>
Wed, 1 Dec 2004 23:19:06 +0000 (23:19 +0000)
git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@4817 d7cf8633-e32d-0410-b094-e92efae38249

cl_screen.h
gl_backend.c

index 2f1c8e9c981ad1704042dcd5058bd87a7d47ff8f..7f705b6ff0db70fa3ee3f257df079a9ba1618de6 100644 (file)
@@ -68,6 +68,7 @@ extern cvar_t vid_conheight;
 extern cvar_t vid_pixelaspect;
 extern cvar_t scr_screenshot_jpeg;
 extern cvar_t scr_screenshot_jpeg_quality;
+extern cvar_t scr_screenshot_gamma;
 extern cvar_t scr_screenshot_name;
 
 void CL_Screen_NewMap(void);
index 915abadef8822257f5db2748903196b4a34d76ad..950dfc1e159052ebc149e45be6ad670b0dd52246 100644 (file)
@@ -1209,6 +1209,17 @@ qboolean SCR_ScreenShot(char *filename, qbyte *buffer1, qbyte *buffer2, qbyte *b
        qglReadPixels (x, y, width, height, GL_RGB, GL_UNSIGNED_BYTE, buffer1);
        CHECKGLERROR
 
+       if (scr_screenshot_gamma.value != 1)
+       {
+               int i;
+               double igamma = 1.0 / scr_screenshot_gamma.value;
+               unsigned char ramp[256];
+               for (i = 0;i < 256;i++)
+                       ramp[i] = (unsigned char) (pow(i * (1.0 / 255.0), igamma) * 255.0);
+               for (i = 0;i < width*height*3;i++)
+                       buffer1[i] = ramp[buffer1[i]];
+       }
+
        Image_CopyMux (buffer2, buffer1, width, height, flipx, flipy, flipdiagonal, 3, 3, indices);
 
        if (jpeg)