forked from AuroraMiddleware/gtk
Make clipmasks work for pixbuf rendering
This is more important in the client side windows world, as clip masks may be used for clipping to non-native subwindows. This fixes a bug in aisleriot where it uses masked pixbuf drawing and it ends up drawing over the moving card subwindow.
This commit is contained in:
parent
5f12fe2b3b
commit
2678a454e5
9
NEWS
9
NEWS
@ -1,3 +1,12 @@
|
||||
Overview of Changes from GTK+ 2.17.3 to 2.17.4
|
||||
==============================================
|
||||
|
||||
* Support for clipmasks in gdk_draw_pixbuf now works, this will
|
||||
introduce visual changes in code that uses clipmasks when drawing
|
||||
pixbufs. However, since this never worked that is unlikely to happen.
|
||||
Old code using gdk_pixbuf_render_threshold_alpha masks when rendering
|
||||
pixbufs will now produce truncated results at the edges.
|
||||
|
||||
Overview of Changes from GTK+ 2.17.2 to 2.17.3
|
||||
==============================================
|
||||
|
||||
|
@ -752,9 +752,6 @@ gdk_draw_image (GdkDrawable *drawable,
|
||||
* On older X servers, rendering pixbufs with an alpha channel involves round
|
||||
* trips to the X server, and may be somewhat slow.
|
||||
*
|
||||
* The clip mask of @gc is ignored, but clip rectangles and clip regions work
|
||||
* fine.
|
||||
*
|
||||
* If GDK is built with the Sun mediaLib library, the gdk_draw_pixbuf
|
||||
* function is accelerated using mediaLib, which provides hardware
|
||||
* acceleration on Intel, AMD, and Sparc chipsets. If desired, mediaLib
|
||||
|
@ -388,9 +388,22 @@ gdk_x11_drawable_update_picture_clip (GdkDrawable *drawable,
|
||||
else
|
||||
{
|
||||
XRenderPictureAttributes pa;
|
||||
pa.clip_mask = None;
|
||||
GdkBitmap *mask;
|
||||
gulong pa_mask;
|
||||
|
||||
pa_mask = CPClipMask;
|
||||
if (gc && (mask = _gdk_gc_get_clip_mask (gc)))
|
||||
{
|
||||
pa.clip_mask = GDK_PIXMAP_XID (mask);
|
||||
pa.clip_x_origin = gc->clip_x_origin;
|
||||
pa.clip_y_origin = gc->clip_y_origin;
|
||||
pa_mask |= CPClipXOrigin | CPClipYOrigin;
|
||||
}
|
||||
else
|
||||
pa.clip_mask = None;
|
||||
|
||||
XRenderChangePicture (xdisplay, picture,
|
||||
CPClipMask, &pa);
|
||||
pa_mask, &pa);
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user