]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - palette.c
fix bug in skybox render + r_glsl_usegeneric + fog; add gamma to postprocessing shader
[xonotic/darkplaces.git] / palette.c
index e73e819213825253f4d799a3f6cdcd4063082c92..85cd474f86ed049a837a388e5af7578f2c4ee62c 100644 (file)
--- a/palette.c
+++ b/palette.c
@@ -19,11 +19,12 @@ unsigned int palette_bgra_onlyfullbrights[256];
 unsigned int palette_bgra_pantsaswhite[256];
 unsigned int palette_bgra_shirtaswhite[256];
 unsigned int palette_bgra_transparent[256];
+unsigned int palette_bgra_embeddedpic[256];
 
 // John Carmack said the quake palette.lmp can be considered public domain because it is not an important asset to id, so I include it here as a fallback if no external palette file is found.
 unsigned char host_quakepal[768] =
 {
-// marked: colormap colors: cb = (e->render.colormap & 0xF0);cb += (cb >= 128 && cb < 224) ? 4 : 12;
+// marked: colormap colors: cb = (colormap & 0xF0);cb += (cb >= 128 && cb < 224) ? 4 : 12;
 // 0x0*
        0,0,0,        15,15,15,     31,31,31,     47,47,47,     63,63,63,     75,75,75,     91,91,91,     107,107,107,
        123,123,123,  139,139,139,  155,155,155,  171,171,171,  187,187,187,  203,203,203,  219,219,219,  235,235,235,
@@ -84,6 +85,12 @@ void Palette_SetupSpecialPalettes(void)
        int transparentcolor;
        unsigned char *colormap;
        fs_offset_t filesize;
+       union
+       {
+               int i;
+               unsigned char b[4];
+       }
+       u;
 
        colormap = FS_LoadFile("gfx/colormap.lmp", tempmempool, true, &filesize);
        if (colormap && filesize >= 16385)
@@ -153,7 +160,9 @@ void Palette_SetupSpecialPalettes(void)
 
        for (i = 0;i < 256;i++)
                palette_bgra_alpha[i] = 0xFFFFFFFF;
-       palette_bgra_alpha[transparentcolor] = 0;
+       u.i = 0xFFFFFFFF;
+       u.b[3] = 0;
+       palette_bgra_alpha[transparentcolor] = u.i;
 
        for (i = 0;i < 256;i++)
                palette_bgra_font[i] = palette_bgra_complete[i];
@@ -204,6 +213,12 @@ void Palette_Load(void)
        fs_offset_t filesize;
        unsigned char *palfile;
        unsigned char texturegammaramp[256];
+       union
+       {
+               unsigned char b[4];
+               unsigned int i;
+       }
+       bgra;
 
        gamma = 1;
        scale = 1;
@@ -279,6 +294,13 @@ void Palette_Load(void)
        if(palfile)
                Mem_Free(palfile);
 
+       memset(palette_bgra_embeddedpic, 0, sizeof(palette_bgra_embeddedpic));
+       for (i = '1';i <= '7';i++)
+       {
+               Vector4Set(bgra.b, 255, 255, 255, (i - '0') * 255 / 7);
+               palette_bgra_embeddedpic[i] = bgra.i;
+       }
+
        Palette_SetupSpecialPalettes();
 }