2009-06-25 18:56:15 -04:00
|
|
|
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
|
|
|
|
|
|
|
|
#ifndef META_COMPOSITOR_PRIVATE_H
|
|
|
|
#define META_COMPOSITOR_PRIVATE_H
|
|
|
|
|
2009-06-26 15:33:20 -04:00
|
|
|
#include <X11/extensions/Xfixes.h>
|
|
|
|
|
2011-03-05 19:29:12 -05:00
|
|
|
#include <meta/compositor.h>
|
|
|
|
#include <meta/display.h>
|
2010-10-18 13:27:14 -04:00
|
|
|
#include "meta-plugin-manager.h"
|
2011-08-27 05:43:09 -04:00
|
|
|
#include "meta-window-actor-private.h"
|
2009-06-25 18:56:15 -04:00
|
|
|
#include <clutter/clutter.h>
|
|
|
|
|
2009-06-26 15:33:20 -04:00
|
|
|
typedef struct _MetaCompScreen MetaCompScreen;
|
|
|
|
|
2009-06-25 18:56:15 -04:00
|
|
|
struct _MetaCompositor
|
|
|
|
{
|
|
|
|
MetaDisplay *display;
|
|
|
|
|
|
|
|
Atom atom_x_root_pixmap;
|
|
|
|
Atom atom_net_wm_window_opacity;
|
2009-06-28 12:26:23 -04:00
|
|
|
guint repaint_func_id;
|
2009-06-25 18:56:15 -04:00
|
|
|
|
|
|
|
ClutterActor *shadow_src;
|
|
|
|
|
2010-10-18 13:27:14 -04:00
|
|
|
MetaPlugin *modal_plugin;
|
2009-08-12 00:12:52 -04:00
|
|
|
|
2012-11-12 14:09:38 -05:00
|
|
|
gint64 server_time_query_time;
|
|
|
|
gint64 server_time_offset;
|
|
|
|
|
|
|
|
guint server_time_is_monotonic_time : 1;
|
2011-11-09 15:40:38 -05:00
|
|
|
guint show_redraw : 1;
|
|
|
|
guint debug : 1;
|
|
|
|
guint no_mipmaps : 1;
|
2009-06-25 18:56:15 -04:00
|
|
|
};
|
|
|
|
|
2009-06-26 15:33:20 -04:00
|
|
|
struct _MetaCompScreen
|
|
|
|
{
|
|
|
|
MetaScreen *screen;
|
|
|
|
|
|
|
|
ClutterActor *stage, *window_group, *overlay_group;
|
2010-11-14 12:37:17 -05:00
|
|
|
ClutterActor *background_actor;
|
2009-06-26 15:33:20 -04:00
|
|
|
GList *windows;
|
|
|
|
GHashTable *windows_by_xid;
|
|
|
|
Window output;
|
|
|
|
|
2012-11-12 14:11:08 -05:00
|
|
|
CoglOnscreen *onscreen;
|
|
|
|
CoglFrameClosure *frame_closure;
|
|
|
|
|
2011-08-27 05:43:09 -04:00
|
|
|
/* Used for unredirecting fullscreen windows */
|
|
|
|
guint disable_unredirect_count;
|
|
|
|
MetaWindowActor *unredirected_window;
|
|
|
|
|
2009-06-26 15:33:20 -04:00
|
|
|
/* Before we create the output window */
|
|
|
|
XserverRegion pending_input_region;
|
|
|
|
|
|
|
|
gint switch_workspace_in_progress;
|
|
|
|
|
2010-10-18 13:27:14 -04:00
|
|
|
MetaPluginManager *plugin_mgr;
|
2009-06-26 15:33:20 -04:00
|
|
|
};
|
|
|
|
|
2012-11-12 14:11:08 -05:00
|
|
|
/* Wait 2ms after vblank before starting to draw next frame */
|
|
|
|
#define META_SYNC_DELAY 2
|
|
|
|
|
2010-10-18 13:27:14 -04:00
|
|
|
void meta_switch_workspace_completed (MetaScreen *screen);
|
|
|
|
|
|
|
|
gboolean meta_begin_modal_for_plugin (MetaScreen *screen,
|
|
|
|
MetaPlugin *plugin,
|
|
|
|
Window grab_window,
|
|
|
|
Cursor cursor,
|
|
|
|
MetaModalOptions options,
|
|
|
|
guint32 timestamp);
|
|
|
|
void meta_end_modal_for_plugin (MetaScreen *screen,
|
|
|
|
MetaPlugin *plugin,
|
|
|
|
guint32 timestamp);
|
|
|
|
|
2012-11-12 14:09:38 -05:00
|
|
|
gint64 meta_compositor_monotonic_time_to_server_time (MetaDisplay *display,
|
|
|
|
gint64 monotonic_time);
|
|
|
|
|
2010-10-18 13:27:14 -04:00
|
|
|
void meta_check_end_modal (MetaScreen *screen);
|
2009-08-12 00:12:52 -04:00
|
|
|
|
2009-06-25 18:56:15 -04:00
|
|
|
#endif /* META_COMPOSITOR_PRIVATE_H */
|