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
);