From 11204e7a4442a426dd82c5ba0b0994f20e7e7d57 Mon Sep 17 00:00:00 2001 From: Uli Schlachter Date: Fri, 28 Sep 2018 18:38:33 +0200 Subject: [PATCH] Port usage of XCompositeNameWindowPixmap to xcb Signed-off-by: Uli Schlachter --- Makefile | 2 +- src/common.h | 5 +++-- src/compton.c | 3 ++- src/xrescheck.h | 10 +++++----- 4 files changed, 11 insertions(+), 9 deletions(-) diff --git a/Makefile b/Makefile index 57475e16..9a09c3c1 100644 --- a/Makefile +++ b/Makefile @@ -9,7 +9,7 @@ MANDIR ?= $(PREFIX)/share/man/man1 APPDIR ?= $(PREFIX)/share/applications ICODIR ?= $(PREFIX)/share/icons/hicolor/ -PACKAGES = x11 x11-xcb xcb-renderutil xcb-render xcb-damage xcb-randr xcb-image xcomposite xfixes xext +PACKAGES = x11 x11-xcb xcb-renderutil xcb-render xcb-damage xcb-randr xcb-composite xcb-image xcomposite xfixes xext LIBS = -lm -lrt INCS = diff --git a/src/common.h b/src/common.h index d2496a0e..d0266baa 100644 --- a/src/common.h +++ b/src/common.h @@ -82,7 +82,7 @@ #include #include #include -#include +#include /* FIXME remove this once done porting to xcb-composite */ #include #include #ifdef CONFIG_XSYNC @@ -93,6 +93,7 @@ #include #endif +#include #include #include #include @@ -596,7 +597,7 @@ typedef struct _options_t { Window benchmark_wid; /// A list of conditions of windows not to paint. c2_lptr_t *paint_blacklist; - /// Whether to avoid using XCompositeNameWindowPixmap(), for debugging. + /// Whether to avoid using xcb_composite_name_window_pixmap(), for debugging. bool no_name_pixmap; /// Whether to work under synchronized mode for debugging. bool synchronize; diff --git a/src/compton.c b/src/compton.c index 04eab3e4..56069a24 100644 --- a/src/compton.c +++ b/src/compton.c @@ -1446,7 +1446,8 @@ win_paint_win(session_t *ps, win *w, XserverRegion reg_paint, // Fetch Pixmap if (!w->paint.pixmap && ps->has_name_pixmap) { set_ignore_next(ps); - w->paint.pixmap = XCompositeNameWindowPixmap(ps->dpy, w->id); + w->paint.pixmap = xcb_generate_id(c); + xcb_composite_name_window_pixmap(c, w->id, w->paint.pixmap); if (w->paint.pixmap) free_fence(ps, &w->fence); } diff --git a/src/xrescheck.h b/src/xrescheck.h index 48f254b2..67aea3f0 100644 --- a/src/xrescheck.h +++ b/src/xrescheck.h @@ -48,16 +48,16 @@ XCreatePixmap_(Display *dpy, Drawable drawable, #define XCreatePixmap(dpy, drawable, width, height, depth) \ XCreatePixmap_(dpy, drawable, width, height, depth, M_POS_DATA) -static inline Pixmap -XCompositeNameWindowPixmap_(Display *dpy, Window window, M_POS_DATA_PARAMS) { - Pixmap ret = XCompositeNameWindowPixmap(dpy, window); +static inline xcb_pixmap_t +xcb_composite_name_window_pixmap_(xcb_connection_t *c, xcb_window_t window, xcb_pixmap_t pixmap, M_POS_DATA_PARAMS) { + xcb_pixmap_t ret = xcb_composite_name_window_pixmap(c, window, pixmap); if (ret) xrc_add_xid_(ret, "PixmapC", M_POS_DATA_PASSTHROUGH); return ret; } -#define XCompositeNameWindowPixmap(dpy, window) \ - XCompositeNameWindowPixmap_(dpy, window, M_POS_DATA) +#define xcb_composite_name_window_pixmap(dpy, window, pixmap) \ + xcb_composite_name_window_pixmap_(dpy, window, pixmap, M_POS_DATA) static inline void XFreePixmap_(Display *dpy, Pixmap pixmap, M_POS_DATA_PARAMS) {