3 #include "extensions.h"
6 void composite_startup(gboolean reconfig) {}
7 void composite_shutdown(gboolean reconfig) {}
8 gboolean composite_window_has_alpha(Visual *vis) { return FALSE; }
9 XID composite_get_window_picture(Window win, Visual *vis) { return None; }
10 Pixmap composite_get_window_pixmap(Window win) { return None; }
13 static Picture root_picture = None;
15 void composite_startup(gboolean reconfig)
18 if (!extensions_comp) return;
20 /* Redirect window contents to offscreen pixmaps */
21 XCompositeRedirectSubwindows(ob_display,
22 RootWindow(ob_display, ob_screen),
23 CompositeRedirectAutomatic);
26 void composite_shutdown(gboolean reconfig)
29 if (!extensions_comp) return;
32 void composite_setup_root_window()
35 XRenderFreePicture(ob_display, root_picture);
38 composite_get_window_picture(RootWindow(ob_display, ob_screen),
39 RrVisual(ob_rr_inst));
42 gboolean composite_window_has_alpha(Visual *vis)
44 XRenderPictFormat *format;
46 if (!extensions_comp) return FALSE;
48 format = XRenderFindVisualFormat(ob_display, vis);
49 return format->type == PictTypeDirect && format->direct.alphaMask;
52 XID composite_get_window_picture(Window win, Visual *vis)
54 XRenderPictureAttributes pa;
55 XRenderPictFormat *format;
57 if (!extensions_comp) return None;
59 format = XRenderFindVisualFormat(ob_display, vis);
61 pa.subwindow_mode = IncludeInferiors;
62 return XRenderCreatePicture(ob_display, win, format, CPSubwindowMode, &pa);
65 Pixmap composite_get_window_pixmap(Window win)
67 if (!extensions_comp) return None;
69 return XCompositeNameWindowPixmap(ob_display, win);