/** * st_scroll_view_update_vfade_effect: * @self: a #StScrollView * @fade_offset: The length of the fade effect, in pixels. * * Sets the height of the fade area area in pixels. A value of 0 * disables the effect. */ static void st_scroll_view_update_vfade_effect (StScrollView *self, float fade_offset) { StScrollViewPrivate *priv = ST_SCROLL_VIEW (self)->priv; /* A fade amount of more than 0 enables the effect. */ if (fade_offset > 0.) { if (priv->vfade_effect == NULL) { priv->vfade_effect = g_object_new (ST_TYPE_SCROLL_VIEW_FADE, NULL); clutter_actor_add_effect_with_name (CLUTTER_ACTOR (self), "vfade", CLUTTER_EFFECT (priv->vfade_effect)); } g_object_set (priv->vfade_effect, "fade-offset", fade_offset, NULL); } else { if (priv->vfade_effect != NULL) { clutter_actor_remove_effect (CLUTTER_ACTOR (self), CLUTTER_EFFECT (priv->vfade_effect)); priv->vfade_effect = NULL; } } clutter_actor_queue_redraw (CLUTTER_ACTOR (self)); }
void Animation::unloadShader() { printf("Unloading previous shader...\n"); // Pop off the old shader: if (shaderLoaded) { shaderLoaded = false; clutter_actor_remove_effect(shaderOutput, shaderEffect); } }
static void st_scroll_view_dispose (GObject *object) { StScrollViewPrivate *priv = ST_SCROLL_VIEW (object)->priv; if (priv->vfade_effect) { clutter_actor_remove_effect (CLUTTER_ACTOR (object), CLUTTER_EFFECT (priv->vfade_effect)); priv->vfade_effect = NULL; } if (priv->vscroll) clutter_actor_destroy (priv->vscroll); if (priv->hscroll) clutter_actor_destroy (priv->hscroll); /* For most reliable freeing of memory, an object with signals * like StAdjustment should be explicitly disposed. Since we own * the adjustments, we take care of that. This also disconnects * the signal handlers that we established on creation. */ if (priv->hadjustment) { g_object_run_dispose (G_OBJECT (priv->hadjustment)); g_object_unref (priv->hadjustment); priv->hadjustment = NULL; } if (priv->vadjustment) { g_object_run_dispose (G_OBJECT (priv->vadjustment)); g_object_unref (priv->vadjustment); priv->vadjustment = NULL; } if (priv->setting_connect_id > 0) { g_signal_handler_disconnect (priv->settings, priv->setting_connect_id); priv->setting_connect_id = 0; } g_signal_handlers_disconnect_by_func (ST_SCROLL_VIEW (object), motion_event_cb, ST_SCROLL_VIEW (object)); G_OBJECT_CLASS (st_scroll_view_parent_class)->dispose (object); }