diff --git a/clutter/clutter/clutter-enums.h b/clutter/clutter/clutter-enums.h index 4b9b62bcf5a8fad432ddecb3fa7bff8f819fa75a..bbc759d385a4ece1a5e78f1a312def83ab7136a1 100644 --- a/clutter/clutter/clutter-enums.h +++ b/clutter/clutter/clutter-enums.h @@ -1317,8 +1317,6 @@ typedef enum * painting the stages * @CLUTTER_REPAINT_FLAGS_POST_PAINT: Run the repaint function after * painting the stages - * @CLUTTER_REPAINT_FLAGS_QUEUE_REDRAW_ON_ADD: Ensure that a new frame - * is queued after adding the repaint function * * Flags to pass to clutter_threads_add_repaint_func_full(). * @@ -1328,7 +1326,6 @@ typedef enum { CLUTTER_REPAINT_FLAGS_PRE_PAINT = 1 << 0, CLUTTER_REPAINT_FLAGS_POST_PAINT = 1 << 1, - CLUTTER_REPAINT_FLAGS_QUEUE_REDRAW_ON_ADD = 1 << 2 } ClutterRepaintFlags; /** diff --git a/clutter/clutter/clutter-main.c b/clutter/clutter/clutter-main.c index 0114244b8c7417ed2ea3431cbc22ad665866d9a0..84a10bb5d6c0b8905aac3e1a2d8799443f0b22f6 100644 --- a/clutter/clutter/clutter-main.c +++ b/clutter/clutter/clutter-main.c @@ -2392,8 +2392,7 @@ clutter_threads_add_repaint_func_full (ClutterRepaintFlags flags, repaint_func->id = context->last_repaint_id++; - /* mask out QUEUE_REDRAW_ON_ADD, since we're going to consume it */ - repaint_func->flags = flags & ~CLUTTER_REPAINT_FLAGS_QUEUE_REDRAW_ON_ADD; + repaint_func->flags = flags; repaint_func->func = func; repaint_func->data = data; repaint_func->notify = notify; @@ -2403,13 +2402,6 @@ clutter_threads_add_repaint_func_full (ClutterRepaintFlags flags, _clutter_context_unlock (); - if ((flags & CLUTTER_REPAINT_FLAGS_QUEUE_REDRAW_ON_ADD) != 0) - { - ClutterMasterClock *master_clock = _clutter_master_clock_get_default (); - - _clutter_master_clock_ensure_next_iteration (master_clock); - } - return repaint_func->id; } diff --git a/clutter/clutter/clutter-pan-action.c b/clutter/clutter/clutter-pan-action.c index 07d819e52b771d4ef754aeba8a86bdbf70e44aa9..22fdc2743b35d219250b7ed752dbe082682d1802 100644 --- a/clutter/clutter/clutter-pan-action.c +++ b/clutter/clutter/clutter-pan-action.c @@ -136,7 +136,8 @@ enum static guint pan_signals[LAST_SIGNAL] = { 0, }; -G_DEFINE_TYPE_WITH_PRIVATE (ClutterPanAction, clutter_pan_action, CLUTTER_TYPE_GESTURE_ACTION) +G_DEFINE_TYPE_WITH_PRIVATE (ClutterPanAction, clutter_pan_action, + CLUTTER_TYPE_GESTURE_ACTION) static void emit_pan (ClutterPanAction *self, @@ -156,14 +157,18 @@ emit_pan (ClutterPanAction *self, gfloat scroll_threshold = G_PI_4/2; gfloat drag_angle; - clutter_gesture_action_get_motion_delta (CLUTTER_GESTURE_ACTION (self), 0, &delta_x, &delta_y); + clutter_gesture_action_get_motion_delta (CLUTTER_GESTURE_ACTION (self), + 0, + &delta_x, + &delta_y); if (delta_x != 0.0f) drag_angle = atanf (delta_y / delta_x); else drag_angle = G_PI_2; - if ((drag_angle > -scroll_threshold) && (drag_angle < scroll_threshold)) + if ((drag_angle > -scroll_threshold) && + (drag_angle < scroll_threshold)) priv->pin_state = SCROLL_PINNED_HORIZONTAL; else if ((drag_angle > (G_PI_2 - scroll_threshold)) || (drag_angle < -(G_PI_2 - scroll_threshold))) @@ -282,7 +287,10 @@ gesture_end (ClutterGestureAction *gesture, gfloat tau; gint duration; - clutter_gesture_action_get_release_coords (CLUTTER_GESTURE_ACTION (self), 0, &priv->release_x, &priv->release_y); + clutter_gesture_action_get_release_coords (CLUTTER_GESTURE_ACTION (self), + 0, + &priv->release_x, + &priv->release_y); if (!priv->should_interpolate) { @@ -293,7 +301,9 @@ gesture_end (ClutterGestureAction *gesture, priv->state = PAN_STATE_INTERPOLATING; clutter_gesture_action_get_motion_delta (gesture, 0, &delta_x, &delta_y); - velocity = clutter_gesture_action_get_velocity (gesture, 0, &velocity_x, &velocity_y); + velocity = clutter_gesture_action_get_velocity (gesture, 0, + &velocity_x, + &velocity_y); /* Exponential timing constant v(t) = v(0) * exp(-t/tau) * tau = 1000ms / (frame_per_second * - ln(decay_per_frame)) @@ -304,17 +314,22 @@ gesture_end (ClutterGestureAction *gesture, /* See where the decreasing velocity reaches $min_velocity px/ms * v(t) = v(0) * exp(-t/tau) = min_velocity * t = - tau * ln( min_velocity / |v(0)|) */ - duration = - tau * logf (min_velocity / (ABS (velocity) * priv->acceleration_factor)); + duration = - tau * logf (min_velocity / (ABS (velocity) * + priv->acceleration_factor)); /* Target point: x(t) = v(0) * tau * [1 - exp(-t/tau)] */ - priv->target_x = velocity_x * priv->acceleration_factor * tau * (1 - exp ((float)-duration / tau)); - priv->target_y = velocity_y * priv->acceleration_factor * tau * (1 - exp ((float)-duration / tau)); + priv->target_x = (velocity_x * priv->acceleration_factor * tau * + (1 - exp ((float)-duration / tau))); + priv->target_y = (velocity_y * priv->acceleration_factor * tau * + (1 - exp ((float)-duration / tau))); - if (ABS (velocity) * priv->acceleration_factor > min_velocity && duration > FLOAT_EPSILON) + if (ABS (velocity) * priv->acceleration_factor > min_velocity && + duration > FLOAT_EPSILON) { priv->interpolated_x = priv->interpolated_y = 0.0f; priv->deceleration_timeline = clutter_timeline_new (duration); - clutter_timeline_set_progress_mode (priv->deceleration_timeline, CLUTTER_EASE_OUT_EXPO); + clutter_timeline_set_progress_mode (priv->deceleration_timeline, + CLUTTER_EASE_OUT_EXPO); g_signal_connect (priv->deceleration_timeline, "new_frame", G_CALLBACK (on_deceleration_new_frame), self); @@ -367,7 +382,8 @@ clutter_pan_action_set_property (GObject *gobject, break; case PROP_ACCELERATION_FACTOR : - clutter_pan_action_set_acceleration_factor (self, g_value_get_double (value)); + clutter_pan_action_set_acceleration_factor (self, + g_value_get_double (value)); break; default: @@ -411,9 +427,11 @@ static void clutter_pan_action_constructed (GObject *gobject) { ClutterGestureAction *gesture; + ClutterGestureTriggerEdge edge; gesture = CLUTTER_GESTURE_ACTION (gobject); - clutter_gesture_action_set_threshold_trigger_edge (gesture, CLUTTER_GESTURE_TRIGGER_EDGE_AFTER); + edge = CLUTTER_GESTURE_TRIGGER_EDGE_AFTER; + clutter_gesture_action_set_threshold_trigger_edge (gesture, edge); } static void @@ -442,7 +460,8 @@ clutter_pan_action_set_actor (ClutterActorMeta *meta, g_clear_object (&priv->deceleration_timeline); } - CLUTTER_ACTOR_META_CLASS (clutter_pan_action_parent_class)->set_actor (meta, actor); + CLUTTER_ACTOR_META_CLASS (clutter_pan_action_parent_class)->set_actor (meta, + actor); } @@ -880,7 +899,9 @@ clutter_pan_action_get_constrained_motion_delta (ClutterPanAction *self, priv = self->priv; - distance = clutter_pan_action_get_motion_delta (self, point, &delta_x, &delta_y); + distance = clutter_pan_action_get_motion_delta (self, point, + &delta_x, + &delta_y); switch (priv->pan_axis) { diff --git a/clutter/clutter/clutter-script-parser.c b/clutter/clutter/clutter-script-parser.c index bf3d51878391adecf56116ff9dc8169e3560c6c2..0de4457954ef88e9a52e1c03d0938121afcc514c 100644 --- a/clutter/clutter/clutter-script-parser.c +++ b/clutter/clutter/clutter-script-parser.c @@ -1523,7 +1523,7 @@ clutter_script_construct_parameters (ClutterScript *script, continue; } - if (!(pspec->flags & G_PARAM_CONSTRUCT_ONLY)) + if (!(pspec->flags & (G_PARAM_CONSTRUCT | G_PARAM_CONSTRUCT_ONLY))) { unparsed = g_list_prepend (unparsed, pinfo); continue; diff --git a/clutter/clutter/clutter-stage.c b/clutter/clutter/clutter-stage.c index 4ed580945309363ee14f1f88d784aa39a27cf71c..61737abd4b6e678203e6da8188d557d152e977e4 100644 --- a/clutter/clutter/clutter-stage.c +++ b/clutter/clutter/clutter-stage.c @@ -1071,6 +1071,7 @@ clutter_stage_hide (ClutterActor *self) ClutterStagePrivate *priv = CLUTTER_STAGE (self)->priv; g_assert (priv->impl != NULL); + _clutter_stage_clear_pick_stack (CLUTTER_STAGE (self)); _clutter_stage_window_hide (priv->impl); CLUTTER_ACTOR_CLASS (clutter_stage_parent_class)->hide (self); @@ -3171,37 +3172,6 @@ _clutter_stage_maybe_setup_viewport (ClutterStage *stage, #undef _DEG_TO_RAD -/** - * clutter_stage_ensure_redraw: - * @stage: a #ClutterStage - * - * Ensures that @stage is redrawn - * - * This function should not be called by applications: it is - * used when embedding a #ClutterStage into a toolkit with - * another windowing system, like GTK+. - * - * Since: 1.0 - */ -void -clutter_stage_ensure_redraw (ClutterStage *stage) -{ - ClutterMasterClock *master_clock; - ClutterStagePrivate *priv; - - g_return_if_fail (CLUTTER_IS_STAGE (stage)); - - priv = stage->priv; - - if (!_clutter_stage_needs_update (stage)) - clutter_stage_schedule_update (stage); - - priv->redraw_pending = TRUE; - - master_clock = _clutter_master_clock_get_default (); - _clutter_master_clock_start_running (master_clock); -} - /** * clutter_stage_is_redraw_queued: (skip) */ diff --git a/clutter/clutter/clutter-stage.h b/clutter/clutter/clutter-stage.h index 5d0c1b4159fefaf5db052f351ce28926bc752a3e..fb96ef436996bd94c859e81f9c588ce7447510a4 100644 --- a/clutter/clutter/clutter-stage.h +++ b/clutter/clutter/clutter-stage.h @@ -195,8 +195,6 @@ guchar * clutter_stage_read_pixels (ClutterStage CLUTTER_EXPORT void clutter_stage_ensure_viewport (ClutterStage *stage); -CLUTTER_EXPORT -void clutter_stage_ensure_redraw (ClutterStage *stage); CLUTTER_EXPORT gboolean clutter_stage_is_redraw_queued (ClutterStage *stage); diff --git a/clutter/clutter/clutter-timeline.c b/clutter/clutter/clutter-timeline.c index cd0e795ebc0698dca532a4b250acdca66fe33be8..005c14d10f30a72e30d97ba88bd7fdf83c2d11e4 100644 --- a/clutter/clutter/clutter-timeline.c +++ b/clutter/clutter/clutter-timeline.c @@ -172,7 +172,6 @@ enum { PROP_0, - PROP_LOOP, PROP_DELAY, PROP_DURATION, PROP_DIRECTION, @@ -290,23 +289,6 @@ clutter_timeline_add_marker_internal (ClutterTimeline *timeline, g_hash_table_insert (priv->markers_by_name, marker->name, marker); } -static inline void -clutter_timeline_set_loop_internal (ClutterTimeline *timeline, - gboolean loop) -{ - gint old_repeat_count; - - old_repeat_count = timeline->priv->repeat_count; - - if (loop) - clutter_timeline_set_repeat_count (timeline, -1); - else - clutter_timeline_set_repeat_count (timeline, 0); - - if (old_repeat_count != timeline->priv->repeat_count) - g_object_notify_by_pspec (G_OBJECT (timeline), obj_props[PROP_LOOP]); -} - /* Scriptable */ typedef struct _ParseClosure { ClutterTimeline *timeline; @@ -448,10 +430,6 @@ clutter_timeline_set_property (GObject *object, switch (prop_id) { - case PROP_LOOP: - clutter_timeline_set_loop_internal (timeline, g_value_get_boolean (value)); - break; - case PROP_DELAY: clutter_timeline_set_delay (timeline, g_value_get_uint (value)); break; @@ -493,10 +471,6 @@ clutter_timeline_get_property (GObject *object, switch (prop_id) { - case PROP_LOOP: - g_value_set_boolean (value, priv->repeat_count != 0); - break; - case PROP_DELAY: g_value_set_uint (value, priv->delay); break; @@ -572,25 +546,6 @@ clutter_timeline_class_init (ClutterTimelineClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); - /** - * ClutterTimeline:loop: - * - * Whether the timeline should automatically rewind and restart. - * - * As a side effect, setting this property to %TRUE will set the - * #ClutterTimeline:repeat-count property to -1, while setting this - * property to %FALSE will set the #ClutterTimeline:repeat-count - * property to 0. - * - * Deprecated: 1.10: Use the #ClutterTimeline:repeat-count property instead. - */ - obj_props[PROP_LOOP] = - g_param_spec_boolean ("loop", - P_("Loop"), - P_("Should the timeline automatically restart"), - FALSE, - CLUTTER_PARAM_READWRITE | G_PARAM_DEPRECATED); - /** * ClutterTimeline:delay: * @@ -1251,45 +1206,6 @@ clutter_timeline_stop (ClutterTimeline *timeline) g_signal_emit (timeline, timeline_signals[STOPPED], 0, FALSE); } -/** - * clutter_timeline_set_loop: - * @timeline: a #ClutterTimeline - * @loop: %TRUE for enable looping - * - * Sets whether @timeline should loop. - * - * This function is equivalent to calling clutter_timeline_set_repeat_count() - * with -1 if @loop is %TRUE, and with 0 if @loop is %FALSE. - * - * Deprecated: 1.10: Use clutter_timeline_set_repeat_count() instead. - */ -void -clutter_timeline_set_loop (ClutterTimeline *timeline, - gboolean loop) -{ - g_return_if_fail (CLUTTER_IS_TIMELINE (timeline)); - - clutter_timeline_set_loop_internal (timeline, loop); -} - -/** - * clutter_timeline_get_loop: - * @timeline: a #ClutterTimeline - * - * Gets whether @timeline is looping - * - * Return value: %TRUE if the timeline is looping - * - * Deprecated: 1.10: Use clutter_timeline_get_repeat_count() instead. - */ -gboolean -clutter_timeline_get_loop (ClutterTimeline *timeline) -{ - g_return_val_if_fail (CLUTTER_IS_TIMELINE (timeline), FALSE); - - return timeline->priv->repeat_count != 0; -} - /** * clutter_timeline_rewind: * @timeline: A #ClutterTimeline @@ -1405,49 +1321,11 @@ clutter_timeline_is_playing (ClutterTimeline *timeline) return timeline->priv->is_playing; } -/** - * clutter_timeline_clone: - * @timeline: #ClutterTimeline to duplicate. - * - * Create a new #ClutterTimeline instance which has property values - * matching that of supplied timeline. The cloned timeline will not - * be started and will not be positioned to the current position of - * the original @timeline: you will have to start it with - * clutter_timeline_start(). - * - * The only cloned properties are: - * - * - #ClutterTimeline:duration - * - #ClutterTimeline:loop - * - #ClutterTimeline:delay - * - #ClutterTimeline:direction - * - * Return value: (transfer full): a new #ClutterTimeline, cloned - * from @timeline - * - * Since: 0.4 - * - * Deprecated: 1.10: Use clutter_timeline_new() or g_object_new() - * instead - */ -ClutterTimeline * -clutter_timeline_clone (ClutterTimeline *timeline) -{ - g_return_val_if_fail (CLUTTER_IS_TIMELINE (timeline), NULL); - - return g_object_new (CLUTTER_TYPE_TIMELINE, - "duration", timeline->priv->duration, - "loop", timeline->priv->repeat_count != 0, - "delay", timeline->priv->delay, - "direction", timeline->priv->direction, - NULL); -} - /** * clutter_timeline_new: - * @msecs: Duration of the timeline in milliseconds + * @duration_ms: Duration of the timeline in milliseconds * - * Creates a new #ClutterTimeline with a duration of @msecs. + * Creates a new #ClutterTimeline with a duration of @duration_ms milli seconds. * * Return value: the newly created #ClutterTimeline instance. Use * g_object_unref() when done using it @@ -1455,10 +1333,10 @@ clutter_timeline_clone (ClutterTimeline *timeline) * Since: 0.6 */ ClutterTimeline * -clutter_timeline_new (guint msecs) +clutter_timeline_new (guint duration_ms) { return g_object_new (CLUTTER_TYPE_TIMELINE, - "duration", msecs, + "duration", duration_ms, NULL); } diff --git a/clutter/clutter/clutter-timeline.h b/clutter/clutter/clutter-timeline.h index 656a4c5033f556cd4e8c4382c2f6b1bbb3473cce..d6a5dde7b2cdd5ca3a0e8bf44d56f9e229a5344f 100644 --- a/clutter/clutter/clutter-timeline.h +++ b/clutter/clutter/clutter-timeline.h @@ -119,7 +119,7 @@ CLUTTER_EXPORT GType clutter_timeline_get_type (void) G_GNUC_CONST; CLUTTER_EXPORT -ClutterTimeline * clutter_timeline_new (guint msecs); +ClutterTimeline * clutter_timeline_new (guint duration_ms); CLUTTER_EXPORT guint clutter_timeline_get_duration (ClutterTimeline *timeline); diff --git a/clutter/clutter/deprecated/clutter-timeline.h b/clutter/clutter/deprecated/clutter-timeline.h index 950362e90350da57306592c800caf83443f62769..f51650add07727a5389fe8ecd9ab33e5c6d978af 100644 --- a/clutter/clutter/deprecated/clutter-timeline.h +++ b/clutter/clutter/deprecated/clutter-timeline.h @@ -26,16 +26,6 @@ G_BEGIN_DECLS -CLUTTER_DEPRECATED_FOR(clutter_timeline_new) -ClutterTimeline * clutter_timeline_clone (ClutterTimeline *timeline); - -CLUTTER_DEPRECATED_FOR(clutter_timeline_set_repeat_count) -void clutter_timeline_set_loop (ClutterTimeline *timeline, - gboolean loop); - -CLUTTER_DEPRECATED_FOR(clutter_timeline_get_repeat_count) -gboolean clutter_timeline_get_loop (ClutterTimeline *timeline); - G_END_DECLS #endif /* __CLUTTER_TIMELINE_PRIVATE_H__ */ diff --git a/cogl/cogl/cogl-frame-info-private.h b/cogl/cogl/cogl-frame-info-private.h index 16d393e1cc105c35225059849c33fecedca06da7..f0324f2517c6c8632528393f0afde4b1d59319b9 100644 --- a/cogl/cogl/cogl-frame-info-private.h +++ b/cogl/cogl/cogl-frame-info-private.h @@ -43,8 +43,6 @@ struct _CoglFrameInfo float refresh_rate; int64_t global_frame_counter; - - CoglOutput *output; }; CoglFrameInfo *_cogl_frame_info_new (void); diff --git a/cogl/cogl/cogl-frame-info.c b/cogl/cogl/cogl-frame-info.c index 0455db1c1161ec5de1c358614ea9fe4cb95d5231..1071495a04a960a70f5d50eefac89ca0537aba84 100644 --- a/cogl/cogl/cogl-frame-info.c +++ b/cogl/cogl/cogl-frame-info.c @@ -72,12 +72,6 @@ cogl_frame_info_get_refresh_rate (CoglFrameInfo *info) return info->refresh_rate; } -CoglOutput * -cogl_frame_info_get_output (CoglFrameInfo *info) -{ - return info->output; -} - int64_t cogl_frame_info_get_global_frame_counter (CoglFrameInfo *info) { diff --git a/cogl/cogl/cogl-frame-info.h b/cogl/cogl/cogl-frame-info.h index e35336b00f484816259abb19f0646f1137305037..8acbb34bd194d6098be8912b00bd4972cdde6cb2 100644 --- a/cogl/cogl/cogl-frame-info.h +++ b/cogl/cogl/cogl-frame-info.h @@ -126,20 +126,6 @@ int64_t cogl_frame_info_get_presentation_time (CoglFrameInfo *info); COGL_EXPORT float cogl_frame_info_get_refresh_rate (CoglFrameInfo *info); -/** - * cogl_frame_info_get_output: - * @info: a #CoglFrameInfo object - * - * Gets the #CoglOutput that the swapped frame was presented to. - * - * Return value: (transfer none): The #CoglOutput that the frame was - * presented to, or %NULL if this could not be determined. - * Since: 1.14 - * Stability: unstable - */ -COGL_EXPORT CoglOutput * -cogl_frame_info_get_output (CoglFrameInfo *info); - /** * cogl_frame_info_get_global_frame_counter: (skip) */ diff --git a/cogl/cogl/winsys/cogl-winsys-glx.c b/cogl/cogl/winsys/cogl-winsys-glx.c index c2deaeb8b32026ab38706ed4360505fe9ea26b84..86d5acd05f6eabd4af4b89959f4fc4bbb8f86156 100644 --- a/cogl/cogl/winsys/cogl-winsys-glx.c +++ b/cogl/cogl/winsys/cogl-winsys-glx.c @@ -1662,8 +1662,6 @@ set_frame_info_output (CoglOnscreen *onscreen, { CoglFrameInfo *info = g_queue_peek_tail (&onscreen->pending_frame_infos); - info->output = output; - if (output) { float refresh_rate = cogl_output_get_refresh_rate (output); diff --git a/src/backends/meta-backend-private.h b/src/backends/meta-backend-private.h index 5b0c849ec700e005a6f8f95a34a675203ced534f..f93b5760a4047914ce5020051b112f1dde773c3b 100644 --- a/src/backends/meta-backend-private.h +++ b/src/backends/meta-backend-private.h @@ -156,10 +156,6 @@ xkb_layout_index_t meta_backend_get_keymap_layout_group (MetaBackend *backend); gboolean meta_backend_is_lid_closed (MetaBackend *backend); -void meta_backend_freeze_updates (MetaBackend *backend); - -void meta_backend_thaw_updates (MetaBackend *backend); - void meta_backend_update_last_device (MetaBackend *backend, ClutterInputDevice *device); diff --git a/src/backends/meta-backend-types.h b/src/backends/meta-backend-types.h index 2961a8b206b2626b67fa4ccadbb9f1998c610fb6..a88d8e1afea2569d728a4f24d97f9e7dd5edb119 100644 --- a/src/backends/meta-backend-types.h +++ b/src/backends/meta-backend-types.h @@ -21,6 +21,8 @@ #ifndef META_BACKEND_TYPE_H #define META_BACKEND_TYPE_H +typedef struct _MetaBackend MetaBackend; + typedef struct _MetaMonitorManager MetaMonitorManager; typedef struct _MetaMonitorConfigManager MetaMonitorConfigManager; diff --git a/src/backends/meta-backend.c b/src/backends/meta-backend.c index f57a785801c36f49a0f385e32b2e71ff2cd17be5..39f2754896e3a8da4569698f4566081b2bb7ddc2 100644 --- a/src/backends/meta-backend.c +++ b/src/backends/meta-backend.c @@ -575,12 +575,6 @@ meta_backend_real_post_init (MetaBackend *backend) } } -static MetaCursorRenderer * -meta_backend_real_create_cursor_renderer (MetaBackend *backend) -{ - return meta_cursor_renderer_new (); -} - static gboolean meta_backend_real_grab_device (MetaBackend *backend, int device_id, @@ -762,7 +756,6 @@ meta_backend_class_init (MetaBackendClass *klass) object_class->constructed = meta_backend_constructed; klass->post_init = meta_backend_real_post_init; - klass->create_cursor_renderer = meta_backend_real_create_cursor_renderer; klass->grab_device = meta_backend_real_grab_device; klass->ungrab_device = meta_backend_real_ungrab_device; klass->select_stage_events = meta_backend_real_select_stage_events; @@ -1275,24 +1268,6 @@ meta_backend_get_stage (MetaBackend *backend) return priv->stage; } -void -meta_backend_freeze_updates (MetaBackend *backend) -{ - ClutterStage *stage; - - stage = CLUTTER_STAGE (meta_backend_get_stage (backend)); - clutter_stage_freeze_updates (stage); -} - -void -meta_backend_thaw_updates (MetaBackend *backend) -{ - ClutterStage *stage; - - stage = CLUTTER_STAGE (meta_backend_get_stage (backend)); - clutter_stage_thaw_updates (stage); -} - static gboolean update_last_device (MetaBackend *backend) { diff --git a/src/backends/meta-cursor-renderer.c b/src/backends/meta-cursor-renderer.c index b342a98f39fc775cf34527d7a7016d0f1de5cfb9..485e96a8df6bd2ecacfe86c645ff143722cb7a67 100644 --- a/src/backends/meta-cursor-renderer.c +++ b/src/backends/meta-cursor-renderer.c @@ -38,8 +38,21 @@ G_DEFINE_INTERFACE (MetaHwCursorInhibitor, meta_hw_cursor_inhibitor, G_TYPE_OBJECT) +enum +{ + PROP_0, + + PROP_BACKEND, + + N_PROPS +}; + +static GParamSpec *obj_props[N_PROPS]; + struct _MetaCursorRendererPrivate { + MetaBackend *backend; + float current_x; float current_y; @@ -89,8 +102,7 @@ align_cursor_position (MetaCursorRenderer *renderer, { MetaCursorRendererPrivate *priv = meta_cursor_renderer_get_instance_private (renderer); - MetaBackend *backend = meta_get_backend (); - ClutterActor *stage = meta_backend_get_stage (backend); + ClutterActor *stage = meta_backend_get_stage (priv->backend); ClutterStageView *view; cairo_rectangle_int_t view_layout; float view_scale; @@ -115,8 +127,7 @@ queue_redraw (MetaCursorRenderer *renderer, MetaCursorSprite *cursor_sprite) { MetaCursorRendererPrivate *priv = meta_cursor_renderer_get_instance_private (renderer); - MetaBackend *backend = meta_get_backend (); - ClutterActor *stage = meta_backend_get_stage (backend); + ClutterActor *stage = meta_backend_get_stage (priv->backend); CoglTexture *texture; graphene_rect_t rect = GRAPHENE_RECT_INIT_ZERO; @@ -165,13 +176,54 @@ meta_cursor_renderer_real_update_cursor (MetaCursorRenderer *renderer, return FALSE; } +static void +meta_cursor_renderer_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec) +{ + MetaCursorRenderer *renderer = META_CURSOR_RENDERER (object); + MetaCursorRendererPrivate *priv = + meta_cursor_renderer_get_instance_private (renderer); + + switch (prop_id) + { + case PROP_BACKEND: + g_value_set_object (value, priv->backend); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +meta_cursor_renderer_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec) +{ + MetaCursorRenderer *renderer = META_CURSOR_RENDERER (object); + MetaCursorRendererPrivate *priv = + meta_cursor_renderer_get_instance_private (renderer); + + switch (prop_id) + { + case PROP_BACKEND: + priv->backend = g_value_get_object (value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + static void meta_cursor_renderer_finalize (GObject *object) { MetaCursorRenderer *renderer = META_CURSOR_RENDERER (object); MetaCursorRendererPrivate *priv = meta_cursor_renderer_get_instance_private (renderer); - MetaBackend *backend = meta_get_backend (); - ClutterActor *stage = meta_backend_get_stage (backend); + ClutterActor *stage = meta_backend_get_stage (priv->backend); if (priv->stage_overlay) meta_stage_remove_cursor_overlay (META_STAGE (stage), priv->stage_overlay); @@ -186,9 +238,21 @@ meta_cursor_renderer_class_init (MetaCursorRendererClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); + object_class->get_property = meta_cursor_renderer_get_property; + object_class->set_property = meta_cursor_renderer_set_property; object_class->finalize = meta_cursor_renderer_finalize; klass->update_cursor = meta_cursor_renderer_real_update_cursor; + obj_props[PROP_BACKEND] = + g_param_spec_object ("backend", + "backend", + "MetaBackend", + META_TYPE_BACKEND, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT_ONLY | + G_PARAM_STATIC_STRINGS); + g_object_class_install_properties (object_class, N_PROPS, obj_props); + signals[CURSOR_PAINTED] = g_signal_new ("cursor-painted", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST, @@ -273,9 +337,11 @@ meta_cursor_renderer_update_cursor (MetaCursorRenderer *renderer, } MetaCursorRenderer * -meta_cursor_renderer_new (void) +meta_cursor_renderer_new (MetaBackend *backend) { - return g_object_new (META_TYPE_CURSOR_RENDERER, NULL); + return g_object_new (META_TYPE_CURSOR_RENDERER, + "backend", backend, + NULL); } void diff --git a/src/backends/meta-cursor-renderer.h b/src/backends/meta-cursor-renderer.h index 852551355051e65ee614e68becad59959b85cd44..15b2bfca6e847bef3d9c36a3579a40292997b9b4 100644 --- a/src/backends/meta-cursor-renderer.h +++ b/src/backends/meta-cursor-renderer.h @@ -54,7 +54,7 @@ struct _MetaCursorRendererClass MetaCursorSprite *cursor_sprite); }; -MetaCursorRenderer * meta_cursor_renderer_new (void); +MetaCursorRenderer * meta_cursor_renderer_new (MetaBackend *backend); void meta_cursor_renderer_set_cursor (MetaCursorRenderer *renderer, MetaCursorSprite *cursor_sprite); diff --git a/src/backends/native/meta-backend-native.c b/src/backends/native/meta-backend-native.c index e5a16f3374ffd1da97b47b3bd0b3439933d418e0..4e97ba7863b11552d58051a157651a3e1d2c682f 100644 --- a/src/backends/native/meta-backend-native.c +++ b/src/backends/native/meta-backend-native.c @@ -340,7 +340,7 @@ meta_backend_native_create_clutter_backend (MetaBackend *backend) static void meta_backend_native_post_init (MetaBackend *backend) { - ClutterBackend *clutter_backend = clutter_get_default_backend (); + ClutterBackend *clutter_backend = meta_backend_get_clutter_backend (backend); ClutterSeat *seat = clutter_backend_get_default_seat (clutter_backend); MetaSettings *settings = meta_backend_get_settings (backend); @@ -425,6 +425,7 @@ meta_backend_native_set_keymap (MetaBackend *backend, const char *variants, const char *options) { + ClutterBackend *clutter_backend = meta_backend_get_clutter_backend (backend); struct xkb_rule_names names; struct xkb_keymap *keymap; struct xkb_context *context; @@ -440,7 +441,7 @@ meta_backend_native_set_keymap (MetaBackend *backend, keymap = xkb_keymap_new_from_names (context, &names, XKB_KEYMAP_COMPILE_NO_FLAGS); xkb_context_unref (context); - seat = clutter_backend_get_default_seat (clutter_get_default_backend ()); + seat = clutter_backend_get_default_seat (clutter_backend); meta_seat_native_set_keyboard_map (META_SEAT_NATIVE (seat), keymap); meta_backend_notify_keymap_changed (backend); @@ -451,18 +452,20 @@ meta_backend_native_set_keymap (MetaBackend *backend, static struct xkb_keymap * meta_backend_native_get_keymap (MetaBackend *backend) { + ClutterBackend *clutter_backend = meta_backend_get_clutter_backend (backend); ClutterSeat *seat; - seat = clutter_backend_get_default_seat (clutter_get_default_backend ()); + seat = clutter_backend_get_default_seat (clutter_backend); return meta_seat_native_get_keyboard_map (META_SEAT_NATIVE (seat)); } static xkb_layout_index_t meta_backend_native_get_keymap_layout_group (MetaBackend *backend) { + ClutterBackend *clutter_backend = meta_backend_get_clutter_backend (backend); ClutterSeat *seat; - seat = clutter_backend_get_default_seat (clutter_get_default_backend ()); + seat = clutter_backend_get_default_seat (clutter_backend); return meta_seat_native_get_keyboard_layout_index (META_SEAT_NATIVE (seat)); } @@ -470,6 +473,7 @@ static void meta_backend_native_lock_layout_group (MetaBackend *backend, guint idx) { + ClutterBackend *clutter_backend = meta_backend_get_clutter_backend (backend); xkb_layout_index_t old_idx; ClutterSeat *seat; @@ -477,7 +481,7 @@ meta_backend_native_lock_layout_group (MetaBackend *backend, if (old_idx == idx) return; - seat = clutter_backend_get_default_seat (clutter_get_default_backend ()); + seat = clutter_backend_get_default_seat (clutter_backend); meta_seat_native_set_keyboard_layout_index (META_SEAT_NATIVE (seat), idx); meta_backend_notify_keymap_layout_group_changed (backend, idx); } @@ -486,9 +490,10 @@ static void meta_backend_native_set_numlock (MetaBackend *backend, gboolean numlock_state) { + ClutterBackend *clutter_backend = meta_backend_get_clutter_backend (backend); ClutterSeat *seat; - seat = clutter_backend_get_default_seat (clutter_get_default_backend ()); + seat = clutter_backend_get_default_seat (clutter_backend); meta_seat_native_set_keyboard_numlock (META_SEAT_NATIVE (seat), numlock_state); } @@ -780,7 +785,7 @@ meta_backend_native_pause (MetaBackendNative *native) meta_backend_get_monitor_manager (backend); MetaMonitorManagerKms *monitor_manager_kms = META_MONITOR_MANAGER_KMS (monitor_manager); - ClutterBackend *clutter_backend = clutter_get_default_backend (); + ClutterBackend *clutter_backend = meta_backend_get_clutter_backend (backend); MetaSeatNative *seat = META_SEAT_NATIVE (clutter_backend_get_default_seat (clutter_backend)); @@ -805,7 +810,7 @@ void meta_backend_native_resume (MetaBackendNative *native) META_MONITOR_MANAGER_KMS (monitor_manager); MetaInputSettings *input_settings; MetaIdleMonitor *idle_monitor; - ClutterBackend *clutter_backend = clutter_get_default_backend (); + ClutterBackend *clutter_backend = meta_backend_get_clutter_backend (backend); MetaSeatNative *seat = META_SEAT_NATIVE (clutter_backend_get_default_seat (clutter_backend)); diff --git a/src/backends/native/meta-cursor-renderer-native.c b/src/backends/native/meta-cursor-renderer-native.c index 578a9a0a0cfb74e328711ff0ff86d62608cc936f..8875ce15f4f7521a78669483a96982b35f7d71cc 100644 --- a/src/backends/native/meta-cursor-renderer-native.c +++ b/src/backends/native/meta-cursor-renderer-native.c @@ -1719,8 +1719,9 @@ meta_cursor_renderer_native_new (MetaBackend *backend) MetaCursorRendererNative *cursor_renderer_native; MetaCursorRendererNativePrivate *priv; - cursor_renderer_native = - g_object_new (META_TYPE_CURSOR_RENDERER_NATIVE, NULL); + cursor_renderer_native = g_object_new (META_TYPE_CURSOR_RENDERER_NATIVE, + "backend", backend, + NULL); priv = meta_cursor_renderer_native_get_instance_private (cursor_renderer_native); diff --git a/src/backends/x11/cm/meta-backend-x11-cm.c b/src/backends/x11/cm/meta-backend-x11-cm.c index e5ebd68f2b42e7837b8201d9751a363eb34c5bb8..35f1fd4c2fcc3fd583f09c380b531bac1bf911d6 100644 --- a/src/backends/x11/cm/meta-backend-x11-cm.c +++ b/src/backends/x11/cm/meta-backend-x11-cm.c @@ -117,7 +117,9 @@ meta_backend_x11_cm_create_monitor_manager (MetaBackend *backend, static MetaCursorRenderer * meta_backend_x11_cm_create_cursor_renderer (MetaBackend *backend) { - return g_object_new (META_TYPE_CURSOR_RENDERER_X11, NULL); + return g_object_new (META_TYPE_CURSOR_RENDERER_X11, + "backend", backend, + NULL); } static MetaInputSettings * diff --git a/src/backends/x11/nested/meta-backend-x11-nested.c b/src/backends/x11/nested/meta-backend-x11-nested.c index def74bb749b3af61be27d76d66c0481a708704ed..37d611eb340ae44b8aad4f326eb8f36acff9856a 100644 --- a/src/backends/x11/nested/meta-backend-x11-nested.c +++ b/src/backends/x11/nested/meta-backend-x11-nested.c @@ -65,7 +65,9 @@ meta_backend_x11_nested_create_monitor_manager (MetaBackend *backend, static MetaCursorRenderer * meta_backend_x11_nested_create_cursor_renderer (MetaBackend *backend) { - return g_object_new (META_TYPE_CURSOR_RENDERER_X11_NESTED, NULL); + return g_object_new (META_TYPE_CURSOR_RENDERER_X11_NESTED, + "backend", backend, + NULL); } static MetaInputSettings * diff --git a/src/compositor/compositor.c b/src/compositor/compositor.c index d45d507432a5c05ac009dbc6ffda3d08a9e9cbbe..5918c904742964bc7c86025dca8f00788537efc1 100644 --- a/src/compositor/compositor.c +++ b/src/compositor/compositor.c @@ -91,6 +91,7 @@ enum PROP_0, PROP_DISPLAY, + PROP_BACKEND, N_PROPS }; @@ -111,6 +112,7 @@ typedef struct _MetaCompositorPrivate GObject parent; MetaDisplay *display; + MetaBackend *backend; guint pre_paint_func_id; guint post_paint_func_id; @@ -231,7 +233,7 @@ meta_get_stage_for_display (MetaDisplay *display) g_return_val_if_fail (compositor, NULL); priv = meta_compositor_get_instance_private (compositor); - return priv->stage; + return meta_backend_get_stage (priv->backend); } /** @@ -564,12 +566,11 @@ meta_compositor_do_manage (MetaCompositor *compositor, MetaCompositorPrivate *priv = meta_compositor_get_instance_private (compositor); MetaDisplay *display = priv->display; - MetaBackend *backend = meta_get_backend (); - - priv->stage = meta_backend_get_stage (backend); + MetaBackend *backend = priv->backend; + ClutterActor *stage = meta_backend_get_stage (backend); priv->stage_presented_id = - g_signal_connect (priv->stage, "presented", + g_signal_connect (stage, "presented", G_CALLBACK (on_presented), compositor); @@ -582,18 +583,18 @@ meta_compositor_do_manage (MetaCompositor *compositor, * matter. */ priv->stage_after_paint_id = - g_signal_connect_after (priv->stage, "after-paint", + g_signal_connect_after (stage, "after-paint", G_CALLBACK (after_stage_paint), compositor); - clutter_stage_set_sync_delay (CLUTTER_STAGE (priv->stage), META_SYNC_DELAY); + clutter_stage_set_sync_delay (CLUTTER_STAGE (stage), META_SYNC_DELAY); priv->window_group = meta_window_group_new (display); priv->top_window_group = meta_window_group_new (display); priv->feedback_group = meta_window_group_new (display); - clutter_actor_add_child (priv->stage, priv->window_group); - clutter_actor_add_child (priv->stage, priv->top_window_group); - clutter_actor_add_child (priv->stage, priv->feedback_group); + clutter_actor_add_child (stage, priv->window_group); + clutter_actor_add_child (stage, priv->top_window_group); + clutter_actor_add_child (stage, priv->feedback_group); if (!META_COMPOSITOR_GET_CLASS (compositor)->manage (compositor, error)) return FALSE; @@ -1162,7 +1163,7 @@ meta_compositor_real_post_paint (MetaCompositor *compositor) case COGL_GRAPHICS_RESET_STATUS_PURGED_CONTEXT_RESET: g_signal_emit_by_name (priv->display, "gl-video-memory-purged"); - clutter_actor_queue_redraw (CLUTTER_ACTOR (priv->stage)); + clutter_actor_queue_redraw (meta_backend_get_stage (priv->backend)); break; default: @@ -1211,6 +1212,9 @@ meta_compositor_set_property (GObject *object, case PROP_DISPLAY: priv->display = g_value_get_object (value); break; + case PROP_BACKEND: + priv->backend = g_value_get_object (value); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); } @@ -1231,6 +1235,9 @@ meta_compositor_get_property (GObject *object, case PROP_DISPLAY: g_value_set_object (value, priv->display); break; + case PROP_BACKEND: + g_value_set_object (value, priv->backend); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); } @@ -1266,11 +1273,12 @@ meta_compositor_dispose (GObject *object) MetaCompositor *compositor = META_COMPOSITOR (object); MetaCompositorPrivate *priv = meta_compositor_get_instance_private (compositor); + ClutterActor *stage = meta_backend_get_stage (priv->backend); g_clear_pointer (&priv->laters, meta_laters_free); - g_clear_signal_handler (&priv->stage_after_paint_id, priv->stage); - g_clear_signal_handler (&priv->stage_presented_id, priv->stage); + g_clear_signal_handler (&priv->stage_after_paint_id, stage); + g_clear_signal_handler (&priv->stage_presented_id, stage); g_clear_handle_id (&priv->pre_paint_func_id, clutter_threads_remove_repaint_func); @@ -1309,6 +1317,14 @@ meta_compositor_class_init (MetaCompositorClass *klass) G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS); + obj_props[PROP_BACKEND] = + g_param_spec_object ("backend", + "backend", + "MetaBackend", + META_TYPE_BACKEND, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT_ONLY | + G_PARAM_STATIC_STRINGS); g_object_class_install_properties (object_class, N_PROPS, obj_props); signals[PRE_PAINT] = @@ -1615,7 +1631,7 @@ meta_compositor_get_stage (MetaCompositor *compositor) MetaCompositorPrivate *priv = meta_compositor_get_instance_private (compositor); - return CLUTTER_STAGE (priv->stage); + return CLUTTER_STAGE (meta_backend_get_stage (priv->backend)); } MetaWindowActor * diff --git a/src/compositor/meta-compositor-native.c b/src/compositor/meta-compositor-native.c index 85929c03539187113d9ec9a5686fa95e58ba946f..cbbca374ba0886ba8894db6da187955f5a9aaf87 100644 --- a/src/compositor/meta-compositor-native.c +++ b/src/compositor/meta-compositor-native.c @@ -127,10 +127,12 @@ meta_compositor_native_pre_paint (MetaCompositor *compositor) } MetaCompositorNative * -meta_compositor_native_new (MetaDisplay *display) +meta_compositor_native_new (MetaDisplay *display, + MetaBackend *backend) { return g_object_new (META_TYPE_COMPOSITOR_NATIVE, "display", display, + "backend", backend, NULL); } diff --git a/src/compositor/meta-compositor-native.h b/src/compositor/meta-compositor-native.h index d276a5905fd2ce7e59523d2089a1f422abfa97ad..2b1c652087efb0e79dbe61bda41d044223abca90 100644 --- a/src/compositor/meta-compositor-native.h +++ b/src/compositor/meta-compositor-native.h @@ -27,6 +27,7 @@ G_DECLARE_FINAL_TYPE (MetaCompositorNative, meta_compositor_native, META, COMPOSITOR_NATIVE, MetaCompositor) -MetaCompositorNative * meta_compositor_native_new (MetaDisplay *display); +MetaCompositorNative * meta_compositor_native_new (MetaDisplay *display, + MetaBackend *backend); #endif /* META_COMPOSITOR_NATIVE_H */ diff --git a/src/compositor/meta-compositor-server.c b/src/compositor/meta-compositor-server.c index f61f55560bd38a7ee11339eadf62950218b7f960..f53c10a196ec1576acac6a58782744e204db1d6e 100644 --- a/src/compositor/meta-compositor-server.c +++ b/src/compositor/meta-compositor-server.c @@ -37,10 +37,12 @@ meta_compositor_server_unmanage (MetaCompositor *compositor) } MetaCompositorServer * -meta_compositor_server_new (MetaDisplay *display) +meta_compositor_server_new (MetaDisplay *display, + MetaBackend *backend) { return g_object_new (META_TYPE_COMPOSITOR_SERVER, "display", display, + "backend", backend, NULL); } diff --git a/src/compositor/meta-compositor-server.h b/src/compositor/meta-compositor-server.h index 8b4a92748ad11696ced010382d1565d2b97bf4f4..2bf8d5ec3bcde6a918206b66b83c20bd9678793b 100644 --- a/src/compositor/meta-compositor-server.h +++ b/src/compositor/meta-compositor-server.h @@ -32,6 +32,7 @@ struct _MetaCompositorServerClass MetaCompositorClass parent_class; }; -MetaCompositorServer * meta_compositor_server_new (MetaDisplay *display); +MetaCompositorServer * meta_compositor_server_new (MetaDisplay *display, + MetaBackend *backend); #endif /* META_COMPOSITOR_SERVER_H */ diff --git a/src/compositor/meta-compositor-x11.c b/src/compositor/meta-compositor-x11.c index 211b907e9dd4ff425939cb8380753e2d7104ad6e..0ab4aa0320adf142c55f08d4ee355a75edc3ee78 100644 --- a/src/compositor/meta-compositor-x11.c +++ b/src/compositor/meta-compositor-x11.c @@ -371,10 +371,12 @@ meta_compositor_x11_get_output_xwindow (MetaCompositorX11 *compositor_x11) } MetaCompositorX11 * -meta_compositor_x11_new (MetaDisplay *display) +meta_compositor_x11_new (MetaDisplay *display, + MetaBackend *backend) { return g_object_new (META_TYPE_COMPOSITOR_X11, "display", display, + "backend", backend, NULL); } diff --git a/src/compositor/meta-compositor-x11.h b/src/compositor/meta-compositor-x11.h index 7165493cdcf850303bb202412b6773717bcc72a5..42554feb3994cb960358121467b0ccb48c2ce0cd 100644 --- a/src/compositor/meta-compositor-x11.h +++ b/src/compositor/meta-compositor-x11.h @@ -27,7 +27,8 @@ G_DECLARE_FINAL_TYPE (MetaCompositorX11, meta_compositor_x11, META, COMPOSITOR_X11, MetaCompositor) -MetaCompositorX11 * meta_compositor_x11_new (MetaDisplay *display); +MetaCompositorX11 * meta_compositor_x11_new (MetaDisplay *display, + MetaBackend *backend); void meta_compositor_x11_process_xevent (MetaCompositorX11 *compositor_x11, XEvent *xevent, diff --git a/src/core/display.c b/src/core/display.c index d49475dcb27b16e57473a657757834b291ddaadb..4f2ed6c600fb0e9e3288772abced8a1db98058df 100644 --- a/src/core/display.c +++ b/src/core/display.c @@ -573,17 +573,17 @@ meta_display_remove_pending_pings_for_window (MetaDisplay *display, static MetaCompositor * create_compositor (MetaDisplay *display) { -#ifdef HAVE_WAYLAND MetaBackend *backend = meta_get_backend (); +#ifdef HAVE_WAYLAND #ifdef HAVE_NATIVE_BACKEND if (META_IS_BACKEND_NATIVE (backend)) - return META_COMPOSITOR (meta_compositor_native_new (display)); + return META_COMPOSITOR (meta_compositor_native_new (display, backend)); #endif if (META_IS_BACKEND_X11_NESTED (backend)) - return META_COMPOSITOR (meta_compositor_server_new (display)); + return META_COMPOSITOR (meta_compositor_server_new (display, backend)); #endif - return META_COMPOSITOR (meta_compositor_x11_new (display)); + return META_COMPOSITOR (meta_compositor_x11_new (display, backend)); } static void diff --git a/src/tests/clutter-test-utils.c b/src/tests/clutter-test-utils.c index 59db1021a4863cb41b033ad57449bbd809f64fae..4f387e2bf02f0f8914c1b4767c13793154b2ad23 100644 --- a/src/tests/clutter-test-utils.c +++ b/src/tests/clutter-test-utils.c @@ -5,8 +5,6 @@ #include typedef struct { - ClutterActor *stage; - guint no_display : 1; } ClutterTestEnvironment; @@ -98,18 +96,9 @@ out: ClutterActor * clutter_test_get_stage (void) { - g_assert (test_environ != NULL); + MetaBackend *backend = meta_get_backend (); - if (test_environ->stage == NULL) - { - /* create a stage, and ensure that it goes away at the end */ - test_environ->stage = clutter_stage_new (); - clutter_actor_set_name (test_environ->stage, "Test Stage"); - g_object_add_weak_pointer (G_OBJECT (test_environ->stage), - (gpointer *) &test_environ->stage); - } - - return test_environ->stage; + return meta_backend_get_stage (backend); } typedef struct { @@ -122,11 +111,13 @@ static void clutter_test_func_wrapper (gconstpointer data_) { const ClutterTestData *data = data_; + ClutterActor *stage; g_test_log_set_fatal_handler (log_func, NULL); /* ensure that the previous test state has been cleaned up */ - g_assert_null (test_environ->stage); + stage = clutter_test_get_stage (); + g_assert_false (clutter_actor_is_mapped (stage)); if (test_environ->no_display) { @@ -151,11 +142,8 @@ out: if (data->test_notify != NULL) data->test_notify (data->test_data); - if (test_environ->stage != NULL) - { - clutter_actor_destroy (test_environ->stage); - g_assert_null (test_environ->stage); - } + clutter_actor_remove_all_children (stage); + clutter_actor_hide (stage); } /** diff --git a/src/tests/clutter/conform/actor-anchors.c b/src/tests/clutter/conform/actor-anchors.c index bd934ff1406cb739a316fa0bd0bd9074e06f8a2c..bae204f16bfcca7a00283ea0670c3fabcacac2b5 100644 --- a/src/tests/clutter/conform/actor-anchors.c +++ b/src/tests/clutter/conform/actor-anchors.c @@ -132,7 +132,7 @@ check_coords (TestState *state, gint y_2, const graphene_point3d_t *verts) { - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("checking that (%i,%i,%i,%i) \xe2\x89\x88 (%i,%i,%i,%i): %s\n", x_1, y_1, x_2, y_2, (int) (verts[0].x), @@ -200,7 +200,7 @@ test_anchor_point (TestState *state) /* Change the anchor point with each of the gravities */ for (i = 0; i < G_N_ELEMENTS (gravities); i++) { - if (g_test_verbose ()) + if (!g_test_quiet ()) { GEnumClass *gravity_class = g_type_class_ref (CLUTTER_TYPE_GRAVITY); GEnumValue *value = g_enum_get_value (gravity_class, @@ -356,7 +356,7 @@ test_scale_center (TestState *state) /* Change the anchor point with each of the gravities */ for (i = 0; i < G_N_ELEMENTS (gravities); i++) { - if (g_test_verbose ()) + if (!g_test_quiet ()) { GEnumClass *gravity_class = g_type_class_ref (CLUTTER_TYPE_GRAVITY); GEnumValue *value = g_enum_get_value (gravity_class, @@ -472,7 +472,7 @@ test_rotate_center (TestState *state) char prop_name[] = "rotation-angle- "; prop_name[sizeof (prop_name) - 2] = i - CLUTTER_X_AXIS + 'x'; - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("Setting %s to 90 degrees\n", prop_name); g_object_set (rect, prop_name, 90.0, NULL); @@ -531,7 +531,7 @@ test_rotate_center (TestState *state) char prop_name[] = "rotation-angle- "; prop_name[sizeof (prop_name) - 2] = i - CLUTTER_X_AXIS + 'x'; - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("Setting %s to 90 degrees with center 10,20,0\n", prop_name); clutter_actor_set_rotation (rect, i, 90.0, 10, 20, 0); @@ -605,7 +605,7 @@ test_rotate_center (TestState *state) /* Try rotating the z with all of the gravities */ for (i = 0; i < G_N_ELEMENTS (gravities); i++) { - if (g_test_verbose ()) + if (!g_test_quiet ()) { GEnumClass *gravity_class = g_type_class_ref (CLUTTER_TYPE_GRAVITY); GEnumValue *value = g_enum_get_value (gravity_class, diff --git a/src/tests/clutter/conform/actor-destroy.c b/src/tests/clutter/conform/actor-destroy.c index 09a931d79586c2325fafcaebf2270848650ffc52..64ef94e5f65e4c486013eb849f5a797ae4f07a25 100644 --- a/src/tests/clutter/conform/actor-destroy.c +++ b/src/tests/clutter/conform/actor-destroy.c @@ -39,7 +39,7 @@ test_destroy_add (ClutterContainer *container, { TestDestroy *self = TEST_DESTROY (container); - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("Adding '%s' (type:%s)\n", clutter_actor_get_name (actor), G_OBJECT_TYPE_NAME (actor)); @@ -54,7 +54,7 @@ test_destroy_remove (ClutterContainer *container, { TestDestroy *self = TEST_DESTROY (container); - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("Removing '%s' (type:%s)\n", clutter_actor_get_name (actor), G_OBJECT_TYPE_NAME (actor)); @@ -81,7 +81,7 @@ test_destroy_destroy (ClutterActor *self) if (test->bg != NULL) { - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("Destroying '%s' (type:%s)\n", clutter_actor_get_name (test->bg), G_OBJECT_TYPE_NAME (test->bg)); @@ -92,7 +92,7 @@ test_destroy_destroy (ClutterActor *self) if (test->label != NULL) { - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("Destroying '%s' (type:%s)\n", clutter_actor_get_name (test->label), G_OBJECT_TYPE_NAME (test->label)); @@ -174,7 +174,7 @@ actor_destruction (void) g_object_add_weak_pointer (G_OBJECT (test), (gpointer *) &test); g_object_add_weak_pointer (G_OBJECT (child), (gpointer *) &child); - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("Adding external child...\n"); clutter_actor_set_name (child, "Child"); @@ -184,7 +184,7 @@ actor_destruction (void) g_signal_connect (child, "notify", G_CALLBACK (on_notify), &property_changed); g_signal_connect (child, "destroy", G_CALLBACK (on_destroy), &destroy_called); - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("Calling destroy()...\n"); clutter_actor_destroy (test); diff --git a/src/tests/clutter/conform/actor-graph.c b/src/tests/clutter/conform/actor-graph.c index b388fe127f43aac4c52d424be49839eacba89cdc..06255ebe8a3381da407856ecacdafaccde6bd305 100644 --- a/src/tests/clutter/conform/actor-graph.c +++ b/src/tests/clutter/conform/actor-graph.c @@ -408,7 +408,7 @@ actor_added (ClutterContainer *container, int *counter = data; ClutterActor *old_child; - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("Adding actor '%s'\n", clutter_actor_get_name (child)); old_child = clutter_actor_get_child_at_index (actor, 0); @@ -425,7 +425,7 @@ actor_removed (ClutterContainer *container, { int *counter = data; - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("Removing actor '%s'\n", clutter_actor_get_name (child)); *counter += 1; diff --git a/src/tests/clutter/conform/actor-invariants.c b/src/tests/clutter/conform/actor-invariants.c index 42dad3a0437796574837df57e619d070e58354e8..03a5a78f4a5eb692ae21b15f55921856182e1199 100644 --- a/src/tests/clutter/conform/actor-invariants.c +++ b/src/tests/clutter/conform/actor-invariants.c @@ -15,7 +15,7 @@ actor_initial_state (void) g_object_ref_sink (actor); g_object_add_weak_pointer (G_OBJECT (actor), (gpointer *) &actor); - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("initial state - visible: %s, realized: %s, mapped: %s\n", CLUTTER_ACTOR_IS_VISIBLE (actor) ? "yes" : "no", CLUTTER_ACTOR_IS_REALIZED (actor) ? "yes" : "no", @@ -40,7 +40,7 @@ actor_shown_not_parented (void) clutter_actor_show (actor); - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("show without a parent - visible: %s, realized: %s, mapped: %s\n", CLUTTER_ACTOR_IS_VISIBLE (actor) ? "yes" : "no", CLUTTER_ACTOR_IS_REALIZED (actor) ? "yes" : "no", @@ -92,7 +92,7 @@ actor_mapped (void) clutter_actor_add_child (stage, actor); - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("adding to a container should map - " "visible: %s, realized: %s, mapped: %s\n", CLUTTER_ACTOR_IS_VISIBLE (actor) ? "yes" : "no", @@ -105,7 +105,7 @@ actor_mapped (void) clutter_actor_hide (actor); - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("hiding should unmap - " "visible: %s, realized: %s, mapped: %s\n", CLUTTER_ACTOR_IS_VISIBLE (actor) ? "yes" : "no", diff --git a/src/tests/clutter/conform/actor-iter.c b/src/tests/clutter/conform/actor-iter.c index 3e963c56a07d3e51319878ff9980817df0cd1e88..06a7812d9892c8ed4c6a9dc3e709baae360f5f03 100644 --- a/src/tests/clutter/conform/actor-iter.c +++ b/src/tests/clutter/conform/actor-iter.c @@ -40,7 +40,7 @@ actor_iter_traverse_children (void) g_assert (CLUTTER_IS_ACTOR (child)); g_assert (clutter_actor_get_parent (child) == actor); - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("actor %d = '%s'\n", i, clutter_actor_get_name (child)); if (i == 0) @@ -63,7 +63,7 @@ actor_iter_traverse_children (void) g_assert (CLUTTER_IS_ACTOR (child)); g_assert (clutter_actor_get_parent (child) == actor); - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("actor %d = '%s'\n", i, clutter_actor_get_name (child)); if (i == 0) @@ -115,7 +115,7 @@ actor_iter_traverse_remove (void) g_assert (CLUTTER_IS_ACTOR (child)); g_assert (clutter_actor_get_parent (child) == actor); - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("actor %d = '%s'\n", i, clutter_actor_get_name (child)); if (i == 0) @@ -176,7 +176,7 @@ actor_iter_assignment (void) g_assert (CLUTTER_IS_ACTOR (child)); g_assert (clutter_actor_get_parent (child) == actor); - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("actor %2d = '%s'\n", i, clutter_actor_get_name (child)); if (i == 0) @@ -196,7 +196,7 @@ actor_iter_assignment (void) { g_assert (clutter_actor_get_parent (child) == actor); - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("actor %2d = '%s'\n", i, clutter_actor_get_name (child)); if (i == n_actors - 1) diff --git a/src/tests/clutter/conform/actor-paint-opacity.c b/src/tests/clutter/conform/actor-paint-opacity.c index 8e0447de9650886f9ed6daa623c477f9561a25b6..d6e77fce8ce978949e587546cb65737ec028013e 100644 --- a/src/tests/clutter/conform/actor-paint-opacity.c +++ b/src/tests/clutter/conform/actor-paint-opacity.c @@ -16,7 +16,7 @@ opacity_label (void) label = clutter_text_new_with_text ("Sans 18px", "Label, 50% opacity"); clutter_text_set_color (CLUTTER_TEXT (label), &label_color); - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("label 50%%.get_color()/1\n"); clutter_text_get_color (CLUTTER_TEXT (label), &color_check); g_assert (color_check.alpha == label_color.alpha); @@ -24,16 +24,16 @@ opacity_label (void) clutter_actor_add_child (stage, label); clutter_actor_set_position (label, 10, 10); - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("label 50%%.get_color()/2\n"); clutter_text_get_color (CLUTTER_TEXT (label), &color_check); g_assert (color_check.alpha == label_color.alpha); - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("label 50%%.get_paint_opacity()/1\n"); g_assert (clutter_actor_get_paint_opacity (label) == 255); - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("label 50%%.get_paint_opacity()/2\n"); clutter_actor_set_opacity (label, 128); g_assert (clutter_actor_get_paint_opacity (label) == 128); @@ -54,19 +54,19 @@ opacity_rectangle (void) clutter_actor_set_size (rect, 128, 128); clutter_actor_set_position (rect, 150, 90); - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("rect 100%%.get_color()/1\n"); clutter_rectangle_get_color (CLUTTER_RECTANGLE (rect), &color_check); g_assert (color_check.alpha == rect_color.alpha); clutter_actor_add_child (stage, rect); - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("rect 100%%.get_color()/2\n"); clutter_rectangle_get_color (CLUTTER_RECTANGLE (rect), &color_check); g_assert (color_check.alpha == rect_color.alpha); - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("rect 100%%.get_paint_opacity()\n"); g_assert (clutter_actor_get_paint_opacity (rect) == 255); } @@ -93,19 +93,19 @@ opacity_paint (void) label = clutter_text_new_with_text ("Sans 18px", "Label+Group, 25% opacity"); clutter_text_set_color (CLUTTER_TEXT (label), &label_color); - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("label 50%% + group 50%%.get_color()/1\n"); clutter_text_get_color (CLUTTER_TEXT (label), &color_check); g_assert (color_check.alpha == label_color.alpha); clutter_container_add (CLUTTER_CONTAINER (group1), label, NULL); - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("label 50%% + group 50%%.get_color()/2\n"); clutter_text_get_color (CLUTTER_TEXT (label), &color_check); g_assert (color_check.alpha == label_color.alpha); - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("label 50%% + group 50%%.get_paint_opacity() = 128\n"); g_assert (clutter_actor_get_paint_opacity (label) == 128); @@ -118,19 +118,19 @@ opacity_paint (void) rect = clutter_rectangle_new_with_color (&rect_color); clutter_actor_set_size (rect, 128, 128); - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("rect 100%% + group 100%% + group 50%%.get_color()/1\n"); clutter_rectangle_get_color (CLUTTER_RECTANGLE (rect), &color_check); g_assert (color_check.alpha == rect_color.alpha); clutter_container_add (CLUTTER_CONTAINER (group2), rect, NULL); - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("rect 100%% + group 100%% + group 50%%.get_color()/2\n"); clutter_rectangle_get_color (CLUTTER_RECTANGLE (rect), &color_check); g_assert (color_check.alpha == rect_color.alpha); - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("rect 100%%.get_paint_opacity()\n"); g_assert (clutter_actor_get_paint_opacity (rect) == 128); } diff --git a/src/tests/clutter/conform/actor-pick.c b/src/tests/clutter/conform/actor-pick.c index 3511be7d2cd2d2bdb0a2ad0f9224087dc1e879e8..eb4e834f803be3a64675c8bb4d21fcbc5ddb2d09 100644 --- a/src/tests/clutter/conform/actor-pick.c +++ b/src/tests/clutter/conform/actor-pick.c @@ -49,7 +49,7 @@ on_timeout (gpointer data) { if (test_num == 0) { - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("No covering actor:\n"); } if (test_num == 1) @@ -62,7 +62,7 @@ on_timeout (gpointer data) clutter_actor_add_child (state->stage, over_actor); clutter_actor_hide (over_actor); - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("Invisible covering actor:\n"); } else if (test_num == 2) @@ -84,7 +84,7 @@ on_timeout (gpointer data) */ clutter_actor_allocate (over_actor, &over_actor_box); - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("Clipped covering actor:\n"); } else if (test_num == 3) @@ -98,7 +98,7 @@ on_timeout (gpointer data) "blur", clutter_blur_effect_new ()); - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("With blur effect:\n"); } @@ -121,13 +121,13 @@ on_timeout (gpointer data) y * state->actor_height + state->actor_height / 2); - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("% 3i,% 3i / %p -> ", x, y, state->actors[y * ACTORS_X + x]); if (actor == NULL) { - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("NULL: FAIL\n"); } else if (actor == over_actor) @@ -137,7 +137,7 @@ on_timeout (gpointer data) && y >= 2 && y < ACTORS_Y - 2) pass = TRUE; - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("over_actor: %s\n", pass ? "pass" : "FAIL"); } else @@ -148,7 +148,7 @@ on_timeout (gpointer data) || y < 2 || y >= ACTORS_Y - 2)) pass = TRUE; - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("%p: %s\n", actor, pass ? "pass" : "FAIL"); } @@ -206,7 +206,7 @@ actor_pick (void) clutter_main (); - if (g_test_verbose ()) + if (!g_test_quiet ()) { if (!state.pass) g_test_message ("Failed pass: %s[%d], actor index: %d [%p]\n", diff --git a/src/tests/clutter/conform/actor-shader-effect.c b/src/tests/clutter/conform/actor-shader-effect.c index a2cea6d46e268066c7281d6da3449b99e2704f2b..f3b063c2e60a909b19fc301ee3f97afe720e9322 100644 --- a/src/tests/clutter/conform/actor-shader-effect.c +++ b/src/tests/clutter/conform/actor-shader-effect.c @@ -260,7 +260,7 @@ actor_shader_effect (void) if (!clutter_feature_available (CLUTTER_FEATURE_SHADERS_GLSL)) return; - stage = clutter_stage_new (); + stage = clutter_test_get_stage (); rect = make_actor (foo_old_shader_effect_get_type ()); clutter_container_add_actor (CLUTTER_CONTAINER (stage), rect); diff --git a/src/tests/clutter/conform/actor-size.c b/src/tests/clutter/conform/actor-size.c index 0d909f0286b95634ebb7f1789e92e69f2f1d60db..e8b04af3bad42a7db6c8c7442f8a2b8a4d95da4b 100644 --- a/src/tests/clutter/conform/actor-size.c +++ b/src/tests/clutter/conform/actor-size.c @@ -91,7 +91,7 @@ actor_preferred_size (void) test = g_object_new (TEST_TYPE_ACTOR, NULL); self = (TestActor *) test; - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("Preferred size\n"); clutter_actor_get_preferred_size (test, @@ -105,7 +105,7 @@ actor_preferred_size (void) g_assert_cmpfloat (nat_width, ==, min_width); g_assert_cmpfloat (nat_height, ==, min_height); - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("Preferred width\n"); self->preferred_width_called = FALSE; clutter_actor_get_preferred_width (test, 10, &min_width, &nat_width); @@ -113,7 +113,7 @@ actor_preferred_size (void) g_assert_cmpfloat (min_width, ==, 10); g_assert_cmpfloat (nat_width, ==, 100); - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("Preferred height\n"); self->preferred_height_called = FALSE; clutter_actor_get_preferred_height (test, 200, &min_height, &nat_height); @@ -121,7 +121,7 @@ actor_preferred_size (void) g_assert_cmpfloat (min_height, !=, 10); g_assert_cmpfloat (nat_height, ==, 100); - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("Preferred width (cached)\n"); self->preferred_width_called = FALSE; clutter_actor_get_preferred_width (test, 10, &min_width, &nat_width); @@ -129,7 +129,7 @@ actor_preferred_size (void) g_assert_cmpfloat (min_width, ==, 10); g_assert_cmpfloat (nat_width, ==, 100); - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("Preferred height (cache eviction)\n"); self->preferred_height_called = FALSE; clutter_actor_get_preferred_height (test, 10, &min_height, &nat_height); @@ -152,7 +152,7 @@ actor_fixed_size (void) rect = clutter_actor_new (); g_object_ref_sink (rect); - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("Initial size is 0\n"); g_assert_cmpfloat (clutter_actor_get_width (rect), ==, 0); @@ -160,7 +160,7 @@ actor_fixed_size (void) clutter_actor_set_size (rect, 100, 100); - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("Explicit size set\n"); g_assert_cmpfloat (clutter_actor_get_width (rect), ==, 100); @@ -173,7 +173,7 @@ actor_fixed_size (void) "natural-height-set", &nat_height_set, NULL); - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("Notification properties\n"); g_assert (min_width_set && nat_width_set); @@ -183,7 +183,7 @@ actor_fixed_size (void) &min_width, &min_height, &nat_width, &nat_height); - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("Preferred size\n"); g_assert_cmpfloat (min_width, ==, 100); @@ -193,7 +193,7 @@ actor_fixed_size (void) clutter_actor_set_size (rect, -1, -1); - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("Explicit size unset\n"); g_object_get (G_OBJECT (rect), diff --git a/src/tests/clutter/conform/cally-text.c b/src/tests/clutter/conform/cally-text.c index 32d7afb70db4364f3dfc3f1bf0f6ac33b4364f52..501f037aea68078475527a5e331a2f5f463b523a 100644 --- a/src/tests/clutter/conform/cally-text.c +++ b/src/tests/clutter/conform/cally-text.c @@ -107,7 +107,7 @@ check_result (CallbackData *data) if (g_strcmp0 (expected_text, text) != 0) { - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("text value differs %s vs %s\n", expected_text, text); fail = TRUE; } @@ -116,7 +116,7 @@ check_result (CallbackData *data) expected_char = g_utf8_get_char (g_utf8_offset_to_pointer (text, data->offset)); if (expected_char != unichar) { - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("text af offset differs\n"); fail = TRUE; } @@ -125,25 +125,25 @@ check_result (CallbackData *data) ATK_XY_WINDOW); if (x != data->extents_x) { - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("extents x position at index 0 differs (current value=%d)\n", x); fail = TRUE; } if (y != data->extents_y) { - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("extents y position at index 0 differs (current value=%d)\n", y); fail = TRUE; } if (width != data->extents_width) { - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("extents width at index 0 differs (current value=%d)\n", width); fail = TRUE; } if (height != data->extents_height) { - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("extents height at index 0 differs (current value=%d)\n", height); fail = TRUE; } @@ -151,7 +151,7 @@ check_result (CallbackData *data) pos = atk_text_get_offset_at_point (cally_text, x, y, ATK_XY_WINDOW); if (pos != data->offset) { - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("offset at position (%d, %d) differs (current value=%d)\n", x, y, pos); fail = TRUE; @@ -161,20 +161,20 @@ check_result (CallbackData *data) &start, &end); if (start != 0) { - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("run attributes start offset is not 0: %d\n", start); fail = TRUE; } if (end != g_utf8_strlen (text, -1)) { - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("run attributes end offset is not text length: %d\n", end); fail = TRUE; } attrs = (GSList*) at_set; fail = compare_lists (attrs, data->run_attributes); - if (fail && g_test_verbose ()) + if (fail && !g_test_quiet ()) { g_print ("run attributes mismatch\n"); dump_attribute_set (attrs); @@ -183,7 +183,7 @@ check_result (CallbackData *data) at_set = atk_text_get_default_attributes (cally_text); attrs = (GSList*) at_set; fail = compare_lists (attrs, data->default_attributes); - if (fail && g_test_verbose ()) + if (fail && !g_test_quiet ()) { g_print ("default attributes mismatch\n"); dump_attribute_set (attrs); @@ -194,11 +194,11 @@ check_result (CallbackData *data) if (fail) { - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("FAIL\n"); data->test_failed = TRUE; } - else if (g_test_verbose ()) + else if (!g_test_quiet ()) g_print ("pass\n"); return fail; @@ -319,10 +319,10 @@ cally_text (void) clutter_actor_destroy (data.stage); - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("\nOverall result: "); - if (g_test_verbose ()) + if (!g_test_quiet ()) { if (data.test_failed) g_print ("FAIL\n"); diff --git a/src/tests/clutter/conform/color.c b/src/tests/clutter/conform/color.c index f8a860b325e81101b6c2371e353138f73334a3a7..b66d5f63ad9bf5c4f632ea22215455867eff0b3c 100644 --- a/src/tests/clutter/conform/color.c +++ b/src/tests/clutter/conform/color.c @@ -18,7 +18,7 @@ color_hls_roundtrip (void) g_assert_cmpfloat (hue, ==, 0.0); g_assert (luminance >= 0.0 && luminance <= 1.0); g_assert_cmpfloat (saturation, ==, 0.0); - if (g_test_verbose ()) + if (!g_test_quiet ()) { g_print ("RGB = { %x, %x, %x }, HLS = { %.2f, %.2f, %.2f }\n", color.red, @@ -48,7 +48,7 @@ color_hls_roundtrip (void) g_assert (hue >= 0.0 && hue < 360.0); g_assert (luminance >= 0.0 && luminance <= 1.0); g_assert (saturation >= 0.0 && saturation <= 1.0); - if (g_test_verbose ()) + if (!g_test_quiet ()) { g_print ("RGB = { %x, %x, %x }, HLS = { %.2f, %.2f, %.2f }\n", color.red, @@ -92,7 +92,7 @@ color_from_string_valid (void) ClutterColor color; g_assert (clutter_color_from_string (&color, "#ff0000ff")); - if (g_test_verbose ()) + if (!g_test_quiet ()) { g_print ("color = { %x, %x, %x, %x }, expected = { 0xff, 0, 0, 0xff }\n", color.red, @@ -106,7 +106,7 @@ color_from_string_valid (void) g_assert_cmpuint (color.alpha, ==, 0xff); g_assert (clutter_color_from_string (&color, "#0f0f")); - if (g_test_verbose ()) + if (!g_test_quiet ()) { g_print ("color = { %x, %x, %x, %x }, expected = { 0, 0xff, 0, 0xff }\n", color.red, @@ -120,7 +120,7 @@ color_from_string_valid (void) g_assert_cmpuint (color.alpha, ==, 0xff); g_assert (clutter_color_from_string (&color, "#0000ff")); - if (g_test_verbose ()) + if (!g_test_quiet ()) { g_print ("color = { %x, %x, %x, %x }, expected = { 0, 0, 0xff, 0xff }\n", color.red, @@ -134,7 +134,7 @@ color_from_string_valid (void) g_assert_cmpuint (color.alpha, ==, 0xff); g_assert (clutter_color_from_string (&color, "#abc")); - if (g_test_verbose ()) + if (!g_test_quiet ()) { g_print ("color = { %x, %x, %x, %x }, expected = { 0xaa, 0xbb, 0xcc, 0xff }\n", color.red, @@ -148,7 +148,7 @@ color_from_string_valid (void) g_assert_cmpuint (color.alpha, ==, 0xff); g_assert (clutter_color_from_string (&color, "#123abc")); - if (g_test_verbose ()) + if (!g_test_quiet ()) { g_print ("color = { %x, %x, %x, %x }, expected = { 0x12, 0x3a, 0xbc, 0xff }\n", color.red, @@ -162,7 +162,7 @@ color_from_string_valid (void) g_assert (color.alpha == 0xff); g_assert (clutter_color_from_string (&color, "rgb(255, 128, 64)")); - if (g_test_verbose ()) + if (!g_test_quiet ()) { g_print ("color = { %x, %x, %x, %x }, expected = { 255, 128, 64, 255 }\n", color.red, @@ -176,7 +176,7 @@ color_from_string_valid (void) g_assert_cmpuint (color.alpha, ==, 255); g_assert (clutter_color_from_string (&color, "rgba ( 30%, 0, 25%, 0.5 ) ")); - if (g_test_verbose ()) + if (!g_test_quiet ()) { g_print ("color = { %x, %x, %x, %x }, expected = { %.1f, 0, %.1f, 128 }\n", color.red, @@ -192,7 +192,7 @@ color_from_string_valid (void) g_assert_cmpuint (color.alpha, ==, 127); g_assert (clutter_color_from_string (&color, "rgb( 50%, -50%, 150% )")); - if (g_test_verbose ()) + if (!g_test_quiet ()) { g_print ("color = { %x, %x, %x, %x }, expected = { 127, 0, 255, 255 }\n", color.red, @@ -206,7 +206,7 @@ color_from_string_valid (void) g_assert_cmpuint (color.alpha, ==, 255); g_assert (clutter_color_from_string (&color, "hsl( 0, 100%, 50% )")); - if (g_test_verbose ()) + if (!g_test_quiet ()) { g_print ("color = { %x, %x, %x, %x }, expected = { 255, 0, 0, 255 }\n", color.red, @@ -222,7 +222,7 @@ color_from_string_valid (void) g_assert (clutter_color_from_string (&color, "hsl( 0, 100%, 50% )")); g_assert (clutter_color_from_string (&color, "hsla( 0, 100%, 50%, 0.5 )")); - if (g_test_verbose ()) + if (!g_test_quiet ()) { g_print ("color = { %x, %x, %x, %x }, expected = { 255, 0, 0, 127 }\n", color.red, @@ -274,7 +274,7 @@ color_operators (void) g_assert_cmpuint (op2.blue, ==, 0); g_assert_cmpuint (op2.alpha, ==, 0xff); - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("Adding %x, %x; expected result: %x\n", clutter_color_to_pixel (&op1), clutter_color_to_pixel (&op2), @@ -283,7 +283,7 @@ color_operators (void) clutter_color_add (&op1, &op2, &res); g_assert_cmpuint (clutter_color_to_pixel (&res), ==, 0xffff00ff); - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("Checking alpha channel on color add\n"); op1.alpha = 0xdd; @@ -294,7 +294,7 @@ color_operators (void) clutter_color_from_pixel (&op1, 0xffffffff); clutter_color_from_pixel (&op2, 0xff00ffff); - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("Subtracting %x, %x; expected result: %x\n", clutter_color_to_pixel (&op1), clutter_color_to_pixel (&op2), @@ -303,7 +303,7 @@ color_operators (void) clutter_color_subtract (&op1, &op2, &res); g_assert_cmpuint (clutter_color_to_pixel (&res), ==, 0x00ff00ff); - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("Checking alpha channel on color subtract\n"); op1.alpha = 0xdd; diff --git a/src/tests/clutter/conform/interval.c b/src/tests/clutter/conform/interval.c index 468f213123cbc10ab133793884b4490996d1ff51..263a25b374ebf6dc4b99e79357614aeca54cdddd 100644 --- a/src/tests/clutter/conform/interval.c +++ b/src/tests/clutter/conform/interval.c @@ -81,21 +81,21 @@ interval_from_script (void) "test-script-interval.json", NULL); clutter_script_load_from_file (script, test_file, &error); - if (g_test_verbose () && error) + if (!g_test_quiet () && error) g_printerr ("\tError: %s", error->message); g_assert_no_error (error); interval = CLUTTER_INTERVAL (clutter_script_get_object (script, "int-1")); initial = clutter_interval_peek_initial_value (interval); - if (g_test_verbose ()) + if (!g_test_quiet ()) g_test_message ("\tinitial ['%s'] = '%.2f'", g_type_name (G_VALUE_TYPE (initial)), g_value_get_float (initial)); g_assert (G_VALUE_HOLDS (initial, G_TYPE_FLOAT)); g_assert_cmpfloat (g_value_get_float (initial), ==, 23.3f); final = clutter_interval_peek_final_value (interval); - if (g_test_verbose ()) + if (!g_test_quiet ()) g_test_message ("\tfinal ['%s'] = '%.2f'", g_type_name (G_VALUE_TYPE (final)), g_value_get_float (final)); diff --git a/src/tests/clutter/conform/meson.build b/src/tests/clutter/conform/meson.build index fa42a74b306ac20f289c79e45fe95952339f028b..4484380ee5e0b6198921b131d01fff22cc53692a 100644 --- a/src/tests/clutter/conform/meson.build +++ b/src/tests/clutter/conform/meson.build @@ -33,6 +33,10 @@ clutter_conform_tests_general_tests = [ 'color', 'interval', 'script-parser', + 'timeline', + 'timeline-interpolate', + 'timeline-progress', + 'timeline-rewind', 'units', ] @@ -73,6 +77,7 @@ foreach test : clutter_conform_tests test(test, test_executable, suite: ['clutter', 'clutter/conform'], - env: test_env + env: test_env, + is_parallel: false, ) endforeach diff --git a/src/tests/clutter/conform/path.c b/src/tests/clutter/conform/path.c index b292ac9da9018a8eb86744d941e9ae6dda179378..55620069a1aaf74503762c12c7618e3af1d510d0 100644 --- a/src/tests/clutter/conform/path.c +++ b/src/tests/clutter/conform/path.c @@ -556,7 +556,7 @@ path_test_get_length (CallbackData *data) if (!(fabs (approx_length - 46340.f) / 46340.f <= 0.15f)) { - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("M 0 0 L 46340 0 - Expected 46340, got %d instead.", approx_length); return FALSE; @@ -567,7 +567,7 @@ path_test_get_length (CallbackData *data) if (!(fabs (approx_length - 46341.f) / 46341.f <= 0.15f)) { - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("M 0 0 L 46341 0 - Expected 46341, got %d instead.", approx_length); return FALSE; @@ -580,7 +580,7 @@ path_test_get_length (CallbackData *data) /* Allow 15% margin of error */ if (!(fabs (approx_length - actual_length) / (float) actual_length <= 0.15f)) { - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("Expected %g, got %d instead.\n", actual_length, approx_length); return FALSE; @@ -724,12 +724,12 @@ path_base (TestConformSimpleFixture *fixture, { gboolean succeeded; - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("%s... ", path_tests[i].desc); succeeded = path_tests[i].func (&data) && compare_nodes (&data); - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("%s\n", succeeded ? "ok" : "FAIL"); g_assert (succeeded); diff --git a/src/tests/clutter/conform/script-parser.c b/src/tests/clutter/conform/script-parser.c index 1d7c86d17391c0feeaa898c4014cebf907333d81..30ce229396c2a332516a6916d84ffadde8d65a7e 100644 --- a/src/tests/clutter/conform/script-parser.c +++ b/src/tests/clutter/conform/script-parser.c @@ -131,7 +131,7 @@ script_child (void) test_file = g_test_build_filename (G_TEST_DIST, "scripts", "test-script-child.json", NULL); clutter_script_load_from_file (script, test_file, &error); - if (g_test_verbose () && error) + if (!g_test_quiet () && error) g_print ("Error: %s", error->message); g_assert_no_error (error); @@ -177,7 +177,7 @@ script_single (void) test_file = g_test_build_filename (G_TEST_DIST, "scripts", "test-script-single.json", NULL); clutter_script_load_from_file (script, test_file, &error); - if (g_test_verbose () && error) + if (!g_test_quiet () && error) g_print ("Error: %s", error->message); g_assert_no_error (error); @@ -209,7 +209,7 @@ script_object_property (void) test_file = g_test_build_filename (G_TEST_DIST, "scripts", "test-script-object-property.json", NULL); clutter_script_load_from_file (script, test_file, &error); - if (g_test_verbose () && error) + if (!g_test_quiet () && error) g_print ("Error: %s", error->message); g_assert_no_error (error); @@ -235,7 +235,7 @@ script_named_object (void) test_file = g_test_build_filename (G_TEST_DIST, "scripts", "test-script-named-object.json", NULL); clutter_script_load_from_file (script, test_file, &error); - if (g_test_verbose () && error) + if (!g_test_quiet () && error) g_print ("Error: %s", error->message); g_assert_no_error (error); @@ -261,7 +261,7 @@ script_margin (void) test_file = g_test_build_filename (G_TEST_DIST, "scripts", "test-script-margin.json", NULL); clutter_script_load_from_file (script, test_file, &error); - if (g_test_verbose () && error) + if (!g_test_quiet () && error) g_print ("Error: %s", error->message); g_assert_no_error (error); diff --git a/src/tests/clutter/conform/text-cache.c b/src/tests/clutter/conform/text-cache.c index 748101eab679a1775acea1dad657ce0f1a7c256c..5dbb2991c3df98f316da201c77578d68f47ef90c 100644 --- a/src/tests/clutter/conform/text-cache.c +++ b/src/tests/clutter/conform/text-cache.c @@ -68,7 +68,7 @@ check_result (CallbackData *data, const char *note, PangoRectangle test_extents; gboolean fail = FALSE; - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("%s: ", note); /* Force a redraw to get the on_paint handler to run */ @@ -79,7 +79,7 @@ check_result (CallbackData *data, const char *note, pango_layout_get_extents (data->test_layout, NULL, &test_extents); if (memcmp (&test_extents, &data->label_extents, sizeof (PangoRectangle))) { - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("extents are different: expected: %d, %d, %d, %d " "-> text: %d, %d, %d, %d\n", test_extents.x / 1024, @@ -95,18 +95,18 @@ check_result (CallbackData *data, const char *note, } else { - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("extents are the same, "); } if (data->layout_changed) { - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("layout changed, "); } else { - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("layout did not change, "); } @@ -115,14 +115,14 @@ check_result (CallbackData *data, const char *note, if (fail) { - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("FAIL\n"); data->test_failed = TRUE; } else { - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("pass\n"); } @@ -283,10 +283,10 @@ text_cache (void) clutter_actor_destroy (data.stage); - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("\nOverall result: "); - if (g_test_verbose ()) + if (!g_test_quiet ()) { if (data.test_failed) g_print ("FAIL\n"); diff --git a/src/tests/clutter/conform/text.c b/src/tests/clutter/conform/text.c index ebe4b7bb199b73cccdc5dcc66711c14093f1cc5c..e1b0cae438bf87ac16014d5fccec26d7c4bcaa40 100644 --- a/src/tests/clutter/conform/text.c +++ b/src/tests/clutter/conform/text.c @@ -214,12 +214,12 @@ text_delete_chars (void) for (j = 0; j < 4; j++) clutter_text_insert_unichar (text, t->unichar); - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("text: %s\n", clutter_text_get_text (text)); clutter_text_set_cursor_position (text, 2); clutter_text_delete_chars (text, 1); - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("text: %s (cursor at: %d)\n", clutter_text_get_text (text), clutter_text_get_cursor_position (text)); @@ -229,7 +229,7 @@ text_delete_chars (void) clutter_text_set_cursor_position (text, 2); clutter_text_delete_chars (text, 1); - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("text: %s (cursor at: %d)\n", clutter_text_get_text (text), clutter_text_get_cursor_position (text)); @@ -503,7 +503,7 @@ text_idempotent_use_markup (void) int bar_end_index = bar_start_index + strlen ("bar"); /* case 1: text -> use_markup */ - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("text: '%s' -> use-markup: TRUE\n", contents); text = g_object_new (CLUTTER_TYPE_TEXT, @@ -511,7 +511,7 @@ text_idempotent_use_markup (void) NULL); g_object_ref_sink (text); - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("Contents: '%s' (expected: '%s')\n", clutter_text_get_text (text), display); @@ -526,14 +526,14 @@ text_idempotent_use_markup (void) clutter_actor_destroy (CLUTTER_ACTOR (text)); /* case 2: use_markup -> text */ - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("use-markup: TRUE -> text: '%s'\n", contents); text = g_object_new (CLUTTER_TYPE_TEXT, "use-markup", TRUE, "text", contents, NULL); - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("Contents: '%s' (expected: '%s')\n", clutter_text_get_text (text), display); diff --git a/src/tests/clutter/conform/texture-fbo.c b/src/tests/clutter/conform/texture-fbo.c index ac70ebc67530079c62834dd236ff2b7695271784..5d3348f05aff7cffe46ffb0dac628f0a0e77690d 100644 --- a/src/tests/clutter/conform/texture-fbo.c +++ b/src/tests/clutter/conform/texture-fbo.c @@ -116,24 +116,24 @@ validate_result (TestState *state) { int ypos = 0; - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("Testing onscreen clone...\n"); validate_part (state, SOURCE_SIZE, ypos * SOURCE_SIZE, 0); ypos++; #if 0 /* this doesn't work */ - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("Testing offscreen clone...\n"); validate_part (state, SOURCE_SIZE, ypos * SOURCE_SIZE, 0); #endif ypos++; - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("Testing onscreen clone with rectangular clip...\n"); validate_part (state, SOURCE_SIZE, ypos * SOURCE_SIZE, ~1); ypos++; - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("Testing onscreen clone with path clip...\n"); validate_part (state, SOURCE_SIZE, ypos * SOURCE_SIZE, 1); ypos++; diff --git a/src/tests/clutter/conform/timeline-interpolate.c b/src/tests/clutter/conform/timeline-interpolate.c index 3988c038dd93f1fb278e7453e8abc5586ce9b592..aa3556b59bd48692d1eed283704516aa2aa266fd 100644 --- a/src/tests/clutter/conform/timeline-interpolate.c +++ b/src/tests/clutter/conform/timeline-interpolate.c @@ -1,8 +1,9 @@ +#define CLUTTER_DISABLE_DEPRECATION_WARNINGS #include #include #include -#include "test-conform-common.h" +#include "tests/clutter-test-utils.h" /* We ask for 1 frame per millisecond. * Whenever this rate can't be achieved then the timeline @@ -12,8 +13,12 @@ #define TEST_TIMELINE_DURATION 5000 /* We are at the mercy of the system scheduler so this - * may not be a very reliable tolerance. */ -#define TEST_ERROR_TOLERANCE 20 + * may not be a very reliable tolerance. + * + * It's set as very tolerable as otherwise CI, which are + * very prone to not get CPU time scheduled, tend to often fail. + */ +#define TEST_ERROR_TOLERANCE 150 typedef struct _TestState { @@ -118,26 +123,23 @@ completed_cb (ClutterTimeline *timeline, if (state->completion_count == 2) { if (state->passed) - { - g_test_message ("Passed\n"); - clutter_main_quit (); - } + clutter_main_quit (); else - { - g_test_message ("Failed\n"); - exit (EXIT_FAILURE); - } + g_assert_not_reached (); } } -void +static void timeline_interpolation (void) { + ClutterActor *stage; TestState state; + stage = clutter_test_get_stage (); + state.timeline = clutter_timeline_new (TEST_TIMELINE_DURATION); - clutter_timeline_set_loop (state.timeline, TRUE); + clutter_timeline_set_repeat_count (state.timeline, -1); g_signal_connect (G_OBJECT(state.timeline), "new-frame", G_CALLBACK(new_frame_cb), @@ -152,6 +154,8 @@ timeline_interpolation (void) state.passed = TRUE; state.expected_frame = 0; + clutter_actor_show (stage); + state.start_time = g_get_real_time (); clutter_timeline_start (state.timeline); @@ -159,3 +163,7 @@ timeline_interpolation (void) g_object_unref (state.timeline); } + +CLUTTER_TEST_SUITE ( + CLUTTER_TEST_UNIT ("/timeline/interpolate", timeline_interpolation) +) diff --git a/src/tests/clutter/conform/timeline-progress.c b/src/tests/clutter/conform/timeline-progress.c index 9c966ca8fb414bc4189f6b9c523e76687202f0ae..20a71f2bcfe549ee4f35be83b602ba76472a61c5 100644 --- a/src/tests/clutter/conform/timeline-progress.c +++ b/src/tests/clutter/conform/timeline-progress.c @@ -1,16 +1,17 @@ +#define CLUTTER_DISABLE_DEPRECATION_WARNINGS #include #include -#include "test-conform-common.h" -void -timeline_progress_step (TestConformSimpleFixture *fixture G_GNUC_UNUSED, - gconstpointer dummy G_GNUC_UNUSED) +#include "tests/clutter-test-utils.h" + +static void +timeline_progress_step (void) { ClutterTimeline *timeline; timeline = clutter_timeline_new (1000); - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("mode: step(3, end)\n"); clutter_timeline_rewind (timeline); @@ -45,7 +46,7 @@ timeline_progress_step (TestConformSimpleFixture *fixture G_GNUC_UNUSED, clutter_timeline_advance (timeline, 1000); g_assert_cmpfloat (clutter_timeline_get_progress (timeline), ==, 1.0); - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("mode: step-start\n"); clutter_timeline_rewind (timeline); @@ -64,7 +65,7 @@ timeline_progress_step (TestConformSimpleFixture *fixture G_GNUC_UNUSED, clutter_timeline_advance (timeline, 1000); g_assert_cmpfloat (clutter_timeline_get_progress (timeline), ==, 1.0); - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("mode: step-end\n"); clutter_timeline_rewind (timeline); @@ -86,9 +87,8 @@ timeline_progress_step (TestConformSimpleFixture *fixture G_GNUC_UNUSED, g_object_unref (timeline); } -void -timeline_progress_mode (TestConformSimpleFixture *fixture G_GNUC_UNUSED, - gconstpointer dummy G_GNUC_UNUSED) +static void +timeline_progress_mode (void) { ClutterTimeline *timeline; @@ -108,3 +108,8 @@ timeline_progress_mode (TestConformSimpleFixture *fixture G_GNUC_UNUSED, g_object_unref (timeline); } + +CLUTTER_TEST_SUITE ( + CLUTTER_TEST_UNIT ("/timeline/progress/step", timeline_progress_step); + CLUTTER_TEST_UNIT ("/timeline/progress/mode", timeline_progress_mode) +) diff --git a/src/tests/clutter/conform/timeline-rewind.c b/src/tests/clutter/conform/timeline-rewind.c index 0263649ac8b2fc9bb6a80e04b374d1d6ef3f895c..9adc198b496ee8513c638be4304ef9fccc118e35 100644 --- a/src/tests/clutter/conform/timeline-rewind.c +++ b/src/tests/clutter/conform/timeline-rewind.c @@ -1,8 +1,9 @@ +#define CLUTTER_DISABLE_DEPRECATION_WARNINGS #include #include #include -#include "test-conform-common.h" +#include "tests/clutter-test-utils.h" #define TEST_TIMELINE_DURATION 500 #define TEST_WATCHDOG_KICK_IN_SECONDS 10 @@ -66,11 +67,14 @@ new_frame_cb (ClutterTimeline *timeline, } } -void +static void timeline_rewind (void) { + ClutterActor *stage; TestState state; + stage = clutter_test_get_stage (); + state.timeline = clutter_timeline_new (TEST_TIMELINE_DURATION); g_signal_connect (G_OBJECT(state.timeline), @@ -84,9 +88,15 @@ timeline_rewind (void) &state); state.rewind_count = 0; + clutter_actor_show (stage); + clutter_timeline_start (state.timeline); clutter_main(); g_object_unref (state.timeline); } + +CLUTTER_TEST_SUITE ( + CLUTTER_TEST_UNIT ("/timeline/rewind", timeline_rewind) +) diff --git a/src/tests/clutter/conform/timeline.c b/src/tests/clutter/conform/timeline.c index 283db7001951c519391f83857b86dedc048138d9..da04a9889364115e1e551aa03d41aa36898da841 100644 --- a/src/tests/clutter/conform/timeline.c +++ b/src/tests/clutter/conform/timeline.c @@ -1,11 +1,12 @@ +#define CLUTTER_DISABLE_DEPRECATION_WARNINGS #include #include #include #include -#include "test-conform-common.h" +#include "tests/clutter-test-utils.h" -/* This test runs three timelines at 30 fps with 10 frames. Some of +/* This test runs three timelines at 10 fps with 10 frames. Some of the timelines have markers. Once the timelines are run it then checks that all of the frames were hit, all of the markers were hit and that the completed signal was fired. The timelines are then run @@ -15,7 +16,7 @@ for. */ #define FRAME_COUNT 10 -#define FPS 30 +#define FPS 10 typedef struct _TimelineData TimelineData; @@ -45,7 +46,7 @@ static void timeline_complete_cb (ClutterTimeline *timeline, TimelineData *data) { - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("%i: Completed\n", data->timeline_num); data->completed_count++; @@ -61,7 +62,7 @@ timeline_new_frame_cb (ClutterTimeline *timeline, int frame_no = ((msec * FRAME_COUNT + (FRAME_COUNT * 1000 / FPS) / 2) / (FRAME_COUNT * 1000 / FPS)); - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("%i: Doing frame %d, delta = %i\n", data->timeline_num, frame_no, clutter_timeline_get_delta (timeline)); @@ -77,7 +78,7 @@ timeline_marker_reached_cb (ClutterTimeline *timeline, guint frame_num, TimelineData *data) { - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("%i: Marker '%s' (%d) reached, delta = %i\n", data->timeline_num, marker_name, frame_num, clutter_timeline_get_delta (timeline)); @@ -117,7 +118,7 @@ check_timeline (ClutterTimeline *timeline, marker_reached_count[i]++; else { - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("FAIL: unknown marker '%s' hit for timeline %i\n", (char *) node->data, data->timeline_num); succeeded = FALSE; @@ -127,7 +128,7 @@ check_timeline (ClutterTimeline *timeline, for (i = 0; i < n_markers; i++) if (marker_reached_count[i] != 1) { - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("FAIL: marker '%s' hit %i times for timeline %i\n", markers[i], marker_reached_count[i], data->timeline_num); succeeded = FALSE; @@ -141,7 +142,7 @@ check_timeline (ClutterTimeline *timeline, if (missed_frame_count) { - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("FAIL: missed %i frame%s for timeline %i\n", missed_frame_count, missed_frame_count == 1 ? "" : "s", data->timeline_num); @@ -151,7 +152,7 @@ check_timeline (ClutterTimeline *timeline, if (data->completed_count != 1) { - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("FAIL: timeline %i completed %i times\n", data->timeline_num, data->completed_count); succeeded = FALSE; @@ -180,10 +181,10 @@ delay_cb (gpointer data) return TRUE; } -void -timeline_base (TestConformSimpleFixture *fixture, - gconstpointer data) +static void +timeline_base (void) { + ClutterActor *stage; ClutterTimeline *timeline_1; TimelineData data_1; ClutterTimeline *timeline_2; @@ -194,9 +195,7 @@ timeline_base (TestConformSimpleFixture *fixture, gsize n_markers; guint delay_tag; - /* NB: We have to ensure a stage is instantiated else the master - * clock wont run... */ - ClutterActor *stage = clutter_stage_new (); + stage = clutter_test_get_stage (); timeline_data_init (&data_1, 1); timeline_1 = clutter_timeline_new (FRAME_COUNT * 1000 / FPS); @@ -216,7 +215,7 @@ timeline_base (TestConformSimpleFixture *fixture, g_strfreev (markers); timeline_data_init (&data_2, 2); - timeline_2 = clutter_timeline_clone (timeline_1); + timeline_2 = clutter_timeline_new (FRAME_COUNT * 1000 / FPS); clutter_timeline_add_marker_at_time (timeline_2, "bar", 2 * 1000 / FPS); markers = clutter_timeline_list_markers (timeline_2, -1, &n_markers); g_assert (markers != NULL); @@ -225,7 +224,7 @@ timeline_base (TestConformSimpleFixture *fixture, g_strfreev (markers); timeline_data_init (&data_3, 3); - timeline_3 = clutter_timeline_clone (timeline_1); + timeline_3 = clutter_timeline_new (FRAME_COUNT * 1000 / FPS); clutter_timeline_set_direction (timeline_3, CLUTTER_TIMELINE_BACKWARD); clutter_timeline_add_marker_at_time (timeline_3, "start-marker", FRAME_COUNT * 1000 / FPS); @@ -267,7 +266,9 @@ timeline_base (TestConformSimpleFixture *fixture, "completed", G_CALLBACK (timeline_complete_cb), &data_3); - if (g_test_verbose ()) + clutter_actor_show (stage); + + if (!g_test_quiet ()) g_print ("Without delay...\n"); clutter_timeline_start (timeline_1); @@ -282,7 +283,7 @@ timeline_base (TestConformSimpleFixture *fixture, g_assert (check_timeline (timeline_2, &data_2, TRUE)); g_assert (check_timeline (timeline_3, &data_3, TRUE)); - if (g_test_verbose ()) + if (!g_test_quiet ()) g_print ("With delay...\n"); timeline_data_destroy (&data_1); @@ -314,13 +315,10 @@ timeline_base (TestConformSimpleFixture *fixture, timeline_data_destroy (&data_3); g_clear_handle_id (&delay_tag, g_source_remove); - - clutter_actor_destroy (stage); } -void -timeline_markers_from_script (TestConformSimpleFixture *fixture, - gconstpointer data) +static void +timeline_markers_from_script (void) { ClutterScript *script = clutter_script_new (); ClutterTimeline *timeline; @@ -329,9 +327,12 @@ timeline_markers_from_script (TestConformSimpleFixture *fixture, gchar **markers; gsize n_markers; - test_file = clutter_test_get_data_file ("test-script-timeline-markers.json"); + test_file = g_test_build_filename (G_TEST_DIST, + "scripts", + "test-script-timeline-markers.json", + NULL); clutter_script_load_from_file (script, test_file, &error); - if (g_test_verbose () && error != NULL) + if (!g_test_quiet () && error != NULL) g_print ("Error: %s", error->message); g_assert_no_error (error); @@ -351,11 +352,16 @@ timeline_markers_from_script (TestConformSimpleFixture *fixture, markers = clutter_timeline_list_markers (timeline, 500, &n_markers); g_assert_cmpint (n_markers, ==, 2); g_assert (markers != NULL); - g_assert_cmpstr (markers[0], ==, "marker3"); - g_assert_cmpstr (markers[1], ==, "marker1"); + g_assert (g_strv_contains ((const char * const *) markers, "marker1")); + g_assert (g_strv_contains ((const char * const *) markers, "marker3")); g_strfreev (markers); g_object_unref (script); g_free (test_file); } + +CLUTTER_TEST_SUITE ( + CLUTTER_TEST_UNIT ("/timeline/base", timeline_base); + CLUTTER_TEST_UNIT ("/timeline/markers-from-script", timeline_markers_from_script) +) diff --git a/src/tests/clutter/interactive/test-cogl-tex-polygon.c b/src/tests/clutter/interactive/test-cogl-tex-polygon.c index 654401b4d6f5d738efb406798bec9a6af1c6a009..5fbb6df54f7f7c722ca467a03af1f922bf674ac2 100644 --- a/src/tests/clutter/interactive/test-cogl-tex-polygon.c +++ b/src/tests/clutter/interactive/test-cogl-tex-polygon.c @@ -410,7 +410,7 @@ test_cogl_tex_polygon_main (int argc, char *argv[]) /* Timeline for animation */ timeline = clutter_timeline_new (6000); - clutter_timeline_set_loop (timeline, TRUE); + clutter_timeline_set_repeat_count (timeline, -1); g_signal_connect (timeline, "new-frame", G_CALLBACK (frame_cb), coglbox); clutter_timeline_start (timeline); diff --git a/src/tests/clutter/interactive/test-cogl-tex-tile.c b/src/tests/clutter/interactive/test-cogl-tex-tile.c index 9948696a41fe84fd51a71f47fadea13f403dd39f..a522da459354051446100ed02f3f982b5b7c3f4c 100644 --- a/src/tests/clutter/interactive/test-cogl-tex-tile.c +++ b/src/tests/clutter/interactive/test-cogl-tex-tile.c @@ -216,7 +216,7 @@ test_cogl_tex_tile_main (int argc, char *argv[]) /* Timeline for animation */ timeline = clutter_timeline_new (6000); /* 6 second duration */ - clutter_timeline_set_loop (timeline, TRUE); + clutter_timeline_set_repeat_count (timeline, -1); g_signal_connect (timeline, "new-frame", G_CALLBACK (frame_cb), coglbox); clutter_timeline_start (timeline); diff --git a/src/wayland/meta-wayland-tablet-tool.c b/src/wayland/meta-wayland-tablet-tool.c index e960cc63b2805d6cd1f171d589b78e3bd1f926a0..677ccdd30121d7643912ef47f19c32c748c116d0 100644 --- a/src/wayland/meta-wayland-tablet-tool.c +++ b/src/wayland/meta-wayland-tablet-tool.c @@ -931,7 +931,7 @@ meta_wayland_tablet_tool_update (MetaWaylandTabletTool *tool, break; case CLUTTER_PROXIMITY_IN: if (!tool->cursor_renderer) - tool->cursor_renderer = meta_cursor_renderer_new (); + tool->cursor_renderer = meta_cursor_renderer_new (meta_get_backend ()); tool->current_tablet = meta_wayland_tablet_seat_lookup_tablet (tool->seat, clutter_event_get_source_device (event));