[Xfce4-commits] [xfce/xfwm4] 02/02: Revert "compositor: Pass the buffer number around"
noreply at xfce.org
noreply at xfce.org
Fri Jul 5 22:08:00 CEST 2019
This is an automated email from the git hooks/post-receive script.
o l i v i e r p u s h e d a c o m m i t t o b r a n c h m a s t e r
in repository xfce/xfwm4.
commit 95bc0b26a0caf7abe7d40f4aeac9cb21d4d1e47b
Author: Olivier Fourdan <fourdan at xfce.org>
Date: Fri Jul 5 22:02:04 2019 +0200
Revert "compositor: Pass the buffer number around"
This breaks zooming without GLX, reverting.
This reverts commit 18721a1abe08cb76aeb37ee7deda664602625c93.
Signed-off-by: Olivier Fourdan <fourdan at xfce.org>
---
src/compositor.c | 71 ++++++++++++++++++++++++++++----------------------------
1 file changed, 35 insertions(+), 36 deletions(-)
diff --git a/src/compositor.c b/src/compositor.c
index 165601f..122467b 100644
--- a/src/compositor.c
+++ b/src/compositor.c
@@ -1919,7 +1919,7 @@ unredirect_win (CWindow *cw)
}
static void
-paint_root (ScreenInfo *screen_info, gushort buffer)
+paint_root (ScreenInfo *screen_info, Picture paint_buffer)
{
g_return_if_fail (screen_info != NULL);
TRACE ("entering");
@@ -1933,21 +1933,21 @@ paint_root (ScreenInfo *screen_info, gushort buffer)
XRenderComposite (myScreenGetXDisplay (screen_info),
PictOpSrc,
screen_info->rootTile,
- None, screen_info->rootBuffer[buffer],
+ None, paint_buffer,
0, 0, 0, 0, 0, 0,
screen_info->width,
screen_info->height);
}
static void
-paint_cursor (ScreenInfo *screen_info, XserverRegion region, gushort buffer)
+paint_cursor (ScreenInfo *screen_info, XserverRegion region, Picture paint_buffer)
{
XFixesSetPictureClipRegion (myScreenGetXDisplay (screen_info),
- screen_info->rootBuffer[buffer], 0, 0, region);
+ paint_buffer, 0, 0, region);
XRenderComposite (myScreenGetXDisplay (screen_info),
PictOpOver,
screen_info->cursorPicture,
- None, screen_info->rootBuffer[buffer],
+ None, paint_buffer,
0, 0, 0, 0,
screen_info->cursorLocation.x,
screen_info->cursorLocation.y,
@@ -1956,7 +1956,7 @@ paint_cursor (ScreenInfo *screen_info, XserverRegion region, gushort buffer)
}
static void
-paint_win (CWindow *cw, XserverRegion region, gushort buffer, gboolean solid_part)
+paint_win (CWindow *cw, XserverRegion region, Picture paint_buffer, gboolean solid_part)
{
ScreenInfo *screen_info;
DisplayInfo *display_info;
@@ -2002,7 +2002,7 @@ paint_win (CWindow *cw, XserverRegion region, gushort buffer, gboolean solid_par
/* Top Border (title bar) */
XRenderComposite (display_info->dpy, PictOpOver, cw->picture, cw->alphaBorderPict,
- screen_info->rootBuffer[buffer],
+ paint_buffer,
0, 0,
0, 0,
frame_x, frame_y,
@@ -2010,14 +2010,14 @@ paint_win (CWindow *cw, XserverRegion region, gushort buffer, gboolean solid_par
/* Bottom Border */
XRenderComposite (display_info->dpy, PictOpOver, cw->picture, cw->alphaBorderPict,
- screen_info->rootBuffer[buffer],
+ paint_buffer,
0, frame_height - frame_bottom,
0, 0,
frame_x, frame_y + frame_height - frame_bottom,
frame_width, frame_bottom);
/* Left Border */
XRenderComposite (display_info->dpy, PictOpOver, cw->picture, cw->alphaBorderPict,
- screen_info->rootBuffer[buffer],
+ paint_buffer,
0, frame_top,
0, 0,
frame_x, frame_y + frame_top,
@@ -2025,7 +2025,7 @@ paint_win (CWindow *cw, XserverRegion region, gushort buffer, gboolean solid_par
/* Right Border */
XRenderComposite (display_info->dpy, PictOpOver, cw->picture, cw->alphaBorderPict,
- screen_info->rootBuffer[buffer],
+ paint_buffer,
frame_width - frame_right, frame_top,
0, 0,
frame_x + frame_width - frame_right,
@@ -2038,16 +2038,13 @@ paint_win (CWindow *cw, XserverRegion region, gushort buffer, gboolean solid_par
XRectangle r;
XserverRegion client_region;
- XFixesSetPictureClipRegion (display_info->dpy,
- screen_info->rootBuffer[buffer],
- 0, 0, region);
+ XFixesSetPictureClipRegion (display_info->dpy, paint_buffer, 0, 0, region);
XRenderComposite (display_info->dpy, PictOpSrc, cw->picture, None,
- screen_info->rootBuffer[buffer],
+ paint_buffer,
frame_left, frame_top,
0, 0,
frame_x + frame_left, frame_y + frame_top,
- frame_width - frame_left - frame_right,
- frame_height - frame_top - frame_bottom);
+ frame_width - frame_left - frame_right, frame_height - frame_top - frame_bottom);
r.x = frame_x + frame_left;
r.y = frame_y + frame_top;
@@ -2060,12 +2057,11 @@ paint_win (CWindow *cw, XserverRegion region, gushort buffer, gboolean solid_par
else if (!solid_part)
{
XRenderComposite (display_info->dpy, PictOpOver, cw->picture, cw->alphaPict,
- screen_info->rootBuffer[buffer],
+ paint_buffer,
frame_left, frame_top,
0, 0,
frame_x + frame_left, frame_y + frame_top,
- frame_width - frame_left - frame_right,
- frame_height - frame_top - frame_bottom);
+ frame_width - frame_left - frame_right, frame_height - frame_top - frame_bottom);
}
}
else
@@ -2076,12 +2072,10 @@ paint_win (CWindow *cw, XserverRegion region, gushort buffer, gboolean solid_par
get_paint_bounds (cw, &x, &y, &w, &h);
if (paint_solid)
{
- XFixesSetPictureClipRegion (display_info->dpy,
- screen_info->rootBuffer[buffer],
- 0, 0, region);
+ XFixesSetPictureClipRegion (display_info->dpy, paint_buffer, 0, 0, region);
XRenderComposite (display_info->dpy, PictOpSrc,
cw->picture, None,
- screen_info->rootBuffer[buffer],
+ paint_buffer,
0, 0, 0, 0, x, y, w, h);
XFixesSubtractRegion (display_info->dpy, region, region, cw->borderSize);
}
@@ -2089,7 +2083,7 @@ paint_win (CWindow *cw, XserverRegion region, gushort buffer, gboolean solid_par
{
XRenderComposite (display_info->dpy, PictOpOver,
cw->picture, cw->alphaPict,
- screen_info->rootBuffer[buffer],
+ paint_buffer,
0, 0, 0, 0, x, y, w, h);
}
}
@@ -2113,6 +2107,7 @@ paint_all (ScreenInfo *screen_info, XserverRegion region, gushort buffer)
{
DisplayInfo *display_info;
XserverRegion paint_region;
+ Picture paint_buffer;
Display *dpy;
GList *list;
gint screen_width;
@@ -2158,8 +2153,12 @@ paint_all (ScreenInfo *screen_info, XserverRegion region, gushort buffer)
screen_info->zoomBuffer = create_root_buffer (screen_info, pixmap);
XFreePixmap (display_info->dpy, pixmap);
}
+ paint_buffer = screen_info->zoomBuffer;
+ }
+ else
+ {
+ paint_buffer = screen_info->rootBuffer[buffer];
}
-
/* Copy the original given region */
paint_region = XFixesCreateRegion (dpy, NULL, 0);
XFixesCopyRegion (dpy, paint_region, region);
@@ -2212,7 +2211,7 @@ paint_all (ScreenInfo *screen_info, XserverRegion region, gushort buffer)
}
if (WIN_IS_OPAQUE(cw))
{
- paint_win (cw, paint_region, buffer, TRUE);
+ paint_win (cw, paint_region, paint_buffer, TRUE);
}
if (cw->borderClip == None)
{
@@ -2227,10 +2226,10 @@ paint_all (ScreenInfo *screen_info, XserverRegion region, gushort buffer)
* region has changed because of the XFixesSubtractRegion (),
* reapply clipping for the last iteration.
*/
- XFixesSetPictureClipRegion (dpy, screen_info->rootBuffer[buffer], 0, 0, paint_region);
+ XFixesSetPictureClipRegion (dpy, paint_buffer, 0, 0, paint_region);
if (!is_region_empty (dpy, paint_region))
{
- paint_root (screen_info, buffer);
+ paint_root (screen_info, paint_buffer);
}
/*
@@ -2255,9 +2254,9 @@ paint_all (ScreenInfo *screen_info, XserverRegion region, gushort buffer)
shadowClip = XFixesCreateRegion (dpy, NULL, 0);
XFixesSubtractRegion (dpy, shadowClip, cw->borderClip, cw->borderSize);
- XFixesSetPictureClipRegion (dpy, screen_info->rootBuffer[buffer], 0, 0, shadowClip);
+ XFixesSetPictureClipRegion (dpy, paint_buffer, 0, 0, shadowClip);
XRenderComposite (dpy, PictOpOver, screen_info->blackPicture, cw->shadow,
- screen_info->rootBuffer[buffer], 0, 0, 0, 0,
+ paint_buffer, 0, 0, 0, 0,
cw->attr.x + cw->shadow_dx,
cw->attr.y + cw->shadow_dy,
cw->shadow_width, cw->shadow_height);
@@ -2274,8 +2273,8 @@ paint_all (ScreenInfo *screen_info, XserverRegion region, gushort buffer)
0.0 /* blue */);
}
XFixesIntersectRegion (dpy, cw->borderClip, cw->borderClip, cw->borderSize);
- XFixesSetPictureClipRegion (dpy, screen_info->rootBuffer[buffer], 0, 0, cw->borderClip);
- paint_win (cw, paint_region, buffer, FALSE);
+ XFixesSetPictureClipRegion (dpy, paint_buffer, 0, 0, cw->borderClip);
+ paint_win (cw, paint_region, paint_buffer, FALSE);
}
if (shadowClip)
@@ -2296,7 +2295,7 @@ paint_all (ScreenInfo *screen_info, XserverRegion region, gushort buffer)
{
if (screen_info->zoomed)
{
- paint_cursor (screen_info, region, buffer);
+ paint_cursor (screen_info, region, paint_buffer);
}
fence_reset (screen_info, buffer);
}
@@ -2305,11 +2304,11 @@ paint_all (ScreenInfo *screen_info, XserverRegion region, gushort buffer)
{
if (screen_info->zoomed)
{
- paint_cursor (screen_info, region, buffer);
+ paint_cursor (screen_info, region, paint_buffer);
/* Fixme: copy back whole screen if zoomed
It would be better to scale the clipping region if possible. */
XFixesSetPictureClipRegion (dpy, screen_info->rootBuffer[buffer], 0, 0, None);
- XFixesSetPictureClipRegion (dpy, screen_info->rootBuffer[buffer], 0, 0, None);
+ XFixesSetPictureClipRegion (dpy, paint_buffer, 0, 0, None);
}
else
{
@@ -2350,7 +2349,7 @@ paint_all (ScreenInfo *screen_info, XserverRegion region, gushort buffer)
}
else
{
- XRenderComposite (dpy, PictOpSrc, screen_info->rootBuffer[buffer],
+ XRenderComposite (dpy, PictOpSrc, paint_buffer,
None, screen_info->rootPicture,
0, 0, 0, 0, 0, 0, screen_width, screen_height);
}
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the Xfce4-commits
mailing list