00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #include <config.h>
00023 #include "compositor-private.h"
00024 #include "compositor-xrender.h"
00025
00026 MetaCompositor *
00027 meta_compositor_new (MetaDisplay *display)
00028 {
00029 #ifdef HAVE_COMPOSITE_EXTENSIONS
00030
00031 return meta_compositor_xrender_new (display);
00032 #else
00033 return NULL;
00034 #endif
00035 }
00036
00037 void
00038 meta_compositor_destroy (MetaCompositor *compositor)
00039 {
00040 #ifdef HAVE_COMPOSITE_EXTENSIONS
00041 if (compositor && compositor->destroy)
00042 compositor->destroy (compositor);
00043 #endif
00044 }
00045
00046 void
00047 meta_compositor_add_window (MetaCompositor *compositor,
00048 MetaWindow *window,
00049 Window xwindow,
00050 XWindowAttributes *attrs)
00051 {
00052 #ifdef HAVE_COMPOSITE_EXTENSIONS
00053 if (compositor && compositor->add_window)
00054 compositor->add_window (compositor, window, xwindow, attrs);
00055 #endif
00056 }
00057
00058 void
00059 meta_compositor_remove_window (MetaCompositor *compositor,
00060 Window xwindow)
00061 {
00062 #ifdef HAVE_COMPOSITE_EXTENSIONS
00063 if (compositor && compositor->remove_window)
00064 compositor->remove_window (compositor, xwindow);
00065 #endif
00066 }
00067
00068 void
00069 meta_compositor_manage_screen (MetaCompositor *compositor,
00070 MetaScreen *screen)
00071 {
00072 #ifdef HAVE_COMPOSITE_EXTENSIONS
00073 if (compositor && compositor->manage_screen)
00074 compositor->manage_screen (compositor, screen);
00075 #endif
00076 }
00077
00078 void
00079 meta_compositor_unmanage_screen (MetaCompositor *compositor,
00080 MetaScreen *screen)
00081 {
00082 #ifdef HAVE_COMPOSITE_EXTENSIONS
00083 if (compositor && compositor->unmanage_screen)
00084 compositor->unmanage_screen (compositor, screen);
00085 #endif
00086 }
00087
00088 void
00089 meta_compositor_set_updates (MetaCompositor *compositor,
00090 MetaWindow *window,
00091 gboolean updates)
00092 {
00093 #ifdef HAVE_COMPOSITE_EXTENSIONS
00094 if (compositor && compositor->set_updates)
00095 compositor->set_updates (compositor, window, updates);
00096 #endif
00097 }
00098
00099 void
00100 meta_compositor_process_event (MetaCompositor *compositor,
00101 XEvent *event,
00102 MetaWindow *window)
00103 {
00104 #ifdef HAVE_COMPOSITE_EXTENSIONS
00105 if (compositor && compositor->process_event)
00106 compositor->process_event (compositor, event, window);
00107 #endif
00108 }
00109
00110 Pixmap
00111 meta_compositor_get_window_pixmap (MetaCompositor *compositor,
00112 MetaWindow *window)
00113 {
00114 #ifdef HAVE_COMPOSITE_EXTENSIONS
00115 if (compositor && compositor->get_window_pixmap)
00116 return compositor->get_window_pixmap (compositor, window);
00117 else
00118 return None;
00119 #else
00120 return None;
00121 #endif
00122 }
00123
00124 void
00125 meta_compositor_set_active_window (MetaCompositor *compositor,
00126 MetaScreen *screen,
00127 MetaWindow *window)
00128 {
00129 #ifdef HAVE_COMPOSITE_EXTENSIONS
00130 if (compositor && compositor->set_active_window)
00131 compositor->set_active_window (compositor, screen, window);
00132 #endif
00133 }
00134
00135
00136 void meta_compositor_begin_move (MetaCompositor *compositor,
00137 MetaWindow *window,
00138 MetaRectangle *initial,
00139 int grab_x,
00140 int grab_y)
00141 {
00142 }
00143
00144 void meta_compositor_update_move (MetaCompositor *compositor,
00145 MetaWindow *window,
00146 int x,
00147 int y)
00148 {
00149 }
00150
00151 void meta_compositor_end_move (MetaCompositor *compositor,
00152 MetaWindow *window)
00153 {
00154 }
00155
00156 void meta_compositor_free_window (MetaCompositor *compositor,
00157 MetaWindow *window)
00158 {
00159 }