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 */
}