Set unused bits in pixel to 1s in case they are used as alpha; copying
Mon Aug 23 01:17:59 2004 Matthias Clasen <maclas@gmx.de> * gdk/gdkrgb.c (gdk_rgb_xpixel_from_rgb_internal): Set unused bits in pixel to 1s in case they are used as alpha; copying code from gdk_colormap_alloc_colors(). (#150466, Rich Wareham)
This commit is contained in:
parent
515c055ccd
commit
ec066eeef8
@ -1,3 +1,9 @@
|
|||||||
|
Mon Aug 23 01:17:59 2004 Matthias Clasen <maclas@gmx.de>
|
||||||
|
|
||||||
|
* gdk/gdkrgb.c (gdk_rgb_xpixel_from_rgb_internal): Set unused
|
||||||
|
bits in pixel to 1s in case they are used as alpha; copying
|
||||||
|
code from gdk_colormap_alloc_colors(). (#150466, Rich Wareham)
|
||||||
|
|
||||||
2004-08-22 Philip Langdale <plangdale@vmware.com>
|
2004-08-22 Philip Langdale <plangdale@vmware.com>
|
||||||
|
|
||||||
* gtk/gtkaction.c (gtk_action_disconnect_proxy): Two signals
|
* gtk/gtkaction.c (gtk_action_disconnect_proxy): Two signals
|
||||||
|
@ -1,3 +1,9 @@
|
|||||||
|
Mon Aug 23 01:17:59 2004 Matthias Clasen <maclas@gmx.de>
|
||||||
|
|
||||||
|
* gdk/gdkrgb.c (gdk_rgb_xpixel_from_rgb_internal): Set unused
|
||||||
|
bits in pixel to 1s in case they are used as alpha; copying
|
||||||
|
code from gdk_colormap_alloc_colors(). (#150466, Rich Wareham)
|
||||||
|
|
||||||
2004-08-22 Philip Langdale <plangdale@vmware.com>
|
2004-08-22 Philip Langdale <plangdale@vmware.com>
|
||||||
|
|
||||||
* gtk/gtkaction.c (gtk_action_disconnect_proxy): Two signals
|
* gtk/gtkaction.c (gtk_action_disconnect_proxy): Two signals
|
||||||
|
@ -1,3 +1,9 @@
|
|||||||
|
Mon Aug 23 01:17:59 2004 Matthias Clasen <maclas@gmx.de>
|
||||||
|
|
||||||
|
* gdk/gdkrgb.c (gdk_rgb_xpixel_from_rgb_internal): Set unused
|
||||||
|
bits in pixel to 1s in case they are used as alpha; copying
|
||||||
|
code from gdk_colormap_alloc_colors(). (#150466, Rich Wareham)
|
||||||
|
|
||||||
2004-08-22 Philip Langdale <plangdale@vmware.com>
|
2004-08-22 Philip Langdale <plangdale@vmware.com>
|
||||||
|
|
||||||
* gtk/gtkaction.c (gtk_action_disconnect_proxy): Two signals
|
* gtk/gtkaction.c (gtk_action_disconnect_proxy): Two signals
|
||||||
|
@ -1,3 +1,9 @@
|
|||||||
|
Mon Aug 23 01:17:59 2004 Matthias Clasen <maclas@gmx.de>
|
||||||
|
|
||||||
|
* gdk/gdkrgb.c (gdk_rgb_xpixel_from_rgb_internal): Set unused
|
||||||
|
bits in pixel to 1s in case they are used as alpha; copying
|
||||||
|
code from gdk_colormap_alloc_colors(). (#150466, Rich Wareham)
|
||||||
|
|
||||||
2004-08-22 Philip Langdale <plangdale@vmware.com>
|
2004-08-22 Philip Langdale <plangdale@vmware.com>
|
||||||
|
|
||||||
* gtk/gtkaction.c (gtk_action_disconnect_proxy): Two signals
|
* gtk/gtkaction.c (gtk_action_disconnect_proxy): Two signals
|
||||||
|
11
gdk/gdkrgb.c
11
gdk/gdkrgb.c
@ -745,6 +745,8 @@ gdk_rgb_xpixel_from_rgb_internal (GdkColormap *colormap,
|
|||||||
else if (image_info->visual->type == GDK_VISUAL_TRUE_COLOR ||
|
else if (image_info->visual->type == GDK_VISUAL_TRUE_COLOR ||
|
||||||
image_info->visual->type == GDK_VISUAL_DIRECT_COLOR)
|
image_info->visual->type == GDK_VISUAL_DIRECT_COLOR)
|
||||||
{
|
{
|
||||||
|
guint32 unused;
|
||||||
|
|
||||||
#ifdef VERBOSE
|
#ifdef VERBOSE
|
||||||
g_print ("shift, prec: r %d %d g %d %d b %d %d\n",
|
g_print ("shift, prec: r %d %d g %d %d b %d %d\n",
|
||||||
image_info->visual->red_shift,
|
image_info->visual->red_shift,
|
||||||
@ -754,8 +756,15 @@ gdk_rgb_xpixel_from_rgb_internal (GdkColormap *colormap,
|
|||||||
image_info->visual->blue_shift,
|
image_info->visual->blue_shift,
|
||||||
image_info->visual->blue_prec);
|
image_info->visual->blue_prec);
|
||||||
#endif
|
#endif
|
||||||
|
/* If bits not used for color are used for something other than padding,
|
||||||
|
* it's likely alpha, so we set them to 1s.
|
||||||
|
*/
|
||||||
|
unused = ~ (image_info->visual->red_mask |
|
||||||
|
image_info->visual->green_mask |
|
||||||
|
image_info->visual->blue_mask |
|
||||||
|
(((~(guint32)0)) << image_info->visual->depth));
|
||||||
|
|
||||||
pixel = (((r >> (16 - image_info->visual->red_prec)) << image_info->visual->red_shift) +
|
pixel = (unused + ((r >> (16 - image_info->visual->red_prec)) << image_info->visual->red_shift) +
|
||||||
((g >> (16 - image_info->visual->green_prec)) << image_info->visual->green_shift) +
|
((g >> (16 - image_info->visual->green_prec)) << image_info->visual->green_shift) +
|
||||||
((b >> (16 - image_info->visual->blue_prec)) << image_info->visual->blue_shift));
|
((b >> (16 - image_info->visual->blue_prec)) << image_info->visual->blue_shift));
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user