diff --git a/clutter/Makefile.am b/clutter/Makefile.am index 2fa4bef40..0ba3e83c9 100644 --- a/clutter/Makefile.am +++ b/clutter/Makefile.am @@ -221,17 +221,23 @@ source_c = \ # private headers; these should not be distributed or introspected source_h_priv = \ - $(srcdir)/clutter-actor-meta-private.h \ - $(srcdir)/clutter-bezier.h \ - $(srcdir)/clutter-debug.h \ - $(srcdir)/clutter-id-pool.h \ - $(srcdir)/clutter-keysyms-table.h \ - $(srcdir)/clutter-master-clock.h \ - $(srcdir)/clutter-model-private.h \ - $(srcdir)/clutter-private.h \ - $(srcdir)/clutter-profile.h \ - $(srcdir)/clutter-script-private.h \ - $(srcdir)/clutter-timeout-interval.h \ + $(srcdir)/clutter-actor-meta-private.h \ + $(srcdir)/clutter-actor-private.h \ + $(srcdir)/clutter-backend-private.h \ + $(srcdir)/clutter-bezier.h \ + $(srcdir)/clutter-debug.h \ + $(srcdir)/clutter-device-manager-private.h \ + $(srcdir)/clutter-id-pool.h \ + $(srcdir)/clutter-keysyms-table.h \ + $(srcdir)/clutter-master-clock.h \ + $(srcdir)/clutter-model-private.h \ + $(srcdir)/clutter-paint-volume-private.h \ + $(srcdir)/clutter-private.h \ + $(srcdir)/clutter-profile.h \ + $(srcdir)/clutter-script-private.h \ + $(srcdir)/clutter-stage-manager-private.h \ + $(srcdir)/clutter-stage-private.h \ + $(srcdir)/clutter-timeout-interval.h \ $(NULL) # private source code; these should not be introspected diff --git a/clutter/clutter-actor-box.c b/clutter/clutter-actor-box.c index 4f9b07193..9c8c79768 100644 --- a/clutter/clutter-actor-box.c +++ b/clutter/clutter-actor-box.c @@ -2,6 +2,8 @@ #include "config.h" #endif +#include + #include "clutter-types.h" #include "clutter-interval.h" #include "clutter-private.h" diff --git a/clutter/clutter-actor-meta-private.h b/clutter/clutter-actor-meta-private.h index e880d025f..868ae8d72 100644 --- a/clutter/clutter-actor-meta-private.h +++ b/clutter/clutter-actor-meta-private.h @@ -1,3 +1,27 @@ +/* + * Clutter. + * + * An OpenGL based 'interactive canvas' library. + * + * Copyright (C) 2010 Intel Corporation. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see . + * + * Author: + * Emmanuele Bassi + */ + #ifndef __CLUTTER_ACTOR_META_PRIVATE_H__ #define __CLUTTER_ACTOR_META_PRIVATE_H__ diff --git a/clutter/clutter-actor-meta.c b/clutter/clutter-actor-meta.c index 1dbc535d3..9a8334895 100644 --- a/clutter/clutter-actor-meta.c +++ b/clutter/clutter-actor-meta.c @@ -1,3 +1,27 @@ +/* + * Clutter. + * + * An OpenGL based 'interactive canvas' library. + * + * Copyright (C) 2010 Intel Corporation. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see . + * + * Author: + * Emmanuele Bassi + */ + /** * SECTION:clutter-actor-meta * @Title: ClutterActorMeta diff --git a/clutter/clutter-actor-meta.h b/clutter/clutter-actor-meta.h index 4c8ed5e01..ef6b62f32 100644 --- a/clutter/clutter-actor-meta.h +++ b/clutter/clutter-actor-meta.h @@ -1,3 +1,27 @@ +/* + * Clutter. + * + * An OpenGL based 'interactive canvas' library. + * + * Copyright (C) 2010 Intel Corporation. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see . + * + * Author: + * Emmanuele Bassi + */ + #if !defined(__CLUTTER_H_INSIDE__) && !defined(CLUTTER_COMPILATION) #error "Only can be included directly." #endif diff --git a/clutter/clutter-actor-private.h b/clutter/clutter-actor-private.h new file mode 100644 index 000000000..47a0e3600 --- /dev/null +++ b/clutter/clutter-actor-private.h @@ -0,0 +1,118 @@ +/* + * Clutter. + * + * An OpenGL based 'interactive canvas' library. + * + * Copyright (C) 2010 Intel Corporation. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see . + */ + +#ifndef __CLUTTER_ACTOR_PRIVATE_H__ +#define __CLUTTER_ACTOR_PRIVATE_H__ + +#include + +G_BEGIN_DECLS + +/* + * ClutterRedrawFlags: + * @CLUTTER_REDRAW_CLIPPED_TO_ALLOCATION: Tells clutter the maximum + * extents of what needs to be redrawn lies within the actors + * current allocation. (Only use this for 2D actors though because + * any actor with depth may be projected outside of its allocation) + * + * Flags passed to the clutter_actor_queue_redraw_with_clip () + * function + * + * Since: 1.6 + */ +typedef enum +{ + CLUTTER_REDRAW_CLIPPED_TO_ALLOCATION = 1 << 0 +} ClutterRedrawFlags; + +/* ClutterActorTraverseFlags: + * + * Controls some options for how clutter_actor_traverse() iterates + * through the graph. + */ +typedef enum _ClutterActorTraverseFlags +{ + CLUTTER_ACTOR_TRAVERSE_PLACE_HOLDER = 1L<<0 +} ClutterActorTraverseFlags; + +/* ClutterForeachCallback: + * @actor: The actor being iterated + * @user_data: The private data specified when starting the iteration + * + * A generic callback for iterating over actor, such as with + * _clutter_actor_foreach_child. The difference when compared to + * #ClutterCallback is that it returns a boolean so it is possible to break + * out of an iteration early. + * + * Return value: %TRUE to continue iterating or %FALSE to break iteration + * early. + */ +typedef gboolean (*ClutterForeachCallback) (ClutterActor *actor, + void *user_data); + +gint _clutter_actor_get_n_children (ClutterActor *self); +gboolean _clutter_actor_foreach_child (ClutterActor *self, + ClutterForeachCallback callback, + void *user_data); +gboolean _clutter_actor_traverse (ClutterActor *actor, + ClutterActorTraverseFlags flags, + ClutterForeachCallback callback, + void *user_data); +ClutterActor *_clutter_actor_get_stage_internal (ClutterActor *actor); + +void _clutter_actor_apply_modelview_transform (ClutterActor *self, + CoglMatrix *matrix); +void _clutter_actor_apply_modelview_transform_recursive (ClutterActor *self, + ClutterActor *ancestor, + CoglMatrix *matrix); + +void _clutter_actor_rerealize (ClutterActor *self, + ClutterCallback callback, + void *data); + +void _clutter_actor_set_opacity_parent (ClutterActor *self, + ClutterActor *parent); + +void _clutter_actor_set_enable_model_view_transform (ClutterActor *self, + gboolean enable); + +void _clutter_actor_set_enable_paint_unmapped (ClutterActor *self, + gboolean enable); + +void _clutter_actor_set_has_pointer (ClutterActor *self, + gboolean has_pointer); + +void _clutter_actor_queue_redraw_with_clip (ClutterActor *self, + ClutterRedrawFlags flags, + ClutterPaintVolume *clip_volume); +const ClutterPaintVolume *_clutter_actor_get_queue_redraw_clip (ClutterActor *self); +void _clutter_actor_set_queue_redraw_clip (ClutterActor *self, + const ClutterPaintVolume *clip_volume); +void _clutter_actor_finish_queue_redraw (ClutterActor *self, + ClutterPaintVolume *clip); + +gboolean _clutter_actor_set_default_paint_volume (ClutterActor *self, + GType check_gtype, + ClutterPaintVolume *volume); + +G_END_DECLS + +#endif /* __CLUTTER_ACTOR_PRIVATE_H__ */ diff --git a/clutter/clutter-actor.c b/clutter/clutter-actor.c index 0770574b3..cf1f3bb94 100644 --- a/clutter/clutter-actor.c +++ b/clutter/clutter-actor.c @@ -286,7 +286,7 @@ #include "cogl/cogl.h" -#include "clutter-actor.h" +#include "clutter-actor-private.h" #include "clutter-action.h" #include "clutter-actor-meta-private.h" @@ -299,11 +299,12 @@ #include "clutter-enum-types.h" #include "clutter-main.h" #include "clutter-marshal.h" +#include "clutter-paint-volume-private.h" #include "clutter-private.h" #include "clutter-profile.h" #include "clutter-scriptable.h" #include "clutter-script-private.h" -#include "clutter-stage.h" +#include "clutter-stage-private.h" #include "clutter-units.h" typedef struct _ShaderData ShaderData; diff --git a/clutter/clutter-animator.c b/clutter/clutter-animator.c index 4be585b04..b2c61270d 100644 --- a/clutter/clutter-animator.c +++ b/clutter/clutter-animator.c @@ -125,6 +125,8 @@ #endif #include +#include + #include #include "clutter-animator.h" diff --git a/clutter/clutter-backend-private.h b/clutter/clutter-backend-private.h new file mode 100644 index 000000000..9a692584a --- /dev/null +++ b/clutter/clutter-backend-private.h @@ -0,0 +1,120 @@ +/* + * Clutter. + * + * An OpenGL based 'interactive canvas' library. + * + * Copyright (C) 2010 Intel Corporation. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see . + */ + +#ifndef __CLUTTER_BACKEND_PRIVATE_H__ +#define __CLUTTER_BACKEND_PRIVATE_H__ + +#include + +#define CLUTTER_BACKEND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CLUTTER_TYPE_BACKEND, ClutterBackendClass)) +#define CLUTTER_IS_BACKEND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CLUTTER_TYPE_BACKEND)) +#define CLUTTER_BACKEND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CLUTTER_TYPE_BACKEND, ClutterBackendClass)) + +G_BEGIN_DECLS + +typedef struct _ClutterBackendPrivate ClutterBackendPrivate; +typedef struct _ClutterBackendClass ClutterBackendClass; + +struct _ClutterBackend +{ + /*< private >*/ + GObject parent_instance; + ClutterBackendPrivate *priv; +}; + +struct _ClutterBackendClass +{ + /*< private >*/ + GObjectClass parent_class; + + /* vfuncs */ + gboolean (* pre_parse) (ClutterBackend *backend, + GError **error); + gboolean (* post_parse) (ClutterBackend *backend, + GError **error); + ClutterStageWindow * (* create_stage) (ClutterBackend *backend, + ClutterStage *wrapper, + GError **error); + void (* init_events) (ClutterBackend *backend); + void (* init_features) (ClutterBackend *backend); + void (* add_options) (ClutterBackend *backend, + GOptionGroup *group); + ClutterFeatureFlags (* get_features) (ClutterBackend *backend); + void (* redraw) (ClutterBackend *backend, + ClutterStage *stage); + gboolean (* create_context) (ClutterBackend *backend, + GError **error); + void (* ensure_context) (ClutterBackend *backend, + ClutterStage *stage); + ClutterDeviceManager *(* get_device_manager) (ClutterBackend *backend); + + void (* copy_event_data) (ClutterBackend *backend, + const ClutterEvent *src, + ClutterEvent *dest); + void (* free_event_data) (ClutterBackend *backend, + ClutterEvent *event); + + /* signals */ + void (* resolution_changed) (ClutterBackend *backend); + void (* font_changed) (ClutterBackend *backend); + void (* settings_changed) (ClutterBackend *backend); +}; + +/* vfuncs implemented by backend */ +GType _clutter_backend_impl_get_type (void); + +void _clutter_backend_redraw (ClutterBackend *backend, + ClutterStage *stage); +ClutterStageWindow *_clutter_backend_create_stage (ClutterBackend *backend, + ClutterStage *wrapper, + GError **error); +void _clutter_backend_ensure_context (ClutterBackend *backend, + ClutterStage *stage); +void _clutter_backend_ensure_context_internal + (ClutterBackend *backend, + ClutterStage *stage); +gboolean _clutter_backend_create_context (ClutterBackend *backend, + GError **error); + +void _clutter_backend_add_options (ClutterBackend *backend, + GOptionGroup *group); +gboolean _clutter_backend_pre_parse (ClutterBackend *backend, + GError **error); +gboolean _clutter_backend_post_parse (ClutterBackend *backend, + GError **error); +void _clutter_backend_init_events (ClutterBackend *backend); + +void _clutter_backend_copy_event_data (ClutterBackend *backend, + const ClutterEvent *src, + ClutterEvent *dest); +void _clutter_backend_free_event_data (ClutterBackend *backend, + ClutterEvent *event); + +ClutterFeatureFlags _clutter_backend_get_features (ClutterBackend *backend); + +gfloat _clutter_backend_get_units_per_em (ClutterBackend *backend, + PangoFontDescription *font_desc); + +gint32 _clutter_backend_get_units_serial (ClutterBackend *backend); + +G_END_DECLS + +#endif /* __CLUTTER_BACKEND_PRIVATE_H__ */ diff --git a/clutter/clutter-backend.c b/clutter/clutter-backend.c index 0e5a0d957..ff4c9738f 100644 --- a/clutter/clutter-backend.c +++ b/clutter/clutter-backend.c @@ -42,12 +42,14 @@ #include "config.h" #endif -#include "clutter-backend.h" +#include "clutter-backend-private.h" #include "clutter-debug.h" #include "clutter-fixed.h" #include "clutter-marshal.h" #include "clutter-private.h" #include "clutter-profile.h" +#include "clutter-stage-manager-private.h" +#include "clutter-stage-private.h" #include diff --git a/clutter/clutter-backend.h b/clutter/clutter-backend.h index 1596d44c6..9b74f0967 100644 --- a/clutter/clutter-backend.h +++ b/clutter/clutter-backend.h @@ -44,58 +44,8 @@ G_BEGIN_DECLS #define CLUTTER_TYPE_BACKEND (clutter_backend_get_type ()) #define CLUTTER_BACKEND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CLUTTER_TYPE_BACKEND, ClutterBackend)) #define CLUTTER_IS_BACKEND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CLUTTER_TYPE_BACKEND)) -#define CLUTTER_BACKEND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CLUTTER_TYPE_BACKEND, ClutterBackendClass)) -#define CLUTTER_IS_BACKEND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CLUTTER_TYPE_BACKEND)) -#define CLUTTER_BACKEND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CLUTTER_TYPE_BACKEND, ClutterBackendClass)) typedef struct _ClutterBackend ClutterBackend; -typedef struct _ClutterBackendPrivate ClutterBackendPrivate; -typedef struct _ClutterBackendClass ClutterBackendClass; - -struct _ClutterBackend -{ - /*< private >*/ - GObject parent_instance; - ClutterBackendPrivate *priv; -}; - -struct _ClutterBackendClass -{ - /*< private >*/ - GObjectClass parent_class; - - /* vfuncs */ - gboolean (* pre_parse) (ClutterBackend *backend, - GError **error); - gboolean (* post_parse) (ClutterBackend *backend, - GError **error); - ClutterStageWindow * (* create_stage) (ClutterBackend *backend, - ClutterStage *wrapper, - GError **error); - void (* init_events) (ClutterBackend *backend); - void (* init_features) (ClutterBackend *backend); - void (* add_options) (ClutterBackend *backend, - GOptionGroup *group); - ClutterFeatureFlags (* get_features) (ClutterBackend *backend); - void (* redraw) (ClutterBackend *backend, - ClutterStage *stage); - gboolean (* create_context) (ClutterBackend *backend, - GError **error); - void (* ensure_context) (ClutterBackend *backend, - ClutterStage *stage); - ClutterDeviceManager *(* get_device_manager) (ClutterBackend *backend); - - void (* copy_event_data) (ClutterBackend *backend, - const ClutterEvent *src, - ClutterEvent *dest); - void (* free_event_data) (ClutterBackend *backend, - ClutterEvent *event); - - /* signals */ - void (* resolution_changed) (ClutterBackend *backend); - void (* font_changed) (ClutterBackend *backend); - void (* settings_changed) (ClutterBackend *backend); -}; GType clutter_backend_get_type (void) G_GNUC_CONST; diff --git a/clutter/clutter-behaviour-ellipse.c b/clutter/clutter-behaviour-ellipse.c index 9c46a50e6..b7540e213 100644 --- a/clutter/clutter-behaviour-ellipse.c +++ b/clutter/clutter-behaviour-ellipse.c @@ -42,6 +42,9 @@ #include "config.h" #endif +#include +#include + #include "clutter-fixed.h" #include "clutter-marshal.h" #include "clutter-behaviour-ellipse.h" @@ -49,9 +52,6 @@ #include "clutter-enum-types.h" #include "clutter-private.h" -#include -#include - G_DEFINE_TYPE (ClutterBehaviourEllipse, clutter_behaviour_ellipse, CLUTTER_TYPE_BEHAVIOUR); diff --git a/clutter/clutter-bind-constraint.c b/clutter/clutter-bind-constraint.c index ceb537550..a0c817020 100644 --- a/clutter/clutter-bind-constraint.c +++ b/clutter/clutter-bind-constraint.c @@ -84,6 +84,8 @@ #include "config.h" #endif +#include + #include "clutter-bind-constraint.h" #include "clutter-constraint.h" diff --git a/clutter/clutter-cairo-texture.c b/clutter/clutter-cairo-texture.c index abd73c41a..e9586a31a 100644 --- a/clutter/clutter-cairo-texture.c +++ b/clutter/clutter-cairo-texture.c @@ -82,6 +82,7 @@ #include "clutter-cairo-texture.h" +#include "clutter-actor-private.h" #include "clutter-debug.h" #include "clutter-marshal.h" #include "clutter-private.h" diff --git a/clutter/clutter-clone.c b/clutter/clutter-clone.c index e604e21ae..3675e2885 100644 --- a/clutter/clutter-clone.c +++ b/clutter/clutter-clone.c @@ -41,10 +41,11 @@ #include "config.h" #endif -#include "clutter-color.h" +#include "clutter-actor-private.h" #include "clutter-clone.h" #include "clutter-debug.h" #include "clutter-main.h" +#include "clutter-paint-volume-private.h" #include "clutter-private.h" #include "cogl/cogl.h" diff --git a/clutter/clutter-desaturate-effect.c b/clutter/clutter-desaturate-effect.c index 0d67eaaef..e6a06b1f9 100644 --- a/clutter/clutter-desaturate-effect.c +++ b/clutter/clutter-desaturate-effect.c @@ -43,6 +43,8 @@ #include "config.h" #endif +#include + #include "clutter-desaturate-effect.h" #include "cogl/cogl.h" diff --git a/clutter/clutter-device-manager-private.h b/clutter/clutter-device-manager-private.h new file mode 100644 index 000000000..c4aeff31d --- /dev/null +++ b/clutter/clutter-device-manager-private.h @@ -0,0 +1,92 @@ +/* + * Clutter. + * + * An OpenGL based 'interactive canvas' library. + * + * Copyright (C) 2010 Intel Corporation. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see . + * + * Author: + * Emmanuele Bassi + */ + +#ifndef __CLUTTER_DEVICE_MANAGER_PRIVATE_H__ +#define __CLUTTER_DEVICE_MANAGER_PRIVATE_H__ + +#include + +G_BEGIN_DECLS + +struct _ClutterInputDevice +{ + GObject parent_instance; + + gint id; + + ClutterInputDeviceType device_type; + + gchar *device_name; + + /* the actor underneath the pointer */ + ClutterActor *cursor_actor; + + /* the actor that has a grab in place for the device */ + ClutterActor *pointer_grab_actor; + + /* the current click count */ + gint click_count; + + /* the stage the device is on */ + ClutterStage *stage; + + /* the current state */ + gint current_x; + gint current_y; + guint32 current_time; + gint current_button_number; + ClutterModifierType current_state; + + /* the previous state, used for click count generation */ + gint previous_x; + gint previous_y; + guint32 previous_time; + gint previous_button_number; + ClutterModifierType previous_state; +}; + +/* device manager */ +void _clutter_device_manager_add_device (ClutterDeviceManager *device_manager, + ClutterInputDevice *device); +void _clutter_device_manager_remove_device (ClutterDeviceManager *device_manager, + ClutterInputDevice *device); +void _clutter_device_manager_update_devices (ClutterDeviceManager *device_manager); + +/* input device */ +void _clutter_input_device_set_coords (ClutterInputDevice *device, + gint x, + gint y); +void _clutter_input_device_set_state (ClutterInputDevice *device, + ClutterModifierType state); +void _clutter_input_device_set_time (ClutterInputDevice *device, + guint32 time_); +void _clutter_input_device_set_stage (ClutterInputDevice *device, + ClutterStage *stage); +void _clutter_input_device_set_actor (ClutterInputDevice *device, + ClutterActor *actor); +ClutterActor *_clutter_input_device_update (ClutterInputDevice *device); + +G_END_DECLS + +#endif /* __CLUTTER_DEVICE_MANAGER_PRIVATE_H__ */ diff --git a/clutter/clutter-device-manager.c b/clutter/clutter-device-manager.c index 238e7d74d..ccb911d87 100644 --- a/clutter/clutter-device-manager.c +++ b/clutter/clutter-device-manager.c @@ -40,8 +40,9 @@ #include "config.h" #endif +#include "clutter-backend-private.h" #include "clutter-debug.h" -#include "clutter-device-manager.h" +#include "clutter-device-manager-private.h" #include "clutter-enum-types.h" #include "clutter-marshal.h" #include "clutter-private.h" diff --git a/clutter/clutter-event.c b/clutter/clutter-event.c index b62293281..12e5825ff 100644 --- a/clutter/clutter-event.c +++ b/clutter/clutter-event.c @@ -27,11 +27,12 @@ #include "config.h" #endif +#include "clutter-backend-private.h" +#include "clutter-debug.h" +#include "clutter-event.h" #include "clutter-keysyms.h" #include "clutter-keysyms-table.h" -#include "clutter-event.h" #include "clutter-private.h" -#include "clutter-debug.h" /** * SECTION:clutter-event @@ -520,7 +521,7 @@ clutter_event_get_device_id (const ClutterEvent *event) } if (device != NULL) - return device->id; + return clutter_input_device_get_device_id (device); else return -1; } @@ -574,7 +575,7 @@ clutter_event_get_device_type (const ClutterEvent *event) } if (device != NULL) - return device->device_type; + return clutter_input_device_get_device_type (device); else return CLUTTER_POINTER_DEVICE; } diff --git a/clutter/clutter-feature.c b/clutter/clutter-feature.c index 282783e2e..b70f7ca92 100644 --- a/clutter/clutter-feature.c +++ b/clutter/clutter-feature.c @@ -45,6 +45,7 @@ #include #include +#include "clutter-backend-private.h" #include "clutter-feature.h" #include "clutter-main.h" #include "clutter-private.h" diff --git a/clutter/clutter-input-device.c b/clutter/clutter-input-device.c index 7d9a2858e..b2bfe46ad 100644 --- a/clutter/clutter-input-device.c +++ b/clutter/clutter-input-device.c @@ -35,10 +35,13 @@ #include "config.h" #endif +#include "clutter-actor-private.h" #include "clutter-debug.h" +#include "clutter-device-manager-private.h" #include "clutter-enum-types.h" #include "clutter-input-device.h" #include "clutter-private.h" +#include "clutter-stage-private.h" enum { diff --git a/clutter/clutter-main.c b/clutter/clutter-main.c index 8945aa54b..e1dbdf13d 100644 --- a/clutter/clutter-main.c +++ b/clutter/clutter-main.c @@ -98,18 +98,19 @@ #include #endif +#include "clutter-actor.h" +#include "clutter-backend-private.h" +#include "clutter-debug.h" +#include "clutter-device-manager-private.h" #include "clutter-event.h" -#include "clutter-backend.h" +#include "clutter-feature.h" +#include "clutter-frame-source.h" #include "clutter-main.h" #include "clutter-master-clock.h" -#include "clutter-feature.h" -#include "clutter-actor.h" -#include "clutter-stage.h" #include "clutter-private.h" -#include "clutter-debug.h" -#include "clutter-version.h" /* For flavour define */ -#include "clutter-frame-source.h" #include "clutter-profile.h" +#include "clutter-stage-private.h" +#include "clutter-version.h" /* For flavour define */ #include "cogl/cogl.h" #include "pango/cogl-pango.h" diff --git a/clutter/clutter-master-clock.c b/clutter/clutter-master-clock.c index f4ffb2b43..ba415611c 100644 --- a/clutter/clutter-master-clock.c +++ b/clutter/clutter-master-clock.c @@ -39,6 +39,8 @@ #include "clutter-debug.h" #include "clutter-private.h" #include "clutter-profile.h" +#include "clutter-stage-manager-private.h" +#include "clutter-stage-private.h" #define CLUTTER_MASTER_CLOCK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CLUTTER_TYPE_MASTER_CLOCK, ClutterMasterClockClass)) #define CLUTTER_IS_MASTER_CLOCK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CLUTTER_TYPE_MASTER_CLOCK)) diff --git a/clutter/clutter-offscreen-effect.c b/clutter/clutter-offscreen-effect.c index 045698f3e..21b30350f 100644 --- a/clutter/clutter-offscreen-effect.c +++ b/clutter/clutter-offscreen-effect.c @@ -69,8 +69,10 @@ #include "cogl/cogl.h" +#include "clutter-actor-private.h" #include "clutter-debug.h" #include "clutter-private.h" +#include "clutter-stage-private.h" struct _ClutterOffscreenEffectPrivate { diff --git a/clutter/clutter-page-turn-effect.c b/clutter/clutter-page-turn-effect.c index d95e6140c..8afcf85a8 100644 --- a/clutter/clutter-page-turn-effect.c +++ b/clutter/clutter-page-turn-effect.c @@ -39,6 +39,8 @@ #include "config.h" #endif +#include + #include "clutter-page-turn-effect.h" #include "clutter-debug.h" diff --git a/clutter/clutter-paint-volume-private.h b/clutter/clutter-paint-volume-private.h new file mode 100644 index 000000000..0b986b89e --- /dev/null +++ b/clutter/clutter-paint-volume-private.h @@ -0,0 +1,125 @@ +/* + * Clutter. + * + * An OpenGL based 'interactive canvas' library. + * + * Copyright (C) 2010 Intel Corporation. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see . + */ + +#ifndef __CLUTTER_PAINT_VOLUME_PRIVATE_H__ +#define __CLUTTER_PAINT_VOLUME_PRIVATE_H__ + +#include + +G_BEGIN_DECLS + +struct _ClutterPaintVolume +{ + ClutterActor *actor; + + /* cuboid for the volume: + * + * 4━━━━━━━┓5 + * ┏━━━━━━━━┓╱┃ + * ┃0 ┊7 1┃ ┃ + * ┃ ┄┄┄┄┄┃┄┃6 + * ┃3 2┃╱ + * ┗━━━━━━━━┛ + * + * 0: top, left (origin) : always valid + * 1: top, right : always valid + * 2: bottom, right : updated lazily + * 3: bottom, left : always valid + * + * 4: top, left, back : always valid + * 5: top, right, back : updated lazily + * 6: bottom, right, back : updated lazily + * 7: bottom, left, back : updated lazily + * + * Elements 0, 1, 3 and 4 are filled in by the PaintVolume setters + * + * Note: the reason for this ordering is that we can simply ignore + * elements 4, 5, 6 and 7 most of the time for 2D actors when + * calculating the projected paint box. + */ + ClutterVertex vertices[8]; + + /* As an optimization for internally managed PaintVolumes we allow + * initializing ClutterPaintVolume variables allocated on the stack + * so we can avoid hammering the slice allocator. */ + guint is_static:1; + + /* A newly initialized PaintVolume is considered empty as it is + * degenerate on all three axis. + * + * We consider this carefully when we union an empty volume with + * another so that the union simply results in a copy of the other + * volume instead of also bounding the origin of the empty volume. + * + * For example this is a convenient property when calculating the + * volume of a container as the union of the volume of its children + * where the initial volume passed to the containers + * ->get_paint_volume method will be empty. */ + guint is_empty:1; + + /* TRUE when we've updated the values we calculate lazily */ + guint is_complete:1; + + /* TRUE if vertices 4-7 can be ignored. (Only valid if complete is + * TRUE) */ + guint is_2d:1; + + /* Set to TRUE initialy but cleared if the paint volume is + * transfomed by a matrix. */ + guint is_axis_aligned:1; + + + /* Note: There is a precedence to the above bitfields that should be + * considered whenever we implement code that manipulates + * PaintVolumes... + * + * Firstly if ->is_empty == TRUE then the values for ->is_complete + * and ->is_2d are undefined, so you should typically check + * ->is_empty as the first priority. + * + * XXX: document other invariables... + */ +}; + +void _clutter_paint_volume_init_static (ClutterActor *actor, + ClutterPaintVolume *pv); +ClutterPaintVolume *_clutter_paint_volume_new (ClutterActor *actor); +void _clutter_paint_volume_copy_static (const ClutterPaintVolume *src_pv, + ClutterPaintVolume *dst_pv); +void _clutter_paint_volume_set_from_volume (ClutterPaintVolume *pv, + const ClutterPaintVolume *src); + +void _clutter_paint_volume_complete (ClutterPaintVolume *pv); +void _clutter_paint_volume_transform (ClutterPaintVolume *pv, + const CoglMatrix *matrix); +void _clutter_paint_volume_project (ClutterPaintVolume *pv, + const CoglMatrix *modelview, + const CoglMatrix *projection, + const int *viewport); +void _clutter_paint_volume_get_bounding_box (ClutterPaintVolume *pv, + ClutterActorBox *box); +void _clutter_paint_volume_axis_align (ClutterPaintVolume *pv); +void _clutter_paint_volume_set_reference_actor (ClutterPaintVolume *pv, + ClutterActor *actor); + +G_END_DECLS + +#endif /* __CLUTTER_PAINT_VOLUME_PRIVATE_H__ */ diff --git a/clutter/clutter-paint-volume.c b/clutter/clutter-paint-volume.c index 07deaba75..ad0dd7a1b 100644 --- a/clutter/clutter-paint-volume.c +++ b/clutter/clutter-paint-volume.c @@ -28,8 +28,12 @@ #include "config.h" #endif +#include + #include +#include "clutter-actor-private.h" +#include "clutter-paint-volume-private.h" #include "clutter-private.h" G_DEFINE_BOXED_TYPE (ClutterPaintVolume, clutter_paint_volume, diff --git a/clutter/clutter-path.c b/clutter/clutter-path.c index 9f8e76835..91b2be2ff 100644 --- a/clutter/clutter-path.c +++ b/clutter/clutter-path.c @@ -78,9 +78,10 @@ #include "config.h" #endif -#include #include #include +#include +#include #include "clutter-path.h" #include "clutter-types.h" diff --git a/clutter/clutter-private.h b/clutter/clutter-private.h index 62e51da7c..d3dfe04c3 100644 --- a/clutter/clutter-private.h +++ b/clutter/clutter-private.h @@ -26,12 +26,6 @@ #ifndef __CLUTTER_PRIVATE_H__ #define __CLUTTER_PRIVATE_H__ -#include -#include -#include - -#include - #include #include @@ -39,7 +33,6 @@ #include "pango/cogl-pango.h" #include "clutter-backend.h" -#include "clutter-device-manager.h" #include "clutter-effect.h" #include "clutter-event.h" #include "clutter-feature.h" @@ -47,10 +40,7 @@ #include "clutter-layout-manager.h" #include "clutter-master-clock.h" #include "clutter-settings.h" -#include "clutter-stage-manager.h" -#include "clutter-stage-window.h" #include "clutter-stage.h" -#include "clutter-timeline.h" G_BEGIN_DECLS @@ -109,67 +99,6 @@ typedef enum { CLUTTER_INTERNAL_CHILD = 1 << 6 } ClutterPrivateFlags; -/* - * ClutterRedrawFlags: - * @CLUTTER_REDRAW_CLIPPED_TO_ALLOCATION: Tells clutter the maximum - * extents of what needs to be redrawn lies within the actors - * current allocation. (Only use this for 2D actors though because - * any actor with depth may be projected outside of its allocation) - * - * Flags passed to the clutter_actor_queue_redraw_with_clip () - * function - * - * Since: 1.6 - */ -typedef enum -{ - CLUTTER_REDRAW_CLIPPED_TO_ALLOCATION = 1 << 0 -} ClutterRedrawFlags; - -struct _ClutterInputDevice -{ - GObject parent_instance; - - gint id; - - ClutterInputDeviceType device_type; - - gchar *device_name; - - /* the actor underneath the pointer */ - ClutterActor *cursor_actor; - - /* the actor that has a grab in place for the device */ - ClutterActor *pointer_grab_actor; - - /* the current click count */ - gint click_count; - - /* the stage the device is on */ - ClutterStage *stage; - - /* the current state */ - gint current_x; - gint current_y; - guint32 current_time; - gint current_button_number; - ClutterModifierType current_state; - - /* the previous state, used for click count generation */ - gint previous_x; - gint previous_y; - guint32 previous_time; - gint previous_button_number; - ClutterModifierType previous_state; -}; - -struct _ClutterStageManager -{ - GObject parent_instance; - - GSList *stages; -}; - struct _ClutterMainContext { ClutterBackend *backend; /* holds a pointer to the windowing @@ -220,106 +149,6 @@ struct _ClutterMainContext ClutterSettings *settings; }; -struct _ClutterPaintVolume -{ - ClutterActor *actor; - - /* cuboid for the volume: - * - * 4━━━━━━━┓5 - * ┏━━━━━━━━┓╱┃ - * ┃0 ┊7 1┃ ┃ - * ┃ ┄┄┄┄┄┃┄┃6 - * ┃3 2┃╱ - * ┗━━━━━━━━┛ - * - * 0: top, left (origin) : always valid - * 1: top, right : always valid - * 2: bottom, right : updated lazily - * 3: bottom, left : always valid - * - * 4: top, left, back : always valid - * 5: top, right, back : updated lazily - * 6: bottom, right, back : updated lazily - * 7: bottom, left, back : updated lazily - * - * Elements 0, 1, 3 and 4 are filled in by the PaintVolume setters - * - * Note: the reason for this ordering is that we can simply ignore - * elements 4, 5, 6 and 7 most of the time for 2D actors when - * calculating the projected paint box. - */ - ClutterVertex vertices[8]; - - /* As an optimization for internally managed PaintVolumes we allow - * initializing ClutterPaintVolume variables allocated on the stack - * so we can avoid hammering the slice allocator. */ - guint is_static:1; - - /* A newly initialized PaintVolume is considered empty as it is - * degenerate on all three axis. - * - * We consider this carefully when we union an empty volume with - * another so that the union simply results in a copy of the other - * volume instead of also bounding the origin of the empty volume. - * - * For example this is a convenient property when calculating the - * volume of a container as the union of the volume of its children - * where the initial volume passed to the containers - * ->get_paint_volume method will be empty. */ - guint is_empty:1; - - /* TRUE when we've updated the values we calculate lazily */ - guint is_complete:1; - - /* TRUE if vertices 4-7 can be ignored. (Only valid if complete is - * TRUE) */ - guint is_2d:1; - - /* Set to TRUE initialy but cleared if the paint volume is - * transfomed by a matrix. */ - guint is_axis_aligned:1; - - - /* Note: There is a precedence to the above bitfields that should be - * considered whenever we implement code that manipulates - * PaintVolumes... - * - * Firstly if ->is_empty == TRUE then the values for ->is_complete - * and ->is_2d are undefined, so you should typically check - * ->is_empty as the first priority. - * - * XXX: document other invariables... - */ -}; - -/* ClutterActorTraverseFlags: - * - * Controls some options for how clutter_actor_traverse() iterates - * through the graph. - */ -typedef enum _ClutterActorTraverseFlags -{ - CLUTTER_ACTOR_TRAVERSE_PLACE_HOLDER = 1L<<0 -} ClutterActorTraverseFlags; - -/* ClutterForeachCallback: - * @actor: The actor being iterated - * @user_data: The private data specified when starting the iteration - * - * A generic callback for iterating over actor, such as with - * _clutter_actor_foreach_child. The difference when compared to - * #ClutterCallback is that it returns a boolean so it is possible to break - * out of an iteration early. - * - * Return value: %TRUE to continue iterating or %FALSE to break iteration - * early. - */ -typedef gboolean (*ClutterForeachCallback) (ClutterActor *actor, - void *user_data); - -typedef struct _ClutterStageQueueRedrawEntry ClutterStageQueueRedrawEntry; - #define CLUTTER_CONTEXT() (_clutter_context_get_default ()) ClutterMainContext *_clutter_context_get_default (void); gboolean _clutter_context_is_initialized (void); @@ -344,130 +173,6 @@ PangoContext *_clutter_context_get_pango_context (ClutterMainContext *self); G_CONST_RETURN gchar *_clutter_gettext (const gchar *str); -/* device manager */ -void _clutter_device_manager_add_device (ClutterDeviceManager *device_manager, - ClutterInputDevice *device); -void _clutter_device_manager_remove_device (ClutterDeviceManager *device_manager, - ClutterInputDevice *device); -void _clutter_device_manager_update_devices (ClutterDeviceManager *device_manager); - -/* input device */ -void _clutter_input_device_set_coords (ClutterInputDevice *device, - gint x, - gint y); -void _clutter_input_device_set_state (ClutterInputDevice *device, - ClutterModifierType state); -void _clutter_input_device_set_time (ClutterInputDevice *device, - guint32 time_); -void _clutter_input_device_set_stage (ClutterInputDevice *device, - ClutterStage *stage); -void _clutter_input_device_set_actor (ClutterInputDevice *device, - ClutterActor *actor); -ClutterActor *_clutter_input_device_update (ClutterInputDevice *device); - -/* stage manager */ -void _clutter_stage_manager_add_stage (ClutterStageManager *stage_manager, - ClutterStage *stage); -void _clutter_stage_manager_remove_stage (ClutterStageManager *stage_manager, - ClutterStage *stage); -void _clutter_stage_manager_set_default_stage (ClutterStageManager *stage_manager, - ClutterStage *stage); - -/* stage */ -void _clutter_stage_do_paint (ClutterStage *stage, - const ClutterGeometry *clip); -void _clutter_stage_set_window (ClutterStage *stage, - ClutterStageWindow *stage_window); -ClutterStageWindow *_clutter_stage_get_window (ClutterStage *stage); -ClutterStageWindow *_clutter_stage_get_default_window (void); -void _clutter_stage_get_projection_matrix (ClutterStage *stage, - CoglMatrix *projection); - -void _clutter_stage_dirty_projection (ClutterStage *stage); -void _clutter_stage_set_viewport (ClutterStage *stage, - int x, - int y, - int width, - int height); -void _clutter_stage_get_viewport (ClutterStage *stage, - int *x, - int *y, - int *width, - int *height); -void _clutter_stage_dirty_viewport (ClutterStage *stage); - - -void _clutter_stage_maybe_setup_viewport (ClutterStage *stage); -void _clutter_stage_maybe_relayout (ClutterActor *stage); -gboolean _clutter_stage_needs_update (ClutterStage *stage); -gboolean _clutter_stage_do_update (ClutterStage *stage); - - -void _clutter_stage_queue_event (ClutterStage *stage, - ClutterEvent *event); -gboolean _clutter_stage_has_queued_events (ClutterStage *stage); -void _clutter_stage_process_queued_events (ClutterStage *stage); -void _clutter_stage_update_input_devices (ClutterStage *stage); - -int _clutter_stage_get_pending_swaps (ClutterStage *stage); - -gboolean _clutter_stage_has_full_redraw_queued (ClutterStage *stage); - -void _clutter_stage_set_pick_buffer_valid (ClutterStage *stage, - gboolean valid); -gboolean _clutter_stage_get_pick_buffer_valid (ClutterStage *stage); -void _clutter_stage_increment_picks_per_frame_counter (ClutterStage *stage); -void _clutter_stage_reset_picks_per_frame_counter (ClutterStage *stage); -guint _clutter_stage_get_picks_per_frame_counter (ClutterStage *stage); - -ClutterPaintVolume *_clutter_stage_paint_volume_stack_allocate (ClutterStage *stage); -void _clutter_stage_paint_volume_stack_free_all (ClutterStage *stage); - -const ClutterGeometry *_clutter_stage_get_clip (ClutterStage *stage); - -ClutterStageQueueRedrawEntry *_clutter_stage_queue_actor_redraw (ClutterStage *stage, - ClutterStageQueueRedrawEntry *entry, - ClutterActor *actor, - ClutterPaintVolume *clip); - -void _clutter_stage_queue_redraw_entry_invalidate (ClutterStageQueueRedrawEntry *entry); - - -/* vfuncs implemented by backend */ -GType _clutter_backend_impl_get_type (void); - -void _clutter_backend_redraw (ClutterBackend *backend, - ClutterStage *stage); -ClutterStageWindow *_clutter_backend_create_stage (ClutterBackend *backend, - ClutterStage *wrapper, - GError **error); -void _clutter_backend_ensure_context (ClutterBackend *backend, - ClutterStage *stage); -void _clutter_backend_ensure_context_internal - (ClutterBackend *backend, - ClutterStage *stage); -gboolean _clutter_backend_create_context (ClutterBackend *backend, - GError **error); - -void _clutter_backend_add_options (ClutterBackend *backend, - GOptionGroup *group); -gboolean _clutter_backend_pre_parse (ClutterBackend *backend, - GError **error); -gboolean _clutter_backend_post_parse (ClutterBackend *backend, - GError **error); -void _clutter_backend_init_events (ClutterBackend *backend); - -void _clutter_backend_copy_event_data (ClutterBackend *backend, - const ClutterEvent *src, - ClutterEvent *dest); -void _clutter_backend_free_event_data (ClutterBackend *backend, - ClutterEvent *event); - -ClutterFeatureFlags _clutter_backend_get_features (ClutterBackend *backend); - -gfloat _clutter_backend_get_units_per_em (ClutterBackend *backend, - PangoFontDescription *font_desc); - gboolean _clutter_feature_init (GError **error); /* Reinjecting queued events for processing */ @@ -495,51 +200,8 @@ gboolean _clutter_boolean_handled_accumulator (GSignalInvocationHint *ihint, const GValue *handler_return, gpointer dummy); -gint _clutter_actor_get_n_children (ClutterActor *self); -gboolean _clutter_actor_foreach_child (ClutterActor *self, - ClutterForeachCallback callback, - void *user_data); -gboolean _clutter_actor_traverse (ClutterActor *actor, - ClutterActorTraverseFlags flags, - ClutterForeachCallback callback, - void *user_data); -ClutterActor *_clutter_actor_get_stage_internal (ClutterActor *actor); - -void _clutter_actor_apply_modelview_transform (ClutterActor *self, - CoglMatrix *matrix); -void _clutter_actor_apply_modelview_transform_recursive (ClutterActor *self, - ClutterActor *ancestor, - CoglMatrix *matrix); - -void _clutter_actor_rerealize (ClutterActor *self, - ClutterCallback callback, - void *data); - -void _clutter_actor_set_opacity_parent (ClutterActor *self, - ClutterActor *parent); - -void _clutter_actor_set_enable_model_view_transform (ClutterActor *self, - gboolean enable); - -void _clutter_actor_set_enable_paint_unmapped (ClutterActor *self, - gboolean enable); - -void _clutter_actor_set_has_pointer (ClutterActor *self, - gboolean has_pointer); - -void _clutter_actor_queue_redraw_with_clip (ClutterActor *self, - ClutterRedrawFlags flags, - ClutterPaintVolume *clip_volume); -const ClutterPaintVolume *_clutter_actor_get_queue_redraw_clip (ClutterActor *self); -void _clutter_actor_set_queue_redraw_clip (ClutterActor *self, - const ClutterPaintVolume *clip_volume); -void _clutter_actor_finish_queue_redraw (ClutterActor *self, - ClutterPaintVolume *clip); - void _clutter_run_repaint_functions (void); -gint32 _clutter_backend_get_units_serial (ClutterBackend *backend); - gboolean _clutter_effect_pre_paint (ClutterEffect *effect); void _clutter_effect_post_paint (ClutterEffect *effect); gboolean _clutter_effect_get_paint_volume (ClutterEffect *effect, @@ -555,29 +217,6 @@ void _clutter_event_set_platform_data (ClutterEvent *event, gpointer data); gpointer _clutter_event_get_platform_data (const ClutterEvent *event); -void _clutter_paint_volume_init_static (ClutterActor *actor, - ClutterPaintVolume *pv); -ClutterPaintVolume *_clutter_paint_volume_new (ClutterActor *actor); -void _clutter_paint_volume_copy_static (const ClutterPaintVolume *src_pv, - ClutterPaintVolume *dst_pv); -void _clutter_paint_volume_set_from_volume (ClutterPaintVolume *pv, - const ClutterPaintVolume *src); - -void _clutter_paint_volume_complete (ClutterPaintVolume *pv); -void _clutter_paint_volume_transform (ClutterPaintVolume *pv, - const CoglMatrix *matrix); -void _clutter_paint_volume_project (ClutterPaintVolume *pv, - const CoglMatrix *modelview, - const CoglMatrix *projection, - const int *viewport); -void _clutter_paint_volume_get_bounding_box (ClutterPaintVolume *pv, - ClutterActorBox *box); -void _clutter_paint_volume_axis_align (ClutterPaintVolume *pv); -void _clutter_paint_volume_set_reference_actor (ClutterPaintVolume *pv, - ClutterActor *actor); - - - void _clutter_util_fully_transform_vertices (const CoglMatrix *modelview, const CoglMatrix *projection, const int *viewport, @@ -585,10 +224,6 @@ void _clutter_util_fully_transform_vertices (const CoglMatrix *mo ClutterVertex *vertices_out, int n_vertices); -gboolean _clutter_actor_set_default_paint_volume (ClutterActor *self, - GType check_gtype, - ClutterPaintVolume *volume); - G_END_DECLS -#endif /* _HAVE_CLUTTER_PRIVATE_H */ +#endif /* __CLUTTER_PRIVATE_H__ */ diff --git a/clutter/clutter-rectangle.c b/clutter/clutter-rectangle.c index 64ba03ef9..1bcab5691 100644 --- a/clutter/clutter-rectangle.c +++ b/clutter/clutter-rectangle.c @@ -33,6 +33,7 @@ #include "config.h" #endif +#include "clutter-actor-private.h" #include "clutter-color.h" #include "clutter-debug.h" #include "clutter-main.h" diff --git a/clutter/clutter-stage-manager-private.h b/clutter/clutter-stage-manager-private.h new file mode 100644 index 000000000..81ebbb6c0 --- /dev/null +++ b/clutter/clutter-stage-manager-private.h @@ -0,0 +1,49 @@ +/* + * Clutter. + * + * An OpenGL based 'interactive canvas' library. + * + * Copyright (C) 2010 Intel Corporation. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see . + * + * Author: + * Emmanuele Bassi + */ + +#ifndef __CLUTTER_STAGE_MANAGER_PRIVATE_H__ +#define __CLUTTER_STAGE_MANAGER_PRIVATE_H__ + +#include + +G_BEGIN_DECLS + +struct _ClutterStageManager +{ + GObject parent_instance; + + GSList *stages; +}; + +/* stage manager */ +void _clutter_stage_manager_add_stage (ClutterStageManager *stage_manager, + ClutterStage *stage); +void _clutter_stage_manager_remove_stage (ClutterStageManager *stage_manager, + ClutterStage *stage); +void _clutter_stage_manager_set_default_stage (ClutterStageManager *stage_manager, + ClutterStage *stage); + +G_END_DECLS + +#endif /* __CLUTTER_STAGE_MANAGER_PRIVATE_H__ */ diff --git a/clutter/clutter-stage-manager.c b/clutter/clutter-stage-manager.c index 7ffe4639e..e5c3133f1 100644 --- a/clutter/clutter-stage-manager.c +++ b/clutter/clutter-stage-manager.c @@ -40,12 +40,12 @@ #include "config.h" #endif +#include "clutter-stage-manager-private.h" #include "clutter-marshal.h" #include "clutter-debug.h" #include "clutter-private.h" #include "clutter-version.h" -#include "clutter-stage-manager.h" enum { @@ -87,19 +87,10 @@ static void clutter_stage_manager_dispose (GObject *gobject) { ClutterStageManager *stage_manager; - GSList *l, *next; stage_manager = CLUTTER_STAGE_MANAGER (gobject); - for (l = stage_manager->stages; l; l = next) - { - ClutterActor *stage = l->data; - next = l->next; - - if (stage) - clutter_actor_destroy (stage); - } - + g_slist_foreach (stage_manager->stages, (GFunc) clutter_actor_destroy, NULL); g_slist_free (stage_manager->stages); stage_manager->stages = NULL; diff --git a/clutter/clutter-stage-private.h b/clutter/clutter-stage-private.h new file mode 100644 index 000000000..740e9aadd --- /dev/null +++ b/clutter/clutter-stage-private.h @@ -0,0 +1,85 @@ +/* + * Clutter. + * + * An OpenGL based 'interactive canvas' library. + * + * Copyright (C) 2010 Intel Corporation. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see . + */ + +#ifndef __CLUTTER_STAGE_PRIVATE_H__ +#define __CLUTTER_STAGE_PRIVATE_H__ + +#include +#include + +G_BEGIN_DECLS + +typedef struct _ClutterStageQueueRedrawEntry ClutterStageQueueRedrawEntry; + +/* stage */ +ClutterStageWindow *_clutter_stage_get_default_window (void); +void _clutter_stage_do_paint (ClutterStage *stage, + const ClutterGeometry *clip); +void _clutter_stage_set_window (ClutterStage *stage, + ClutterStageWindow *stage_window); +ClutterStageWindow *_clutter_stage_get_window (ClutterStage *stage); +void _clutter_stage_get_projection_matrix (ClutterStage *stage, + CoglMatrix *projection); +void _clutter_stage_dirty_projection (ClutterStage *stage); +void _clutter_stage_set_viewport (ClutterStage *stage, + int x, + int y, + int width, + int height); +void _clutter_stage_get_viewport (ClutterStage *stage, + int *x, + int *y, + int *width, + int *height); +void _clutter_stage_dirty_viewport (ClutterStage *stage); +void _clutter_stage_maybe_setup_viewport (ClutterStage *stage); +void _clutter_stage_maybe_relayout (ClutterActor *stage); +gboolean _clutter_stage_needs_update (ClutterStage *stage); +gboolean _clutter_stage_do_update (ClutterStage *stage); + +void _clutter_stage_queue_event (ClutterStage *stage, + ClutterEvent *event); +gboolean _clutter_stage_has_queued_events (ClutterStage *stage); +void _clutter_stage_process_queued_events (ClutterStage *stage); +void _clutter_stage_update_input_devices (ClutterStage *stage); +int _clutter_stage_get_pending_swaps (ClutterStage *stage); +gboolean _clutter_stage_has_full_redraw_queued (ClutterStage *stage); +void _clutter_stage_set_pick_buffer_valid (ClutterStage *stage, + gboolean valid); +gboolean _clutter_stage_get_pick_buffer_valid (ClutterStage *stage); +void _clutter_stage_increment_picks_per_frame_counter (ClutterStage *stage); +void _clutter_stage_reset_picks_per_frame_counter (ClutterStage *stage); +guint _clutter_stage_get_picks_per_frame_counter (ClutterStage *stage); + +ClutterPaintVolume *_clutter_stage_paint_volume_stack_allocate (ClutterStage *stage); +void _clutter_stage_paint_volume_stack_free_all (ClutterStage *stage); + +const ClutterGeometry *_clutter_stage_get_clip (ClutterStage *stage); + +ClutterStageQueueRedrawEntry *_clutter_stage_queue_actor_redraw (ClutterStage *stage, + ClutterStageQueueRedrawEntry *entry, + ClutterActor *actor, + ClutterPaintVolume *clip); +void _clutter_stage_queue_redraw_entry_invalidate (ClutterStageQueueRedrawEntry *entry); + +G_END_DECLS + +#endif /* __CLUTTER_STAGE_PRIVATE_H__ */ diff --git a/clutter/clutter-stage.c b/clutter/clutter-stage.c index c64eeb1f6..0d067c59e 100644 --- a/clutter/clutter-stage.c +++ b/clutter/clutter-stage.c @@ -55,22 +55,24 @@ #include "clutter-stage.h" -#include "clutter-backend.h" -#include "clutter-main.h" +#include "clutter-actor-private.h" +#include "clutter-backend-private.h" #include "clutter-color.h" -#include "clutter-util.h" +#include "clutter-container.h" +#include "clutter-debug.h" +#include "clutter-device-manager-private.h" +#include "clutter-enum-types.h" +#include "clutter-id-pool.h" +#include "clutter-main.h" #include "clutter-marshal.h" #include "clutter-master-clock.h" -#include "clutter-enum-types.h" +#include "clutter-paint-volume-private.h" #include "clutter-private.h" -#include "clutter-debug.h" -#include "clutter-stage-manager.h" -#include "clutter-stage-window.h" -#include "clutter-version.h" /* For flavour */ -#include "clutter-id-pool.h" -#include "clutter-container.h" #include "clutter-profile.h" -#include "clutter-input-device.h" +#include "clutter-stage-manager-private.h" +#include "clutter-stage-private.h" +#include "clutter-util.h" +#include "clutter-version.h" /* For flavour */ #include "cogl/cogl.h" diff --git a/clutter/clutter-text.c b/clutter/clutter-text.c index c950c15f3..8cabad697 100644 --- a/clutter/clutter-text.c +++ b/clutter/clutter-text.c @@ -45,9 +45,11 @@ #endif #include +#include #include "clutter-text.h" +#include "clutter-actor-private.h" #include "clutter-binding-pool.h" #include "clutter-debug.h" #include "clutter-enum-types.h" diff --git a/clutter/clutter-texture.c b/clutter/clutter-texture.c index 40c0b6db9..0874b0dda 100644 --- a/clutter/clutter-texture.c +++ b/clutter/clutter-texture.c @@ -44,6 +44,7 @@ #include "config.h" #endif +#include "clutter-actor-private.h" #include "clutter-texture.h" #include "clutter-main.h" #include "clutter-marshal.h" @@ -54,6 +55,7 @@ #include "clutter-debug.h" #include "clutter-fixed.h" #include "clutter-enum-types.h" +#include "clutter-stage-private.h" #include "cogl/cogl.h" diff --git a/clutter/clutter-units.c b/clutter/clutter-units.c index 8631232b7..1e88ff707 100644 --- a/clutter/clutter-units.c +++ b/clutter/clutter-units.c @@ -66,12 +66,15 @@ #include "config.h" #endif +#include + #include #include -#include "clutter-units.h" -#include "clutter-private.h" +#include "clutter-backend-private.h" #include "clutter-interval.h" +#include "clutter-private.h" +#include "clutter-units.h" #define DPI_FALLBACK (96.0) diff --git a/clutter/egl/clutter-backend-egl.c b/clutter/egl/clutter-backend-egl.c index dafa6851d..7804004fc 100644 --- a/clutter/egl/clutter-backend-egl.c +++ b/clutter/egl/clutter-backend-egl.c @@ -40,10 +40,11 @@ #include "clutter-stage-egl.h" #include "clutter-egl.h" -#include "../clutter-private.h" -#include "../clutter-main.h" -#include "../clutter-debug.h" -#include "../clutter-version.h" +#include "clutter-debug.h" +#include "clutter-private.h" +#include "clutter-main.h" +#include "clutter-stage-private.h" +#include "clutter-version.h" static ClutterBackendEGL *backend_singleton = NULL; diff --git a/clutter/egl/clutter-backend-egl.h b/clutter/egl/clutter-backend-egl.h index 746d04c74..6f6181aab 100644 --- a/clutter/egl/clutter-backend-egl.h +++ b/clutter/egl/clutter-backend-egl.h @@ -27,12 +27,13 @@ #include #include -#include #ifdef COGL_HAS_XLIB_SUPPORT #include #include #endif +#include "clutter-backend-private.h" + #include "clutter-egl-headers.h" #ifdef COGL_HAS_X11_SUPPORT diff --git a/clutter/egl/clutter-stage-egl.c b/clutter/egl/clutter-stage-egl.c index ca5d3c283..3a2a55768 100644 --- a/clutter/egl/clutter-stage-egl.c +++ b/clutter/egl/clutter-stage-egl.c @@ -6,17 +6,14 @@ #include "clutter-egl.h" #include "clutter-backend-egl.h" -#include "../clutter-main.h" -#include "../clutter-feature.h" -#include "../clutter-color.h" -#include "../clutter-util.h" -#include "../clutter-event.h" -#include "../clutter-enum-types.h" -#include "../clutter-private.h" -#include "../clutter-debug.h" -#include "../clutter-units.h" -#include "../clutter-stage.h" -#include "../clutter-stage-window.h" +#include "clutter-debug.h" +#include "clutter-event.h" +#include "clutter-enum-types.h" +#include "clutter-feature.h" +#include "clutter-main.h" +#include "clutter-private.h" +#include "clutter-stage-private.h" +#include "clutter-util.h" #ifdef COGL_HAS_X11_SUPPORT static ClutterStageWindowIface *clutter_stage_egl_parent_iface = NULL; diff --git a/clutter/fruity/clutter-backend-fruity.c b/clutter/fruity/clutter-backend-fruity.c index d9279d91d..a6e9142e4 100644 --- a/clutter/fruity/clutter-backend-fruity.c +++ b/clutter/fruity/clutter-backend-fruity.c @@ -4,9 +4,11 @@ #include "clutter-backend-fruity.h" #include "clutter-stage-fruity.h" -#include "../clutter-private.h" -#include "../clutter-main.h" -#include "../clutter-debug.h" + +#include "clutter-debug.h" +#include "clutter-main.h" +#include "clutter-stage-private.h" +#include "clutter-private.h" static ClutterBackendEGL *backend_singleton = NULL; diff --git a/clutter/fruity/clutter-backend-fruity.h b/clutter/fruity/clutter-backend-fruity.h index c3d331128..6fd7ddebc 100644 --- a/clutter/fruity/clutter-backend-fruity.h +++ b/clutter/fruity/clutter-backend-fruity.h @@ -32,8 +32,9 @@ #include #include -#include -#include + +#include "clutter-backend-private.h" + G_BEGIN_DECLS #define CLUTTER_TYPE_BACKEND_FRUITY (clutter_backend_egl_get_type ()) diff --git a/clutter/glx/clutter-backend-glx.c b/clutter/glx/clutter-backend-glx.c index cfa997863..d7a6117e5 100644 --- a/clutter/glx/clutter-backend-glx.c +++ b/clutter/glx/clutter-backend-glx.c @@ -42,11 +42,12 @@ #include "clutter-glx.h" #include "clutter-profile.h" -#include "../clutter-event.h" -#include "../clutter-main.h" -#include "../clutter-debug.h" -#include "../clutter-private.h" -#include "../clutter-version.h" +#include "clutter-debug.h" +#include "clutter-event.h" +#include "clutter-main.h" +#include "clutter-private.h" +#include "clutter-stage-private.h" +#include "clutter-version.h" #include "cogl/cogl.h" diff --git a/clutter/glx/clutter-event-glx.c b/clutter/glx/clutter-event-glx.c index 7c0f4a29c..dadb3b130 100644 --- a/clutter/glx/clutter-event-glx.c +++ b/clutter/glx/clutter-event-glx.c @@ -28,7 +28,9 @@ #include "clutter-backend-x11.h" #include "clutter-stage-glx.h" #include "clutter-backend-glx.h" + #include "clutter-private.h" +#include "clutter-stage-private.h" #include #include diff --git a/clutter/glx/clutter-stage-glx.c b/clutter/glx/clutter-stage-glx.c index d22ca99df..42b29fe81 100644 --- a/clutter/glx/clutter-stage-glx.c +++ b/clutter/glx/clutter-stage-glx.c @@ -28,20 +28,14 @@ #include "clutter-glx.h" #include "clutter-profile.h" -#include "../clutter-main.h" -#include "../clutter-feature.h" -#include "../clutter-color.h" -#include "../clutter-util.h" -#include "../clutter-event.h" -#include "../clutter-enum-types.h" -#include "../clutter-private.h" -#include "../clutter-debug.h" -#include "../clutter-units.h" -#include "../clutter-shader.h" -#include "../clutter-group.h" -#include "../clutter-container.h" -#include "../clutter-stage.h" -#include "../clutter-stage-window.h" +#include "clutter-actor-private.h" +#include "clutter-debug.h" +#include "clutter-event.h" +#include "clutter-enum-types.h" +#include "clutter-feature.h" +#include "clutter-main.h" +#include "clutter-private.h" +#include "clutter-stage-private.h" #include "cogl/cogl.h" diff --git a/clutter/osx/clutter-backend-osx.c b/clutter/osx/clutter-backend-osx.c index d13610a92..501743cdb 100644 --- a/clutter/osx/clutter-backend-osx.c +++ b/clutter/osx/clutter-backend-osx.c @@ -24,10 +24,13 @@ #include "clutter-osx.h" #include "clutter-backend-osx.h" #include "clutter-stage-osx.h" -#include "../clutter-private.h" + +#include "clutter-debug.h" +#include "clutter-private.h" +#include "clutter-stage-private.h" + #include "cogl/cogl.h" -#include #import G_DEFINE_TYPE (ClutterBackendOSX, clutter_backend_osx, CLUTTER_TYPE_BACKEND) diff --git a/clutter/osx/clutter-backend-osx.h b/clutter/osx/clutter-backend-osx.h index 599c9592d..339bcb8af 100644 --- a/clutter/osx/clutter-backend-osx.h +++ b/clutter/osx/clutter-backend-osx.h @@ -22,7 +22,7 @@ #ifndef __CLUTTER_BACKEND_OSX_H__ #define __CLUTTER_BACKEND_OSX_H__ -#include +#include "clutter-backend-private.h" @class NSOpenGLPixelFormat, NSOpenGLContext; diff --git a/clutter/osx/clutter-stage-osx.c b/clutter/osx/clutter-stage-osx.c index 934011949..e5b55e8c1 100644 --- a/clutter/osx/clutter-stage-osx.c +++ b/clutter/osx/clutter-stage-osx.c @@ -24,10 +24,12 @@ #include "clutter-osx.h" #include "clutter-stage-osx.h" #include "clutter-backend-osx.h" -#import -#include -#include +#include "clutter-debug.h" +#include "clutter-private.h" +#include "clutter-stage-private.h" + +#import static void clutter_stage_window_iface_init (ClutterStageWindowIface *iface); diff --git a/clutter/wayland/clutter-backend-wayland.c b/clutter/wayland/clutter-backend-wayland.c index 7c10793e3..34f0b50b6 100644 --- a/clutter/wayland/clutter-backend-wayland.c +++ b/clutter/wayland/clutter-backend-wayland.c @@ -39,15 +39,16 @@ #include #include -#include "../clutter-private.h" -#include "../clutter-main.h" -#include "../clutter-debug.h" -#include "../clutter-version.h" - #include "clutter-backend-wayland.h" #include "clutter-stage-wayland.h" #include "clutter-wayland.h" +#include "clutter-debug.h" +#include "clutter-main.h" +#include "clutter-private.h" +#include "clutter-stage-private.h" +#include "clutter-version.h" + static ClutterBackendWayland *backend_singleton = NULL; G_DEFINE_TYPE (ClutterBackendWayland, _clutter_backend_wayland, CLUTTER_TYPE_BACKEND); diff --git a/clutter/wayland/clutter-backend-wayland.h b/clutter/wayland/clutter-backend-wayland.h index 54a8d5260..d243cee9c 100644 --- a/clutter/wayland/clutter-backend-wayland.h +++ b/clutter/wayland/clutter-backend-wayland.h @@ -29,13 +29,14 @@ #include #include -#include #include #include #include "clutter-wayland.h" +#include "clutter-backend-private.h" + G_BEGIN_DECLS #define CLUTTER_TYPE_BACKEND_WAYLAND (_clutter_backend_wayland_get_type ()) diff --git a/clutter/wayland/clutter-input-device-wayland.c b/clutter/wayland/clutter-input-device-wayland.c index e59ccb328..81c1dbc63 100644 --- a/clutter/wayland/clutter-input-device-wayland.c +++ b/clutter/wayland/clutter-input-device-wayland.c @@ -34,9 +34,10 @@ #include -#include "../clutter-debug.h" -#include "../clutter-private.h" -#include "../clutter-keysyms.h" +#include "clutter-debug.h" +#include "clutter-device-manager-private.h" +#include "clutter-private.h" +#include "clutter-keysyms.h" #include "clutter-stage-wayland.h" diff --git a/clutter/wayland/clutter-stage-wayland.c b/clutter/wayland/clutter-stage-wayland.c index a1c7925cc..26eb03ad7 100644 --- a/clutter/wayland/clutter-stage-wayland.c +++ b/clutter/wayland/clutter-stage-wayland.c @@ -33,22 +33,19 @@ #include #include -#include "../clutter-main.h" -#include "../clutter-feature.h" -#include "../clutter-color.h" -#include "../clutter-util.h" -#include "../clutter-event.h" -#include "../clutter-enum-types.h" -#include "../clutter-private.h" -#include "../clutter-debug.h" -#include "../clutter-units.h" -#include "../clutter-stage.h" -#include "../clutter-stage-window.h" - #include "clutter-stage-wayland.h" #include "clutter-wayland.h" #include "clutter-backend-wayland.h" +#include "clutter-actor-private.h" +#include "clutter-debug.h" +#include "clutter-event.h" +#include "clutter-enum-types.h" +#include "clutter-feature.h" +#include "clutter-main.h" +#include "clutter-private.h" +#include "clutter-stage-private.h" + #include "cogl/cogl-framebuffer-private.h" static void diff --git a/clutter/win32/clutter-backend-win32.c b/clutter/win32/clutter-backend-win32.c index 18a15b775..79876e6ac 100644 --- a/clutter/win32/clutter-backend-win32.c +++ b/clutter/win32/clutter-backend-win32.c @@ -30,12 +30,13 @@ #include "clutter-win32.h" #include "clutter-device-manager-win32.h" -#include "../clutter-event.h" -#include "../clutter-main.h" -#include "../clutter-input-device.h" -#include "../clutter-debug.h" -#include "../clutter-private.h" -#include "../clutter-version.h" +#include "clutter-event.h" +#include "clutter-main.h" +#include "clutter-device-manager-private.h" +#include "clutter-debug.h" +#include "clutter-private.h" +#include "clutter-stage-private.h" +#include "clutter-version.h" #include "cogl/cogl.h" diff --git a/clutter/win32/clutter-backend-win32.h b/clutter/win32/clutter-backend-win32.h index 4da5c8a90..0bcaa8f04 100644 --- a/clutter/win32/clutter-backend-win32.h +++ b/clutter/win32/clutter-backend-win32.h @@ -24,9 +24,10 @@ #include #include -#include #include +#include "clutter-backend-private.h" + #include "clutter-win32.h" G_BEGIN_DECLS diff --git a/clutter/win32/clutter-device-manager-win32.c b/clutter/win32/clutter-device-manager-win32.c index 256333e46..1e9308a62 100644 --- a/clutter/win32/clutter-device-manager-win32.c +++ b/clutter/win32/clutter-device-manager-win32.c @@ -32,7 +32,7 @@ #include "clutter-backend.h" #include "clutter-debug.h" -#include "clutter-device-manager.h" +#include "clutter-device-manager-private.h" #include "clutter-private.h" enum diff --git a/clutter/win32/clutter-event-win32.c b/clutter/win32/clutter-event-win32.c index 152a4a1e1..987b621a6 100644 --- a/clutter/win32/clutter-event-win32.c +++ b/clutter/win32/clutter-event-win32.c @@ -27,12 +27,14 @@ #include "clutter-backend-win32.h" #include "clutter-win32.h" -#include "../clutter-backend.h" -#include "../clutter-event.h" -#include "../clutter-private.h" -#include "../clutter-debug.h" -#include "../clutter-main.h" -#include "../clutter-keysyms.h" +#include "clutter-backend.h" +#include "clutter-debug.h" +#include "clutter-device-manager-private.h" +#include "clutter-event.h" +#include "clutter-keysyms.h" +#include "clutter-main.h" +#include "clutter-private.h" +#include "clutter-stage-private.h" #include #include diff --git a/clutter/win32/clutter-stage-win32.c b/clutter/win32/clutter-stage-win32.c index a99f14377..7c5fac92c 100644 --- a/clutter/win32/clutter-stage-win32.c +++ b/clutter/win32/clutter-stage-win32.c @@ -27,18 +27,14 @@ #include "clutter-stage-win32.h" #include "clutter-win32.h" -#include "../clutter-stage-window.h" -#include "../clutter-main.h" -#include "../clutter-feature.h" -#include "../clutter-color.h" -#include "../clutter-util.h" -#include "../clutter-event.h" -#include "../clutter-enum-types.h" -#include "../clutter-private.h" -#include "../clutter-debug.h" -#include "../clutter-units.h" -#include "../clutter-shader.h" -#include "../clutter-stage.h" +#include "clutter-actor-private.h" +#include "clutter-main.h" +#include "clutter-feature.h" +#include "clutter-event.h" +#include "clutter-enum-types.h" +#include "clutter-private.h" +#include "clutter-debug.h" +#include "clutter-stage-private.h" #include "cogl/cogl.h" diff --git a/clutter/x11/clutter-backend-x11.c b/clutter/x11/clutter-backend-x11.c index 2654c0fd5..8a6174139 100644 --- a/clutter/x11/clutter-backend-x11.c +++ b/clutter/x11/clutter-backend-x11.c @@ -445,11 +445,7 @@ clutter_backend_x11_dispose (GObject *gobject) CLUTTER_NOTE (BACKEND, "Disposing the of stages"); stage_manager = clutter_stage_manager_get_default (); - /* Destroy all of the stages. g_slist_foreach is used because the - finalizer for the stages will remove the stage from the - stage_manager's list and g_slist_foreach has some basic - protection against this */ - g_slist_foreach (stage_manager->stages, (GFunc) clutter_actor_destroy, NULL); + g_object_unref (stage_manager); CLUTTER_NOTE (BACKEND, "Removing the event source"); _clutter_backend_x11_events_uninit (CLUTTER_BACKEND (backend_x11)); diff --git a/clutter/x11/clutter-backend-x11.h b/clutter/x11/clutter-backend-x11.h index e51cc135f..1947803a7 100644 --- a/clutter/x11/clutter-backend-x11.h +++ b/clutter/x11/clutter-backend-x11.h @@ -24,12 +24,11 @@ #include #include -#include #include #include #include "clutter-x11.h" - +#include "clutter-backend-private.h" #include "clutter-keymap-x11.h" #include "xsettings/xsettings-client.h" diff --git a/clutter/x11/clutter-device-manager-x11.c b/clutter/x11/clutter-device-manager-x11.c index f0a484d96..11e697bb9 100644 --- a/clutter/x11/clutter-device-manager-x11.c +++ b/clutter/x11/clutter-device-manager-x11.c @@ -32,7 +32,7 @@ #include "clutter-backend.h" #include "clutter-debug.h" -#include "clutter-device-manager.h" +#include "clutter-device-manager-private.h" #include "clutter-private.h" #ifdef HAVE_XINPUT diff --git a/clutter/x11/clutter-event-x11.c b/clutter/x11/clutter-event-x11.c index 75e8142c9..8efc4e4be 100644 --- a/clutter/x11/clutter-event-x11.c +++ b/clutter/x11/clutter-event-x11.c @@ -33,11 +33,15 @@ #include "clutter-keymap-x11.h" #include "clutter-x11.h" -#include "../clutter-backend.h" -#include "../clutter-event.h" -#include "../clutter-private.h" -#include "../clutter-debug.h" -#include "../clutter-main.h" +#include "clutter-actor-private.h" +#include "clutter-backend-private.h" +#include "clutter-debug.h" +#include "clutter-device-manager-private.h" +#include "clutter-event.h" +#include "clutter-main.h" +#include "clutter-paint-volume-private.h" +#include "clutter-private.h" +#include "clutter-stage-private.h" #include "cogl/cogl-internal.h" diff --git a/clutter/x11/clutter-input-device-x11.c b/clutter/x11/clutter-input-device-x11.c index b61959490..342950c59 100644 --- a/clutter/x11/clutter-input-device-x11.c +++ b/clutter/x11/clutter-input-device-x11.c @@ -3,8 +3,10 @@ #endif #include "clutter-input-device-x11.h" -#include "../clutter-debug.h" -#include "../clutter-private.h" + +#include "clutter-debug.h" +#include "clutter-device-manager-private.h" +#include "clutter-private.h" #ifdef HAVE_XINPUT #include diff --git a/clutter/x11/clutter-stage-x11.c b/clutter/x11/clutter-stage-x11.c index 45a67637d..54175dcc0 100644 --- a/clutter/x11/clutter-stage-x11.c +++ b/clutter/x11/clutter-stage-x11.c @@ -31,16 +31,14 @@ #include "clutter-stage-x11.h" #include "clutter-x11.h" -#include "../clutter-stage-window.h" -#include "../clutter-main.h" -#include "../clutter-feature.h" -#include "../clutter-color.h" -#include "../clutter-util.h" -#include "../clutter-event.h" -#include "../clutter-enum-types.h" -#include "../clutter-private.h" -#include "../clutter-debug.h" -#include "../clutter-units.h" +#include "clutter-actor-private.h" +#include "clutter-debug.h" +#include "clutter-main.h" +#include "clutter-feature.h" +#include "clutter-event.h" +#include "clutter-enum-types.h" +#include "clutter-private.h" +#include "clutter-stage-private.h" #include "cogl/cogl.h" diff --git a/clutter/x11/clutter-x11-texture-pixmap.c b/clutter/x11/clutter-x11-texture-pixmap.c index 47a34ce3e..f2948568c 100644 --- a/clutter/x11/clutter-x11-texture-pixmap.c +++ b/clutter/x11/clutter-x11-texture-pixmap.c @@ -42,10 +42,13 @@ #include "config.h" #endif -#include "../clutter-marshal.h" #include "clutter-x11-texture-pixmap.h" #include "clutter-x11.h" #include "clutter-backend-x11.h" + +#include "clutter-actor-private.h" +#include "clutter-marshal.h" +#include "clutter-paint-volume-private.h" #include "clutter-private.h" #include "cogl/cogl.h"