X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?p=eradicate;a=blobdiff_plain;f=libs%2Fimago%2Fsrc%2Fconv.c;h=51ecd1f19f26b5c7587bbbd4c28ed6670cfdb0b5;hp=bd7fb2d3600ad9ff10f85e575f14706071020492;hb=7b3c578d22e5eebc4d048655da7bc711662e2179;hpb=3fe0918c7a62a8e8a3ff169b108c74a1211e9003 diff --git a/libs/imago/src/conv.c b/libs/imago/src/conv.c index bd7fb2d..51ecd1f 100644 --- a/libs/imago/src/conv.c +++ b/libs/imago/src/conv.c @@ -192,12 +192,12 @@ static void unpack_rgb565(struct pixel *unp, void *pptr, int count) for(i=0; i> 2) & 0xfc; if(g & 4) g |= 3; /* ditto */ - b = (p >> 8) & 0xf8; - if(b & 8) r |= 7; /* same */ + r = (p >> 8) & 0xf8; + if(r & 8) r |= 7; /* same */ unp->r = (float)r / 255.0f; unp->g = (float)g / 255.0f; @@ -292,13 +292,13 @@ static void pack_rgb565(void *pptr, struct pixel *unp, int count) uint16_t *pix = pptr; for(i=0; ir * 255.0f); - uint16_t g = (uint16_t)(unp->g * 255.0f); - uint16_t b = (uint16_t)(unp->b * 255.0f); - if(r > 255) r = 255; - if(g > 255) g = 255; - if(b > 255) b = 255; - *pix++ = (r >> 3) | ((g & 0x3f) << 2) | ((b & 0x1f) << 8); + uint16_t r = (uint16_t)(unp->r * 31.0f); + uint16_t g = (uint16_t)(unp->g * 63.0f); + uint16_t b = (uint16_t)(unp->b * 31.0f); + if(r > 31) r = 31; + if(g > 63) g = 63; + if(b > 31) b = 31; + *pix++ = (r << 11) | (g << 5) | b; unp++; } }