xserver: Branch 'master' - 2 commits

Adam Jackson ajax at kemper.freedesktop.org
Tue Mar 8 20:17:50 UTC 2016


 glamor/glamor_program.c   |    6 +++---
 glamor/glamor_transform.c |   16 ++++++++--------
 glamor/glamor_transform.h |   12 +++++++++++-
 3 files changed, 22 insertions(+), 12 deletions(-)

New commits:
commit a3e681eafa5355b8bb3b099d47983f14f0d5e197
Author: Michel Dänzer <michel.daenzer at amd.com>
Date:   Tue Feb 23 17:19:03 2016 +0900

    glamor: Source pictures are always depth 32
    
    We were using the destination pixmap depth to determine the source
    picture format.
    
    Fixes incorrect text rendering with some MATE desktop GTK3 themes.
    
    Reviewed-by: Adam Jackson <ajax at redhat.com>
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=94246
    Signed-off-by: Michel Dänzer <michel.daenzer at amd.com>

diff --git a/glamor/glamor_program.c b/glamor/glamor_program.c
index ddab16f..0a94de6 100644
--- a/glamor/glamor_program.c
+++ b/glamor/glamor_program.c
@@ -508,9 +508,9 @@ use_source_solid(CARD8 op, PicturePtr src, PicturePtr dst, glamor_program *prog)
 
     glamor_set_blend(op, prog->alpha, dst);
 
-    glamor_set_color(glamor_get_drawable_pixmap(dst->pDrawable),
-                     src->pSourcePict->solidFill.color,
-                     prog->fg_uniform);
+    glamor_set_color_depth(dst->pDrawable->pScreen, 32,
+                           src->pSourcePict->solidFill.color,
+                           prog->fg_uniform);
     return TRUE;
 }
 
commit b05ae79ee3bebef9790c97eedc033d1ffb3ec39a
Author: Michel Dänzer <michel.daenzer at amd.com>
Date:   Tue Feb 23 17:19:02 2016 +0900

    glamor: Factor out glamor_set_color_depth from glamor_set_color
    
    The former takes explicit screen and depth parameters instead of
    deriving them from a pixmap.
    
    Reviewed-by: Adam Jackson <ajax at redhat.com>
    Signed-off-by: Michel Dänzer <michel.daenzer at amd.com>

diff --git a/glamor/glamor_transform.c b/glamor/glamor_transform.c
index 17b1066..fc96fd6 100644
--- a/glamor/glamor_transform.c
+++ b/glamor/glamor_transform.c
@@ -104,20 +104,20 @@ glamor_set_destination_drawable(DrawablePtr     drawable,
  */
 
 void
-glamor_set_color(PixmapPtr      pixmap,
-                 CARD32         pixel,
-                 GLint          uniform)
+glamor_set_color_depth(ScreenPtr      pScreen,
+                       int            depth,
+                       CARD32         pixel,
+                       GLint          uniform)
 {
-    glamor_screen_private *glamor_priv =
-        glamor_get_screen_private((pixmap)->drawable.pScreen);
+    glamor_screen_private *glamor_priv = glamor_get_screen_private(pScreen);
     float       color[4];
 
     glamor_get_rgba_from_pixel(pixel,
                                &color[0], &color[1], &color[2], &color[3],
-                               format_for_pixmap(pixmap));
+                               format_for_depth(depth));
 
-    if ((pixmap->drawable.depth == 1 || pixmap->drawable.depth == 8) &&
-	glamor_priv->one_channel_format == GL_RED)
+    if ((depth == 1 || depth == 8) &&
+        glamor_priv->one_channel_format == GL_RED)
       color[0] = color[3];
 
     glUniform4fv(uniform, 1, color);
diff --git a/glamor/glamor_transform.h b/glamor/glamor_transform.h
index ab7b2bc..5a520eb 100644
--- a/glamor/glamor_transform.h
+++ b/glamor/glamor_transform.h
@@ -33,9 +33,19 @@ glamor_set_destination_drawable(DrawablePtr     drawable,
                                 int             *p_off_y);
 
 void
+glamor_set_color_depth(ScreenPtr      pScreen,
+                       int            depth,
+                       CARD32         pixel,
+                       GLint          uniform);
+
+static inline void
 glamor_set_color(PixmapPtr      pixmap,
                  CARD32         pixel,
-                 GLint          uniform);
+                 GLint          uniform)
+{
+    glamor_set_color_depth(pixmap->drawable.pScreen,
+                           pixmap->drawable.depth, pixel, uniform);
+}
 
 Bool
 glamor_set_texture_pixmap(PixmapPtr    texture);


More information about the xorg-commit mailing list