From 309a9163bd392b1bb9b3732f58a047ccc8a31589 Mon Sep 17 00:00:00 2001 From: dan Date: Thu, 10 May 2001 14:28:50 +0000 Subject: [PATCH] Fixed calls to hermes lib to work correctly with all depths --- wrlib/convert.c | 41 +++++++++++++++++------------------------ 1 file changed, 17 insertions(+), 24 deletions(-) diff --git a/wrlib/convert.c b/wrlib/convert.c index ebd5e106..970b3d3f 100644 --- a/wrlib/convert.c +++ b/wrlib/convert.c @@ -802,38 +802,31 @@ hermesConvert(RContext *context, RImage *image) } if (HAS_ALPHA(image)) { - if (ximage->image->byte_order==LSBFirst) { - source.r = 0x000000ff; - source.g = 0x0000ff00; - source.b = 0x00ff0000; - source.a = 0xff000000; - } else { - source.r = 0xff000000; - source.g = 0x00ff0000; - source.b = 0x0000ff00; - source.a = 0x000000ff; - } + source.r = 0xff000000; + source.g = 0x00ff0000; + source.b = 0x0000ff00; + source.a = 0x000000ff; source.bits = 32; } else { - if (ximage->image->byte_order==LSBFirst) { - source.r = 0x0000ff; - source.g = 0x00ff00; - source.b = 0xff0000; - } else { - source.r = 0xff0000; - source.g = 0x00ff00; - source.b = 0x0000ff; - } + source.r = 0xff0000; + source.g = 0x00ff00; + source.b = 0x0000ff; source.a = 0x000000; source.bits = 24; } - source.indexed = 0; source.has_colorkey = 0; - dest.r = context->visual->red_mask; - dest.g = context->visual->green_mask; - dest.b = context->visual->blue_mask; + /* This is a hack and certainly looks weird, but it works :P */ + if (ximage->image->byte_order==LSBFirst) { + dest.b = context->visual->red_mask; + dest.g = context->visual->green_mask; + dest.r = context->visual->blue_mask; + } else { + dest.r = context->visual->red_mask; + dest.g = context->visual->green_mask; + dest.b = context->visual->blue_mask; + } dest.a = 0; dest.bits = ximage->image->bits_per_pixel; if (context->vclass == TrueColor) -- 2.11.4.GIT