X-Git-Url: http://git.draconx.ca/gitweb/liblbx.git/blobdiff_plain/38a465378241d4c74b07fd7e4deaf2af09ff2bcb..85ab8496645e958bbc36b64cd2827e0c47c761eb:/src/gui/render.c diff --git a/src/gui/render.c b/src/gui/render.c index c2101b5..a96cc06 100644 --- a/src/gui/render.c +++ b/src/gui/render.c @@ -16,6 +16,8 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ + +#include #include #include @@ -27,6 +29,13 @@ struct lbx_colour palette_external[256]; struct lbx_colour palette_internal[256]; struct lbx_colour palette_override[256]; +static inline unsigned scale6to8(unsigned x) +{ + assert(x <= 0x3f); + + return x*0xff / 0x3f; +} + static void get_colour(unsigned char index, unsigned char out[static 4]) { struct lbx_colour *colour; @@ -38,11 +47,11 @@ static void get_colour(unsigned char index, unsigned char out[static 4]) else if (palette_external[index].active) colour = palette_external + index; else - colour = &(struct lbx_colour) { .red = 0xff, .blue = 0xff }; + colour = &(struct lbx_colour) { .red = 0x3f, .blue = 0x3f }; - out[0] = colour->red; - out[1] = colour->green; - out[2] = colour->blue; + out[0] = scale6to8(colour->red); + out[1] = scale6to8(colour->green); + out[2] = scale6to8(colour->blue); out[3] = -1; /* opaque */ }