summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOwen Taylor <otaylor@redhat.com>2005-06-21 16:22:08 +0000
committerOwen Taylor <otaylor@src.gnome.org>2005-06-21 16:22:08 +0000
commitdf47e3181d2e08b09220f4d3fed62f1bda59a229 (patch)
treec90822e27a4366fc3d1ddeddd0b87ad4f0a454dc
parent50d0b340d03a19ae688a3807bbe22e5ae3763bd9 (diff)
downloadpango-df47e3181d2e08b09220f4d3fed62f1bda59a229.tar.gz
Go back to honoring alpha in the XftColor passed in; it was a 1.6 => 1.8
2005-06-21 Owen Taylor <otaylor@redhat.com> * pango/pangoxft-render.c (get_renderer): Go back to honoring alpha in the XftColor passed in; it was a 1.6 => 1.8 regression. (#169622, based on a patch from Mikael Magnusson)
-rw-r--r--ChangeLog8
-rw-r--r--ChangeLog.pre-1-108
-rw-r--r--pango/pangoxft-render.c27
3 files changed, 37 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog
index f5e3abb2..503854a6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,8 +1,14 @@
2005-06-21 Owen Taylor <otaylor@redhat.com>
+ * pango/pangoxft-render.c (get_renderer): Go back to
+ honoring alpha in the XftColor passed in; it was a 1.6 => 1.8
+ regression. (#169622, based on a patch from Mikael Magnusson)
+
+2005-06-21 Owen Taylor <otaylor@redhat.com>
+
* modules/khmer configure.in modules/Makefile.am
modules/makefile.msc: Add a Khmer module by
- Jens Herden and Javier Sola.
+ Jens Herden and Javier Sola. (#125605)
2005-06-16 Tor Lillqvist <tml@novell.com>
diff --git a/ChangeLog.pre-1-10 b/ChangeLog.pre-1-10
index f5e3abb2..503854a6 100644
--- a/ChangeLog.pre-1-10
+++ b/ChangeLog.pre-1-10
@@ -1,8 +1,14 @@
2005-06-21 Owen Taylor <otaylor@redhat.com>
+ * pango/pangoxft-render.c (get_renderer): Go back to
+ honoring alpha in the XftColor passed in; it was a 1.6 => 1.8
+ regression. (#169622, based on a patch from Mikael Magnusson)
+
+2005-06-21 Owen Taylor <otaylor@redhat.com>
+
* modules/khmer configure.in modules/Makefile.am
modules/makefile.msc: Add a Khmer module by
- Jens Herden and Javier Sola.
+ Jens Herden and Javier Sola. (#125605)
2005-06-16 Tor Lillqvist <tml@novell.com>
diff --git a/pango/pangoxft-render.c b/pango/pangoxft-render.c
index b649afe4..b97bb859 100644
--- a/pango/pangoxft-render.c
+++ b/pango/pangoxft-render.c
@@ -33,6 +33,7 @@ enum {
struct _PangoXftRendererPrivate
{
PangoColor default_color;
+ guint16 alpha;
Picture src_picture;
Picture dest_picture;
@@ -94,6 +95,7 @@ pango_xft_renderer_init (PangoXftRenderer *xftrenderer)
xftrenderer->priv = G_TYPE_INSTANCE_GET_PRIVATE (xftrenderer,
PANGO_TYPE_XFT_RENDERER,
PangoXftRendererPrivate);
+ xftrenderer->priv->alpha = 0xffff;
}
static void
@@ -516,7 +518,7 @@ pango_xft_renderer_real_composite_trapezoids (PangoXftRenderer *xftrenderer,
xft_color.color.red = color->red;
xft_color.color.green = color->green;
xft_color.color.blue = color->blue;
- xft_color.color.alpha = 0xffff;
+ xft_color.color.alpha = xftrenderer->priv->alpha;
src_picture = XftDrawSrcPicture (xftrenderer->draw, &xft_color);
dest_picture = XftDrawPicture (xftrenderer->draw);
@@ -555,7 +557,7 @@ pango_xft_renderer_real_composite_glyphs (PangoXftRenderer *xftrenderer,
xft_color.color.red = color->red;
xft_color.color.green = color->green;
xft_color.color.blue = color->blue;
- xft_color.color.alpha = 0xffff;
+ xft_color.color.alpha = xftrenderer->priv->alpha;
XftDrawGlyphSpec (xftrenderer->draw, &xft_color,
xft_font,
@@ -569,20 +571,31 @@ get_renderer (PangoFontMap *fontmap,
XftColor *color)
{
PangoRenderer *renderer;
+ PangoXftRenderer *xftrenderer;
PangoColor pango_color;
renderer = _pango_xft_font_map_get_renderer (PANGO_XFT_FONT_MAP (fontmap));
+ xftrenderer = PANGO_XFT_RENDERER (renderer);
- pango_xft_renderer_set_draw (PANGO_XFT_RENDERER (renderer), draw);
+ pango_xft_renderer_set_draw (xftrenderer, draw);
pango_color.red = color->color.red;
pango_color.green = color->color.green;
pango_color.blue = color->color.blue;
- pango_xft_renderer_set_default_color (PANGO_XFT_RENDERER (renderer), &pango_color);
+ pango_xft_renderer_set_default_color (xftrenderer, &pango_color);
+ xftrenderer->priv->alpha = color->color.alpha;
return renderer;
}
+static void
+release_renderer (PangoRenderer *renderer)
+{
+ PangoXftRenderer *xftrenderer = PANGO_XFT_RENDERER (renderer);
+
+ xftrenderer->priv->alpha = 0xffff;
+}
+
/**
* pango_xft_render_layout:
* @draw: an #XftDraw
@@ -616,6 +629,8 @@ pango_xft_render_layout (XftDraw *draw,
renderer = get_renderer (fontmap, draw, color);
pango_renderer_draw_layout (renderer, layout, x, y);
+
+ release_renderer (renderer);
}
/**
@@ -651,6 +666,8 @@ pango_xft_render_layout_line (XftDraw *draw,
renderer = get_renderer (fontmap, draw, color);
pango_renderer_draw_layout_line (renderer, line, x, y);
+
+ release_renderer (renderer);
}
/**
@@ -697,6 +714,8 @@ pango_xft_render_transformed (XftDraw *draw,
pango_renderer_set_matrix (renderer, matrix);
pango_renderer_draw_glyphs (renderer, font, glyphs, x, y);
+
+ release_renderer (renderer);
}
/**