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 */
22 XCompositeRedirectSubwindows(ob_display,
23 RootWindow(ob_display, ob_screen),
24 CompositeRedirectAutomatic);
28 void composite_shutdown(gboolean reconfig
)
31 if (!extensions_comp
) return;
34 void composite_setup_root_window()
37 XRenderFreePicture(ob_display
, root_picture
);
40 composite_get_window_picture(RootWindow(ob_display
, ob_screen
),
41 RrVisual(ob_rr_inst
));
44 gboolean
composite_window_has_alpha(Visual
*vis
)
46 XRenderPictFormat
*format
;
48 if (!extensions_comp
) return FALSE
;
50 format
= XRenderFindVisualFormat(ob_display
, vis
);
51 return format
->type
== PictTypeDirect
&& format
->direct
.alphaMask
;
54 XID
composite_get_window_picture(Window win
, Visual
*vis
)
56 XRenderPictureAttributes pa
;
57 XRenderPictFormat
*format
;
59 if (!extensions_comp
) return None
;
61 format
= XRenderFindVisualFormat(ob_display
, vis
);
63 pa
.subwindow_mode
= IncludeInferiors
;
64 return XRenderCreatePicture(ob_display
, win
, format
, CPSubwindowMode
, &pa
);
67 Pixmap
composite_get_window_pixmap(Window win
)
69 if (!extensions_comp
) return None
;
71 return XCompositeNameWindowPixmap(ob_display
, win
);