2 * vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2
10 #include "ecore_x_private.h"
13 static int _composite_available;
16 _ecore_x_composite_init(void)
18 _composite_available = 0;
20 #ifdef ECORE_XCOMPOSITE
23 if (XCompositeQueryVersion(_ecore_x_disp, &major, &minor))
24 _composite_available = 1;
29 ecore_x_composite_query(void)
31 LOGFN(__FILE__, __LINE__, __FUNCTION__);
32 return _composite_available;
36 ecore_x_composite_redirect_window(Ecore_X_Window win, Ecore_X_Composite_Update_Type type)
38 #ifdef ECORE_XCOMPOSITE
39 int update = CompositeRedirectAutomatic;
41 LOGFN(__FILE__, __LINE__, __FUNCTION__);
44 case ECORE_X_COMPOSITE_UPDATE_AUTOMATIC:
45 update = CompositeRedirectAutomatic;
47 case ECORE_X_COMPOSITE_UPDATE_MANUAL:
48 update = CompositeRedirectManual;
51 XCompositeRedirectWindow(_ecore_x_disp, win, update);
56 ecore_x_composite_redirect_subwindows(Ecore_X_Window win, Ecore_X_Composite_Update_Type type)
58 #ifdef ECORE_XCOMPOSITE
59 int update = CompositeRedirectAutomatic;
61 LOGFN(__FILE__, __LINE__, __FUNCTION__);
64 case ECORE_X_COMPOSITE_UPDATE_AUTOMATIC:
65 update = CompositeRedirectAutomatic;
67 case ECORE_X_COMPOSITE_UPDATE_MANUAL:
68 update = CompositeRedirectManual;
71 XCompositeRedirectSubwindows(_ecore_x_disp, win, update);
76 ecore_x_composite_unredirect_window(Ecore_X_Window win, Ecore_X_Composite_Update_Type type)
78 #ifdef ECORE_XCOMPOSITE
79 int update = CompositeRedirectAutomatic;
81 LOGFN(__FILE__, __LINE__, __FUNCTION__);
84 case ECORE_X_COMPOSITE_UPDATE_AUTOMATIC:
85 update = CompositeRedirectAutomatic;
87 case ECORE_X_COMPOSITE_UPDATE_MANUAL:
88 update = CompositeRedirectManual;
91 XCompositeUnredirectWindow(_ecore_x_disp, win, update);
96 ecore_x_composite_unredirect_subwindows(Ecore_X_Window win, Ecore_X_Composite_Update_Type type)
98 #ifdef ECORE_XCOMPOSITE
99 int update = CompositeRedirectAutomatic;
101 LOGFN(__FILE__, __LINE__, __FUNCTION__);
104 case ECORE_X_COMPOSITE_UPDATE_AUTOMATIC:
105 update = CompositeRedirectAutomatic;
107 case ECORE_X_COMPOSITE_UPDATE_MANUAL:
108 update = CompositeRedirectManual;
111 XCompositeUnredirectSubwindows(_ecore_x_disp, win, update);
116 ecore_x_composite_name_window_pixmap_get(Ecore_X_Window win)
118 Ecore_X_Pixmap pixmap = None;
120 #ifdef ECORE_XCOMPOSITE
121 LOGFN(__FILE__, __LINE__, __FUNCTION__);
122 pixmap = XCompositeNameWindowPixmap(_ecore_x_disp, win);
129 ecore_x_composite_render_window_enable(Ecore_X_Window root)
131 Ecore_X_Window win = 0;
132 #ifdef ECORE_XCOMPOSITE
135 LOGFN(__FILE__, __LINE__, __FUNCTION__);
136 win = XCompositeGetOverlayWindow(_ecore_x_disp, root);
141 XShapeCombineRectangles(_ecore_x_disp, win, ShapeInput, 0, 0, &rect, 1,
148 ecore_x_composite_render_window_disable(Ecore_X_Window root)
150 #ifdef ECORE_XCOMPOSITE
151 LOGFN(__FILE__, __LINE__, __FUNCTION__);
152 XCompositeReleaseOverlayWindow(_ecore_x_disp, root);