diff --git a/js/ui/lightbox.js b/js/ui/lightbox.js
index d6eec7f..d071667 100644
--- a/js/ui/lightbox.js
+++ b/js/ui/lightbox.js
@@ -27,45 +27,45 @@ t = clamp(t, 0.0, 1.0);\n\
 float pixel_brightness = mix(1.0, 1.0 - vignette_sharpness, t);\n\
 cogl_color_out.a = cogl_color_out.a * (1 - pixel_brightness * brightness);';
 
-var RadialShaderQuad = new Lang.Class({
-    Name: 'RadialShaderQuad',
-    Extends: Shell.GLSLQuad,
-
-    _init: function(params) {
-        this.parent(params);
-
-        this._brightnessLocation = this.get_uniform_location('brightness');
-        this._sharpnessLocation = this.get_uniform_location('vignette_sharpness');
-
-        this.brightness = 1.0;
-        this.vignetteSharpness = 0.0;
-    },
-
-    vfunc_build_pipeline: function() {
-        this.add_glsl_snippet(Shell.SnippetHook.FRAGMENT,
-                              VIGNETTE_DECLARATIONS, VIGNETTE_CODE, true);
-    },
-
-    get brightness() {
-        return this._brightness;
-    },
-
-    set brightness(v) {
-        this._brightness = v;
-        this.set_uniform_float(this._brightnessLocation,
-                               1, [this._brightness]);
-    },
-
-    get vignetteSharpness() {
-        return this._sharpness;
-    },
-
-    set vignetteSharpness(v) {
-        this._sharpness = v;
-        this.set_uniform_float(this._sharpnessLocation,
-                               1, [this._sharpness]);
-    }
-});
+//var RadialShaderQuad = new Lang.Class({
+//    Name: 'RadialShaderQuad',
+//    Extends: Shell.GLSLQuad,
+//
+//    _init: function(params) {
+//        this.parent(params);
+//
+//        this._brightnessLocation = this.get_uniform_location('brightness');
+//        this._sharpnessLocation = this.get_uniform_location('vignette_sharpness');
+//
+//        this.brightness = 1.0;
+//        this.vignetteSharpness = 0.0;
+//    },
+//
+//    vfunc_build_pipeline: function() {
+//        this.add_glsl_snippet(Shell.SnippetHook.FRAGMENT,
+//                              VIGNETTE_DECLARATIONS, VIGNETTE_CODE, true);
+//    },
+//
+//    get brightness() {
+//        return this._brightness;
+//    },
+//
+//    set brightness(v) {
+//        this._brightness = v;
+//        this.set_uniform_float(this._brightnessLocation,
+//                               1, [this._brightness]);
+//    },
+//
+//    get vignetteSharpness() {
+//        return this._sharpness;
+//    },
+//
+//    set vignetteSharpness(v) {
+//        this._sharpness = v;
+//        this.set_uniform_float(this._sharpnessLocation,
+//                               1, [this._sharpness]);
+//    }
+//});
 
 /**
  * Lightbox:
@@ -105,12 +105,13 @@ var Lightbox = new Lang.Class({
         this._container = container;
         this._children = container.get_children();
         this._fadeFactor = params.fadeFactor;
-        this._radialEffect = Clutter.feature_available(Clutter.FeatureFlags.SHADERS_GLSL) && params.radialEffect;
-        if (this._radialEffect)
-            this.actor = new RadialShaderQuad({ x: 0,
-                                                y: 0,
-                                                reactive: params.inhibitEvents });
-        else
+//        this._radialEffect = Clutter.feature_available(Clutter.FeatureFlags.SHADERS_GLSL) && params.radialEffect;
+        this._radialEffect = false;
+//        if (this._radialEffect)
+//            this.actor = new RadialShaderQuad({ x: 0,
+//                                                y: 0,
+//                                                reactive: params.inhibitEvents });
+//        else
             this.actor = new St.Bin({ x: 0,
                                       y: 0,
                                       opacity: 0,
diff --git a/js/ui/magnifier.js b/js/ui/magnifier.js
index 4e91155..35e8737 100644
--- a/js/ui/magnifier.js
+++ b/js/ui/magnifier.js
@@ -1131,8 +1131,8 @@ var ZoomRegion = new Lang.Class({
      */
     setInvertLightness: function(flag) {
         this._invertLightness = flag;
-        if (this._magShaderEffects)
-            this._magShaderEffects.setInvertLightness(this._invertLightness);
+//        if (this._magShaderEffects)
+//            this._magShaderEffects.setInvertLightness(this._invertLightness);
     },
 
     /**
@@ -1153,8 +1153,8 @@ var ZoomRegion = new Lang.Class({
      */
     setColorSaturation: function(saturation) {
         this._colorSaturation = saturation;
-        if (this._magShaderEffects)
-            this._magShaderEffects.setColorSaturation(this._colorSaturation);
+//        if (this._magShaderEffects)
+//            this._magShaderEffects.setColorSaturation(this._colorSaturation);
     },
 
     /**
@@ -1177,8 +1177,8 @@ var ZoomRegion = new Lang.Class({
         this._brightness.r = brightness.r;
         this._brightness.g = brightness.g;
         this._brightness.b = brightness.b;
-        if (this._magShaderEffects)
-            this._magShaderEffects.setBrightness(this._brightness);
+//        if (this._magShaderEffects)
+//            this._magShaderEffects.setBrightness(this._brightness);
     },
 
     /**
@@ -1193,8 +1193,8 @@ var ZoomRegion = new Lang.Class({
         this._contrast.r = contrast.r;
         this._contrast.g = contrast.g;
         this._contrast.b = contrast.b;
-        if (this._magShaderEffects)
-            this._magShaderEffects.setContrast(this._contrast);
+//        if (this._magShaderEffects)
+//            this._magShaderEffects.setContrast(this._contrast);
     },
 
     /**
@@ -1250,11 +1250,11 @@ var ZoomRegion = new Lang.Class({
             this._crossHairsActor = null;
 
         // Contrast and brightness effects.
-        this._magShaderEffects = new MagShaderEffects(this._uiGroupClone);
-        this._magShaderEffects.setColorSaturation(this._colorSaturation);
-        this._magShaderEffects.setInvertLightness(this._invertLightness);
-        this._magShaderEffects.setBrightness(this._brightness);
-        this._magShaderEffects.setContrast(this._contrast);
+//        this._magShaderEffects = new MagShaderEffects(this._uiGroupClone);
+//        this._magShaderEffects.setColorSaturation(this._colorSaturation);
+//        this._magShaderEffects.setInvertLightness(this._invertLightness);
+//        this._magShaderEffects.setBrightness(this._brightness);
+//        this._magShaderEffects.setContrast(this._contrast);
     },
 
     _destroyActors: function() {
@@ -1263,8 +1263,8 @@ var ZoomRegion = new Lang.Class({
         if (this._crossHairs)
             this._crossHairs.removeFromParent(this._crossHairsActor);
 
-        this._magShaderEffects.destroyEffects();
-        this._magShaderEffects = null;
+//        this._magShaderEffects.destroyEffects();
+//        this._magShaderEffects = null;
         this._magView.destroy();
         this._magView = null;
         this._background = null;
@@ -1781,95 +1781,95 @@ var Crosshairs = new Lang.Class({
     }
 });
 
-var MagShaderEffects = new Lang.Class({
-    Name: 'MagShaderEffects',
-
-    _init: function(uiGroupClone) {
-        this._inverse = new Shell.InvertLightnessEffect();
-        this._brightnessContrast = new Clutter.BrightnessContrastEffect();
-        this._colorDesaturation = new Clutter.DesaturateEffect();
-        this._inverse.set_enabled(false);
-        this._brightnessContrast.set_enabled(false);
-
-        this._magView = uiGroupClone;
-        this._magView.add_effect(this._inverse);
-        this._magView.add_effect(this._brightnessContrast);
-        this._magView.add_effect(this._colorDesaturation);
-    },
-
-    /**
-     * destroyEffects:
-     * Remove contrast and brightness effects from the magnified view, and
-     * lose the reference to the actor they were applied to.  Don't use this
-     * object after calling this.
-     */
-    destroyEffects: function() {
-        this._magView.clear_effects();
-        this._colorDesaturation = null;
-        this._brightnessContrast = null;
-        this._inverse = null;
-        this._magView = null;
-    },
-
-    /**
-     * setInvertLightness:
-     * Enable/disable invert lightness effect.
-     * @invertFlag:     Enabled flag.
-     */
-    setInvertLightness: function(invertFlag) {
-        this._inverse.set_enabled(invertFlag);
-    },
-
-    setColorSaturation: function(factor) {
-        this._colorDesaturation.set_factor(1.0 - factor);
-    },
-
-    /**
-     * setBrightness:
-     * Set the brightness of the magnified view.
-     * @brightness: Object containing the brightness for the red, green,
-     *              and blue channels.  Values of 0.0 represent "standard"
-     *              brightness (no change), whereas values less or greater than
-     *              0.0 indicate decreased or incresaed brightness,
-     *              respectively.
-     */
-    setBrightness: function(brightness) {
-        let bRed = brightness.r;
-        let bGreen = brightness.g;
-        let bBlue = brightness.b;
-        this._brightnessContrast.set_brightness_full(bRed, bGreen, bBlue);
-
-        // Enable the effect if the brightness OR contrast change are such that
-        // it modifies the brightness and/or contrast.
-        let [cRed, cGreen, cBlue] = this._brightnessContrast.get_contrast();
-        this._brightnessContrast.set_enabled(
-            (bRed != NO_CHANGE || bGreen != NO_CHANGE || bBlue != NO_CHANGE ||
-             cRed != NO_CHANGE || cGreen != NO_CHANGE || cBlue != NO_CHANGE)
-        );
-    },
-
-    /**
-     * Set the contrast of the magnified view.
-     * @contrast:   Object containing the contrast for the red, green,
-     *              and blue channels.  Values of 0.0 represent "standard"
-     *              contrast (no change), whereas values less or greater than
-     *              0.0 indicate decreased or incresaed contrast, respectively.
-     */
-    setContrast: function(contrast) {
-        let cRed = contrast.r;
-        let cGreen = contrast.g;
-        let cBlue = contrast.b;
-
-        this._brightnessContrast.set_contrast_full(cRed, cGreen, cBlue);
-
-        // Enable the effect if the contrast OR brightness change are such that
-        // it modifies the brightness and/or contrast.
-        // should be able to use Clutter.color_equal(), but that complains of
-        // a null first argument.
-        let [bRed, bGreen, bBlue] = this._brightnessContrast.get_brightness();
-        this._brightnessContrast.set_enabled(
-             cRed != NO_CHANGE || cGreen != NO_CHANGE || cBlue != NO_CHANGE ||
-             bRed != NO_CHANGE || bGreen != NO_CHANGE || bBlue != NO_CHANGE
-        );
-    },
-});
+//var MagShaderEffects = new Lang.Class({
+//    Name: 'MagShaderEffects',
+//
+//    _init: function(uiGroupClone) {
+//        this._inverse = new Shell.InvertLightnessEffect();
+//        this._brightnessContrast = new Clutter.BrightnessContrastEffect();
+//        this._colorDesaturation = new Clutter.DesaturateEffect();
+//        this._inverse.set_enabled(false);
+//        this._brightnessContrast.set_enabled(false);
+//
+//        this._magView = uiGroupClone;
+//        this._magView.add_effect(this._inverse);
+//        this._magView.add_effect(this._brightnessContrast);
+//        this._magView.add_effect(this._colorDesaturation);
+//    },
+//
+//    /**
+//     * destroyEffects:
+//     * Remove contrast and brightness effects from the magnified view, and
+//     * lose the reference to the actor they were applied to.  Don't use this
+//     * object after calling this.
+//     */
+//    destroyEffects: function() {
+//        this._magView.clear_effects();
+//        this._colorDesaturation = null;
+//        this._brightnessContrast = null;
+//        this._inverse = null;
+//        this._magView = null;
+//    },
+//
+//    /**
+//     * setInvertLightness:
+//     * Enable/disable invert lightness effect.
+//     * @invertFlag:     Enabled flag.
+//     */
+//    setInvertLightness: function(invertFlag) {
+//        this._inverse.set_enabled(invertFlag);
+//    },
+//
+//    setColorSaturation: function(factor) {
+//        this._colorDesaturation.set_factor(1.0 - factor);
+//    },
+//
+//    /**
+//     * setBrightness:
+//     * Set the brightness of the magnified view.
+//     * @brightness: Object containing the brightness for the red, green,
+//     *              and blue channels.  Values of 0.0 represent "standard"
+//     *              brightness (no change), whereas values less or greater than
+//     *              0.0 indicate decreased or incresaed brightness,
+//     *              respectively.
+//     */
+//    setBrightness: function(brightness) {
+//        let bRed = brightness.r;
+//        let bGreen = brightness.g;
+//        let bBlue = brightness.b;
+//        this._brightnessContrast.set_brightness_full(bRed, bGreen, bBlue);
+//
+//        // Enable the effect if the brightness OR contrast change are such that
+//        // it modifies the brightness and/or contrast.
+//        let [cRed, cGreen, cBlue] = this._brightnessContrast.get_contrast();
+//        this._brightnessContrast.set_enabled(
+//            (bRed != NO_CHANGE || bGreen != NO_CHANGE || bBlue != NO_CHANGE ||
+//             cRed != NO_CHANGE || cGreen != NO_CHANGE || cBlue != NO_CHANGE)
+//        );
+//    },
+//
+//    /**
+//     * Set the contrast of the magnified view.
+//     * @contrast:   Object containing the contrast for the red, green,
+//     *              and blue channels.  Values of 0.0 represent "standard"
+//     *              contrast (no change), whereas values less or greater than
+//     *              0.0 indicate decreased or incresaed contrast, respectively.
+//     */
+//    setContrast: function(contrast) {
+//        let cRed = contrast.r;
+//        let cGreen = contrast.g;
+//        let cBlue = contrast.b;
+//
+//        this._brightnessContrast.set_contrast_full(cRed, cGreen, cBlue);
+//
+//        // Enable the effect if the contrast OR brightness change are such that
+//        // it modifies the brightness and/or contrast.
+//        // should be able to use Clutter.color_equal(), but that complains of
+//        // a null first argument.
+//        let [bRed, bGreen, bBlue] = this._brightnessContrast.get_brightness();
+//        this._brightnessContrast.set_enabled(
+//             cRed != NO_CHANGE || cGreen != NO_CHANGE || cBlue != NO_CHANGE ||
+//             bRed != NO_CHANGE || bGreen != NO_CHANGE || bBlue != NO_CHANGE
+//        );
+//    },
+//});
diff --git a/src/shell-glsl-quad.c b/src/shell-glsl-quad.c
index ba62a98..a6fefbd 100644
--- a/src/shell-glsl-quad.c
+++ b/src/shell-glsl-quad.c
@@ -16,188 +16,188 @@
 #include <cogl/cogl.h>
 #include "shell-glsl-quad.h"
 
-typedef struct _ShellGLSLQuadPrivate ShellGLSLQuadPrivate;
-struct _ShellGLSLQuadPrivate
-{
-  CoglPipeline  *pipeline;
-};
-
-G_DEFINE_TYPE_WITH_PRIVATE (ShellGLSLQuad, shell_glsl_quad, CLUTTER_TYPE_ACTOR);
-
-static gboolean
-shell_glsl_quad_get_paint_volume (ClutterActor       *actor,
-                                  ClutterPaintVolume *volume)
-{
-  return clutter_paint_volume_set_from_allocation (volume, actor);
-}
-
-static void
-shell_glsl_quad_paint (ClutterActor *actor)
-{
-  ShellGLSLQuad *self = SHELL_GLSL_QUAD (actor);
-  ShellGLSLQuadPrivate *priv;
-  guint8 paint_opacity;
-  ClutterActorBox box;
-
-  priv = shell_glsl_quad_get_instance_private (self);
-
-  paint_opacity = clutter_actor_get_paint_opacity (actor);
-  clutter_actor_get_allocation_box (actor, &box);
-
-  cogl_pipeline_set_color4ub (priv->pipeline,
-                              paint_opacity,
-                              paint_opacity,
-                              paint_opacity,
-                              paint_opacity);
-  cogl_framebuffer_draw_rectangle (cogl_get_draw_framebuffer (),
-                                   priv->pipeline,
-                                   box.x1, box.y1,
-                                   box.x2, box.y2);
-}
-
-
-/**
- * shell_glsl_quad_add_glsl_snippet:
- * @quad: a #ShellGLSLQuad
- * @hook: where to insert the code
- * @declarations: GLSL declarations
- * @code: GLSL code
- * @is_replace: wheter Cogl code should be replaced by the custom shader
- *
- * Adds a GLSL snippet to the pipeline used for drawing the actor texture.
- * See #CoglSnippet for details.
- *
- * This is only valid inside the a call to the build_pipeline() virtual
- * function.
- */
-void
-shell_glsl_quad_add_glsl_snippet (ShellGLSLQuad    *quad,
-                                  ShellSnippetHook  hook,
-                                  const char       *declarations,
-                                  const char       *code,
-                                  gboolean          is_replace)
-{
-  ShellGLSLQuadClass *klass = SHELL_GLSL_QUAD_GET_CLASS (quad);
-  CoglSnippet *snippet;
-
-  g_return_if_fail (klass->base_pipeline != NULL);
-
-  if (is_replace)
-    {
-      snippet = cogl_snippet_new ((CoglSnippetHook)hook, declarations, NULL);
-      cogl_snippet_set_replace (snippet, code);
-    }
-  else
-    {
-      snippet = cogl_snippet_new ((CoglSnippetHook)hook, declarations, code);
-    }
-
-  if (hook == SHELL_SNIPPET_HOOK_VERTEX ||
-      hook == SHELL_SNIPPET_HOOK_FRAGMENT)
-    cogl_pipeline_add_snippet (klass->base_pipeline, snippet);
-  else
-    cogl_pipeline_add_layer_snippet (klass->base_pipeline, 0, snippet);
-
-  cogl_object_unref (snippet);
-}
-
-static void
-shell_glsl_quad_dispose (GObject *gobject)
-{
-  ShellGLSLQuad *self = SHELL_GLSL_QUAD (gobject);
-  ShellGLSLQuadPrivate *priv;
-
-  priv = shell_glsl_quad_get_instance_private (self);
-
-  g_clear_pointer (&priv->pipeline, cogl_object_unref);
-
-  G_OBJECT_CLASS (shell_glsl_quad_parent_class)->dispose (gobject);
-}
-
-static void
-shell_glsl_quad_init (ShellGLSLQuad *quad)
-{
-}
-
-static void
-shell_glsl_quad_constructed (GObject *object)
-{
-  ShellGLSLQuad *self;
-  ShellGLSLQuadClass *klass;
-  ShellGLSLQuadPrivate *priv;
-  CoglContext *ctx =
-    clutter_backend_get_cogl_context (clutter_get_default_backend ());
-
-  G_OBJECT_CLASS (shell_glsl_quad_parent_class)->constructed (object);
-
-  /* Note that, differently from ClutterBlurEffect, we are calling
-     this inside constructed, not init, so klass points to the most-derived
-     GTypeClass, not ShellGLSLQuadClass.
-  */
-  klass = SHELL_GLSL_QUAD_GET_CLASS (object);
-  self = SHELL_GLSL_QUAD (object);
-  priv = shell_glsl_quad_get_instance_private (self);
-
-  if (G_UNLIKELY (klass->base_pipeline == NULL))
-    {
-      klass->base_pipeline = cogl_pipeline_new (ctx);
-      cogl_pipeline_set_blend (klass->base_pipeline, "RGBA = ADD (SRC_COLOR * (SRC_COLOR[A]), DST_COLOR * (1-SRC_COLOR[A]))", NULL);
-
-      if (klass->build_pipeline != NULL)
-        klass->build_pipeline (self);
-    }
-
-  priv->pipeline = cogl_pipeline_copy (klass->base_pipeline);
-
-  cogl_pipeline_set_layer_null_texture (priv->pipeline, 0, COGL_TEXTURE_TYPE_2D);
-}
-
-static void
-shell_glsl_quad_class_init (ShellGLSLQuadClass *klass)
-{
-  ClutterActorClass *actor_class = CLUTTER_ACTOR_CLASS (klass);
-  GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
-
-  gobject_class->constructed = shell_glsl_quad_constructed;
-  gobject_class->dispose = shell_glsl_quad_dispose;
-
-  actor_class->get_paint_volume = shell_glsl_quad_get_paint_volume;
-  actor_class->paint = shell_glsl_quad_paint;
-}
-
-/**
- * shell_glsl_quad_get_uniform_location:
- * @quad: a #ShellGLSLQuad
- * @name: the uniform name
- *
- * Returns: the location of the uniform named @name, that can be
- *          passed to shell_glsl_quad_set_uniform_float().
- */
-int
-shell_glsl_quad_get_uniform_location (ShellGLSLQuad *quad,
-                                      const char    *name)
-{
-  ShellGLSLQuadPrivate *priv = shell_glsl_quad_get_instance_private (quad);
-  return cogl_pipeline_get_uniform_location (priv->pipeline, name);
-}
-
-/**
- * shell_glsl_quad_set_uniform_float:
- * @quad: a #ShellGLSLQuad
- * @uniform: the uniform location (as returned by shell_glsl_quad_get_uniform_location())
- * @n_components: the number of components in the uniform (eg. 3 for a vec3)
- * @total_count: the total number of floats in @value
- * @value: (array length=total_count): the array of floats to set @uniform
- */
-void
-shell_glsl_quad_set_uniform_float (ShellGLSLQuad *quad,
-                                   int            uniform,
-                                   int            n_components,
-                                   int            total_count,
-                                   const float   *value)
-{
-  ShellGLSLQuadPrivate *priv = shell_glsl_quad_get_instance_private (quad);
-  cogl_pipeline_set_uniform_float (priv->pipeline, uniform,
-                                   n_components, total_count / n_components,
-                                   value);
-}
+//typedef struct _ShellGLSLQuadPrivate ShellGLSLQuadPrivate;
+//struct _ShellGLSLQuadPrivate
+//{
+//  CoglPipeline  *pipeline;
+//};
+//
+//G_DEFINE_TYPE_WITH_PRIVATE (ShellGLSLQuad, shell_glsl_quad, CLUTTER_TYPE_ACTOR);
+//
+//static gboolean
+//shell_glsl_quad_get_paint_volume (ClutterActor       *actor,
+//                                  ClutterPaintVolume *volume)
+//{
+//  return clutter_paint_volume_set_from_allocation (volume, actor);
+//}
+//
+//static void
+//shell_glsl_quad_paint (ClutterActor *actor)
+//{
+//  ShellGLSLQuad *self = SHELL_GLSL_QUAD (actor);
+//  ShellGLSLQuadPrivate *priv;
+//  guint8 paint_opacity;
+//  ClutterActorBox box;
+//
+//  priv = shell_glsl_quad_get_instance_private (self);
+//
+//  paint_opacity = clutter_actor_get_paint_opacity (actor);
+//  clutter_actor_get_allocation_box (actor, &box);
+//
+//  cogl_pipeline_set_color4ub (priv->pipeline,
+//                              paint_opacity,
+//                              paint_opacity,
+//                              paint_opacity,
+//                              paint_opacity);
+//  cogl_framebuffer_draw_rectangle (cogl_get_draw_framebuffer (),
+//                                   priv->pipeline,
+//                                   box.x1, box.y1,
+//                                   box.x2, box.y2);
+//}
+//
+//
+///**
+// * shell_glsl_quad_add_glsl_snippet:
+// * @quad: a #ShellGLSLQuad
+// * @hook: where to insert the code
+// * @declarations: GLSL declarations
+// * @code: GLSL code
+// * @is_replace: wheter Cogl code should be replaced by the custom shader
+// *
+// * Adds a GLSL snippet to the pipeline used for drawing the actor texture.
+// * See #CoglSnippet for details.
+// *
+// * This is only valid inside the a call to the build_pipeline() virtual
+// * function.
+// */
+//void
+//shell_glsl_quad_add_glsl_snippet (ShellGLSLQuad    *quad,
+//                                  ShellSnippetHook  hook,
+//                                  const char       *declarations,
+//                                  const char       *code,
+//                                  gboolean          is_replace)
+//{
+//  ShellGLSLQuadClass *klass = SHELL_GLSL_QUAD_GET_CLASS (quad);
+//  CoglSnippet *snippet;
+//
+//  g_return_if_fail (klass->base_pipeline != NULL);
+//
+//  if (is_replace)
+//    {
+//      snippet = cogl_snippet_new ((CoglSnippetHook)hook, declarations, NULL);
+//      cogl_snippet_set_replace (snippet, code);
+//    }
+//  else
+//    {
+//      snippet = cogl_snippet_new ((CoglSnippetHook)hook, declarations, code);
+//    }
+//
+//  if (hook == SHELL_SNIPPET_HOOK_VERTEX ||
+//      hook == SHELL_SNIPPET_HOOK_FRAGMENT)
+//    cogl_pipeline_add_snippet (klass->base_pipeline, snippet);
+//  else
+//    cogl_pipeline_add_layer_snippet (klass->base_pipeline, 0, snippet);
+//
+//  cogl_object_unref (snippet);
+//}
+//
+//static void
+//shell_glsl_quad_dispose (GObject *gobject)
+//{
+//  ShellGLSLQuad *self = SHELL_GLSL_QUAD (gobject);
+//  ShellGLSLQuadPrivate *priv;
+//
+//  priv = shell_glsl_quad_get_instance_private (self);
+//
+//  g_clear_pointer (&priv->pipeline, cogl_object_unref);
+//
+//  G_OBJECT_CLASS (shell_glsl_quad_parent_class)->dispose (gobject);
+//}
+//
+//static void
+//shell_glsl_quad_init (ShellGLSLQuad *quad)
+//{
+//}
+//
+//static void
+//shell_glsl_quad_constructed (GObject *object)
+//{
+//  ShellGLSLQuad *self;
+//  ShellGLSLQuadClass *klass;
+//  ShellGLSLQuadPrivate *priv;
+//  CoglContext *ctx =
+//    clutter_backend_get_cogl_context (clutter_get_default_backend ());
+//
+//  G_OBJECT_CLASS (shell_glsl_quad_parent_class)->constructed (object);
+//
+//  /* Note that, differently from ClutterBlurEffect, we are calling
+//     this inside constructed, not init, so klass points to the most-derived
+//     GTypeClass, not ShellGLSLQuadClass.
+//  */
+//  klass = SHELL_GLSL_QUAD_GET_CLASS (object);
+//  self = SHELL_GLSL_QUAD (object);
+//  priv = shell_glsl_quad_get_instance_private (self);
+//
+//  if (G_UNLIKELY (klass->base_pipeline == NULL))
+//    {
+//      klass->base_pipeline = cogl_pipeline_new (ctx);
+//      cogl_pipeline_set_blend (klass->base_pipeline, "RGBA = ADD (SRC_COLOR * (SRC_COLOR[A]), DST_COLOR * (1-SRC_COLOR[A]))", NULL);
+//
+//      if (klass->build_pipeline != NULL)
+//        klass->build_pipeline (self);
+//    }
+//
+//  priv->pipeline = cogl_pipeline_copy (klass->base_pipeline);
+//
+//  cogl_pipeline_set_layer_null_texture (priv->pipeline, 0, COGL_TEXTURE_TYPE_2D);
+//}
+//
+//static void
+//shell_glsl_quad_class_init (ShellGLSLQuadClass *klass)
+//{
+//  ClutterActorClass *actor_class = CLUTTER_ACTOR_CLASS (klass);
+//  GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
+//
+//  gobject_class->constructed = shell_glsl_quad_constructed;
+//  gobject_class->dispose = shell_glsl_quad_dispose;
+//
+//  actor_class->get_paint_volume = shell_glsl_quad_get_paint_volume;
+//  actor_class->paint = shell_glsl_quad_paint;
+//}
+//
+///**
+// * shell_glsl_quad_get_uniform_location:
+// * @quad: a #ShellGLSLQuad
+// * @name: the uniform name
+// *
+// * Returns: the location of the uniform named @name, that can be
+// *          passed to shell_glsl_quad_set_uniform_float().
+// */
+//int
+//shell_glsl_quad_get_uniform_location (ShellGLSLQuad *quad,
+//                                      const char    *name)
+//{
+//  ShellGLSLQuadPrivate *priv = shell_glsl_quad_get_instance_private (quad);
+//  return cogl_pipeline_get_uniform_location (priv->pipeline, name);
+//}
+//
+///**
+// * shell_glsl_quad_set_uniform_float:
+// * @quad: a #ShellGLSLQuad
+// * @uniform: the uniform location (as returned by shell_glsl_quad_get_uniform_location())
+// * @n_components: the number of components in the uniform (eg. 3 for a vec3)
+// * @total_count: the total number of floats in @value
+// * @value: (array length=total_count): the array of floats to set @uniform
+// */
+//void
+//shell_glsl_quad_set_uniform_float (ShellGLSLQuad *quad,
+//                                   int            uniform,
+//                                   int            n_components,
+//                                   int            total_count,
+//                                   const float   *value)
+//{
+//  ShellGLSLQuadPrivate *priv = shell_glsl_quad_get_instance_private (quad);
+//  cogl_pipeline_set_uniform_float (priv->pipeline, uniform,
+//                                   n_components, total_count / n_components,
+//                                   value);
+//}
diff --git a/src/shell-glsl-quad.h b/src/shell-glsl-quad.h
index da2c480..f113b95 100644
--- a/src/shell-glsl-quad.h
+++ b/src/shell-glsl-quad.h
@@ -26,31 +26,31 @@ typedef enum {
   SHELL_SNIPPET_HOOK_TEXTURE_LOOKUP
 } ShellSnippetHook;
 
-#define SHELL_TYPE_GLSL_QUAD (shell_glsl_quad_get_type ())
-G_DECLARE_DERIVABLE_TYPE (ShellGLSLQuad, shell_glsl_quad,
-                          SHELL, GLSL_QUAD, ClutterActor)
-
-struct _ShellGLSLQuadClass
-{
-  ClutterActorClass parent_class;
-
-  CoglPipeline *base_pipeline;
-
-  void (*build_pipeline) (ShellGLSLQuad *effect);
-};
-
-void shell_glsl_quad_add_glsl_snippet (ShellGLSLQuad    *quad,
-                                       ShellSnippetHook  hook,
-                                       const char       *declarations,
-                                       const char       *code,
-                                       gboolean          is_replace);
-
-int  shell_glsl_quad_get_uniform_location (ShellGLSLQuad *quad,
-                                           const char    *name);
-void shell_glsl_quad_set_uniform_float    (ShellGLSLQuad *quad,
-                                           int            uniform,
-                                           int            n_components,
-                                           int            total_count,
-                                           const float   *value);
+//#define SHELL_TYPE_GLSL_QUAD (shell_glsl_quad_get_type ())
+//G_DECLARE_DERIVABLE_TYPE (ShellGLSLQuad, shell_glsl_quad,
+//                          SHELL, GLSL_QUAD, ClutterActor)
+
+//struct _ShellGLSLQuadClass
+//{
+//  ClutterActorClass parent_class;
+//
+//  CoglPipeline *base_pipeline;
+//
+//  void (*build_pipeline) (ShellGLSLQuad *effect);
+//};
+
+//void shell_glsl_quad_add_glsl_snippet (ShellGLSLQuad    *quad,
+//                                       ShellSnippetHook  hook,
+//                                       const char       *declarations,
+//                                       const char       *code,
+//                                       gboolean          is_replace);
+
+//int  shell_glsl_quad_get_uniform_location (ShellGLSLQuad *quad,
+//                                           const char    *name);
+//void shell_glsl_quad_set_uniform_float    (ShellGLSLQuad *quad,
+//                                           int            uniform,
+//                                           int            n_components,
+//                                           int            total_count,
+//                                           const float   *value);
 
 #endif /* __SHELL_GLSL_QUAD_H__ */
diff --git a/src/shell-invert-lightness-effect.c b/src/shell-invert-lightness-effect.c
index b3a2ca4..66f6447 100644
--- a/src/shell-invert-lightness-effect.c
+++ b/src/shell-invert-lightness-effect.c
@@ -84,7 +84,7 @@ shell_invert_lightness_effect_pre_paint (ClutterEffect *effect)
   if (!clutter_actor_meta_get_enabled (CLUTTER_ACTOR_META (effect)))
     return FALSE;
 
-  if (!clutter_feature_available (CLUTTER_FEATURE_SHADERS_GLSL))
+//  if (!clutter_feature_available (CLUTTER_FEATURE_SHADERS_GLSL))
     {
       /* if we don't have support for GLSL shaders then we
        * forcibly disable the ActorMeta
diff --git a/src/st/st-scroll-view-fade.c b/src/st/st-scroll-view-fade.c
index 1753afa..7102a3c 100644
--- a/src/st/st-scroll-view-fade.c
+++ b/src/st/st-scroll-view-fade.c
@@ -49,9 +49,9 @@ struct _StScrollViewFade
   float hfade_offset;
 };
 
-G_DEFINE_TYPE (StScrollViewFade,
-               st_scroll_view_fade,
-               CLUTTER_TYPE_SHADER_EFFECT);
+//G_DEFINE_TYPE (StScrollViewFade,
+//               st_scroll_view_fade,
+//               CLUTTER_TYPE_SHADER_EFFECT);
 
 enum {
   PROP_0,
@@ -72,18 +72,20 @@ st_scroll_view_fade_create_texture (ClutterOffscreenEffect *effect,
                                      COGL_PIXEL_FORMAT_RGBA_8888_PRE);
 }
 
-static char *
-st_scroll_view_fade_get_static_shader_source (ClutterShaderEffect *effect)
-{
-   return g_strdup (st_scroll_view_fade_glsl);
-}
+//static char *
+//st_scroll_view_fade_get_static_shader_source (ClutterShaderEffect *effect)
+//{
+//   return g_strdup (st_scroll_view_fade_glsl);
+//}
 
 
 static void
 st_scroll_view_fade_paint_target (ClutterOffscreenEffect *effect)
 {
-  StScrollViewFade *self = ST_SCROLL_VIEW_FADE (effect);
-  ClutterShaderEffect *shader = CLUTTER_SHADER_EFFECT (effect);
+//  StScrollViewFade *self = ST_SCROLL_VIEW_FADE (effect);
+StScrollViewFade *self = NULL;
+//  ClutterShaderEffect *shader = CLUTTER_SHADER_EFFECT (effect);
+ClutterShaderEffect *shader = NULL;
   ClutterOffscreenEffectClass *parent;
 
   gdouble value, lower, upper, page_size;
@@ -131,24 +133,24 @@ st_scroll_view_fade_paint_target (ClutterOffscreenEffect *effect)
 
   st_adjustment_get_values (self->vadjustment, &value, &lower, &upper, NULL, NULL, &page_size);
   value = (value - lower) / (upper - page_size - lower);
-  clutter_shader_effect_set_uniform (shader, "fade_edges_top", G_TYPE_INT, 1, self->fade_edges ? value >= 0.0 : value > 0.0);
-  clutter_shader_effect_set_uniform (shader, "fade_edges_bottom", G_TYPE_INT, 1, self->fade_edges ? value <= 1.0 : value < 1.0);
+//  clutter_shader_effect_set_uniform (shader, "fade_edges_top", G_TYPE_INT, 1, self->fade_edges ? value >= 0.0 : value > 0.0);
+//  clutter_shader_effect_set_uniform (shader, "fade_edges_bottom", G_TYPE_INT, 1, self->fade_edges ? value <= 1.0 : value < 1.0);
 
   st_adjustment_get_values (self->hadjustment, &value, &lower, &upper, NULL, NULL, &page_size);
   value = (value - lower) / (upper - page_size - lower);
-  clutter_shader_effect_set_uniform (shader, "fade_edges_left", G_TYPE_INT, 1, self->fade_edges ? value >= 0.0 : value > 0.0);
-  clutter_shader_effect_set_uniform (shader, "fade_edges_right", G_TYPE_INT, 1, self->fade_edges ? value <= 1.0 : value < 1.0);
-
-  clutter_shader_effect_set_uniform (shader, "vfade_offset", G_TYPE_FLOAT, 1, self->vfade_offset);
-  clutter_shader_effect_set_uniform (shader, "hfade_offset", G_TYPE_FLOAT, 1, self->hfade_offset);
-  clutter_shader_effect_set_uniform (shader, "tex", G_TYPE_INT, 1, 0);
-  clutter_shader_effect_set_uniform (shader, "height", G_TYPE_FLOAT, 1, clutter_actor_get_height (self->actor));
-  clutter_shader_effect_set_uniform (shader, "width", G_TYPE_FLOAT, 1, clutter_actor_get_width (self->actor));
-  clutter_shader_effect_set_uniform (shader, "fade_area_topleft", CLUTTER_TYPE_SHADER_FLOAT, 2, fade_area_topleft);
-  clutter_shader_effect_set_uniform (shader, "fade_area_bottomright", CLUTTER_TYPE_SHADER_FLOAT, 2, fade_area_bottomright);
-
-  parent = CLUTTER_OFFSCREEN_EFFECT_CLASS (st_scroll_view_fade_parent_class);
-  parent->paint_target(effect);
+//  clutter_shader_effect_set_uniform (shader, "fade_edges_left", G_TYPE_INT, 1, self->fade_edges ? value >= 0.0 : value > 0.0);
+//  clutter_shader_effect_set_uniform (shader, "fade_edges_right", G_TYPE_INT, 1, self->fade_edges ? value <= 1.0 : value < 1.0);
+
+//  clutter_shader_effect_set_uniform (shader, "vfade_offset", G_TYPE_FLOAT, 1, self->vfade_offset);
+//  clutter_shader_effect_set_uniform (shader, "hfade_offset", G_TYPE_FLOAT, 1, self->hfade_offset);
+//  clutter_shader_effect_set_uniform (shader, "tex", G_TYPE_INT, 1, 0);
+//  clutter_shader_effect_set_uniform (shader, "height", G_TYPE_FLOAT, 1, clutter_actor_get_height (self->actor));
+//  clutter_shader_effect_set_uniform (shader, "width", G_TYPE_FLOAT, 1, clutter_actor_get_width (self->actor));
+//  clutter_shader_effect_set_uniform (shader, "fade_area_topleft", CLUTTER_TYPE_SHADER_FLOAT, 2, fade_area_topleft);
+//  clutter_shader_effect_set_uniform (shader, "fade_area_bottomright", CLUTTER_TYPE_SHADER_FLOAT, 2, fade_area_bottomright);
+
+//  parent = CLUTTER_OFFSCREEN_EFFECT_CLASS (st_scroll_view_fade_parent_class);
+//  parent->paint_target(effect);
 }
 
 static void
@@ -180,7 +182,7 @@ st_scroll_view_fade_set_actor (ClutterActorMeta *meta,
 
   g_return_if_fail (actor == NULL || ST_IS_SCROLL_VIEW (actor));
 
-  if (!clutter_feature_available (CLUTTER_FEATURE_SHADERS_GLSL))
+//  if (!clutter_feature_available (CLUTTER_FEATURE_SHADERS_GLSL))
     {
       /* if we don't have support for GLSL shaders then we
        * forcibly disable the ActorMeta
@@ -225,8 +227,8 @@ st_scroll_view_fade_set_actor (ClutterActorMeta *meta,
         on_adjustment_changed (NULL, CLUTTER_EFFECT (self));
     }
 
-  parent = CLUTTER_ACTOR_META_CLASS (st_scroll_view_fade_parent_class);
-  parent->set_actor (meta, actor);
+//  parent = CLUTTER_ACTOR_META_CLASS (st_scroll_view_fade_parent_class);
+//  parent->set_actor (meta, actor);
 
   /* we keep a back pointer here, to avoid going through the ActorMeta */
   self->actor = clutter_actor_meta_get_actor (meta);
@@ -255,7 +257,7 @@ st_scroll_view_fade_dispose (GObject *gobject)
 
   self->actor = NULL;
 
-  G_OBJECT_CLASS (st_scroll_view_fade_parent_class)->dispose (gobject);
+//  G_OBJECT_CLASS (st_scroll_view_fade_parent_class)->dispose (gobject);
 }
 
 static void
@@ -362,51 +364,51 @@ st_scroll_view_fade_get_property (GObject *object,
     }
 }
 
-static void
-st_scroll_view_fade_class_init (StScrollViewFadeClass *klass)
-{
-  GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
-  ClutterShaderEffectClass *shader_class;
-  ClutterOffscreenEffectClass *offscreen_class;
-  ClutterActorMetaClass *meta_class = CLUTTER_ACTOR_META_CLASS (klass);
-
-  gobject_class->dispose = st_scroll_view_fade_dispose;
-  gobject_class->get_property = st_scroll_view_fade_get_property;
-  gobject_class->set_property = st_scroll_view_fade_set_property;
-
-  meta_class->set_actor = st_scroll_view_fade_set_actor;
-
-  shader_class = CLUTTER_SHADER_EFFECT_CLASS (klass);
-  shader_class->get_static_shader_source = st_scroll_view_fade_get_static_shader_source;
-
-  offscreen_class = CLUTTER_OFFSCREEN_EFFECT_CLASS (klass);
-  offscreen_class->create_texture = st_scroll_view_fade_create_texture;
-  offscreen_class->paint_target = st_scroll_view_fade_paint_target;
-
-  g_object_class_install_property (gobject_class,
-                                   PROP_VFADE_OFFSET,
-                                   g_param_spec_float ("vfade-offset",
-                                                       "Vertical Fade Offset",
-                                                       "The height of the area which is faded at the edge",
-                                                       0.f, G_MAXFLOAT, DEFAULT_FADE_OFFSET,
-                                                       G_PARAM_READWRITE));
-  g_object_class_install_property (gobject_class,
-                                   PROP_HFADE_OFFSET,
-                                   g_param_spec_float ("hfade-offset",
-                                                       "Horizontal Fade Offset",
-                                                       "The width of the area which is faded at the edge",
-                                                       0.f, G_MAXFLOAT, DEFAULT_FADE_OFFSET,
-                                                       G_PARAM_READWRITE));
-  g_object_class_install_property (gobject_class,
-                                   PROP_FADE_EDGES,
-                                   g_param_spec_boolean ("fade-edges",
-                                                         "Fade Edges",
-                                                         "Whether the faded area should extend to the edges",
-                                                         FALSE,
-                                                         G_PARAM_READWRITE));
-
-
-}
+//static void
+//st_scroll_view_fade_class_init (StScrollViewFadeClass *klass)
+//{
+//  GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
+//  ClutterShaderEffectClass *shader_class;
+//  ClutterOffscreenEffectClass *offscreen_class;
+//  ClutterActorMetaClass *meta_class = CLUTTER_ACTOR_META_CLASS (klass);
+//
+//  gobject_class->dispose = st_scroll_view_fade_dispose;
+//  gobject_class->get_property = st_scroll_view_fade_get_property;
+//  gobject_class->set_property = st_scroll_view_fade_set_property;
+//
+//  meta_class->set_actor = st_scroll_view_fade_set_actor;
+//
+//  shader_class = CLUTTER_SHADER_EFFECT_CLASS (klass);
+//  shader_class->get_static_shader_source = st_scroll_view_fade_get_static_shader_source;
+//
+//  offscreen_class = CLUTTER_OFFSCREEN_EFFECT_CLASS (klass);
+//  offscreen_class->create_texture = st_scroll_view_fade_create_texture;
+//  offscreen_class->paint_target = st_scroll_view_fade_paint_target;
+//
+//  g_object_class_install_property (gobject_class,
+//                                   PROP_VFADE_OFFSET,
+//                                   g_param_spec_float ("vfade-offset",
+//                                                       "Vertical Fade Offset",
+//                                                       "The height of the area which is faded at the edge",
+//                                                       0.f, G_MAXFLOAT, DEFAULT_FADE_OFFSET,
+//                                                       G_PARAM_READWRITE));
+//  g_object_class_install_property (gobject_class,
+//                                   PROP_HFADE_OFFSET,
+//                                   g_param_spec_float ("hfade-offset",
+//                                                       "Horizontal Fade Offset",
+//                                                       "The width of the area which is faded at the edge",
+//                                                       0.f, G_MAXFLOAT, DEFAULT_FADE_OFFSET,
+//                                                       G_PARAM_READWRITE));
+//  g_object_class_install_property (gobject_class,
+//                                   PROP_FADE_EDGES,
+//                                   g_param_spec_boolean ("fade-edges",
+//                                                         "Fade Edges",
+//                                                         "Whether the faded area should extend to the edges",
+//                                                         FALSE,
+//                                                         G_PARAM_READWRITE));
+//
+//
+//}
 
 static void
 st_scroll_view_fade_init (StScrollViewFade *self)
@@ -415,8 +417,8 @@ st_scroll_view_fade_init (StScrollViewFade *self)
   self->hfade_offset = DEFAULT_FADE_OFFSET;
 }
 
-ClutterEffect *
-st_scroll_view_fade_new (void)
-{
-  return g_object_new (ST_TYPE_SCROLL_VIEW_FADE, NULL);
-}
+//ClutterEffect *
+//st_scroll_view_fade_new (void)
+//{
+//  return g_object_new (ST_TYPE_SCROLL_VIEW_FADE, NULL);
+//}
diff --git a/src/st/st-scroll-view-fade.h b/src/st/st-scroll-view-fade.h
index 2c65a77..ba30afe 100644
--- a/src/st/st-scroll-view-fade.h
+++ b/src/st/st-scroll-view-fade.h
@@ -29,7 +29,7 @@ G_BEGIN_DECLS
 G_DECLARE_FINAL_TYPE (StScrollViewFade, st_scroll_view_fade,
                       ST, SCROLL_VIEW_FADE, ClutterShaderEffect)
 
-ClutterEffect *st_scroll_view_fade_new (void);
+//ClutterEffect *st_scroll_view_fade_new (void);
 
 G_END_DECLS
 
diff --git a/src/st/st-scroll-view.c b/src/st/st-scroll-view.c
index bb26f54..5349d99 100644
--- a/src/st/st-scroll-view.c
+++ b/src/st/st-scroll-view.c
@@ -158,7 +158,7 @@ st_scroll_view_get_property (GObject    *object,
 /**
  * st_scroll_view_update_fade_effect:
  * @scroll: a #StScrollView
- * @vfade_offset: The length of the veritcal fade effect, in pixels.
+ * @vfade_offset: The length of the vertical fade effect, in pixels.
  * @hfade_offset: The length of the horizontal fade effect, in pixels.
  *
  * Sets the height of the fade area area in pixels. A value of 0
@@ -171,24 +171,25 @@ st_scroll_view_update_fade_effect (StScrollView *scroll,
 {
   StScrollViewPrivate *priv = ST_SCROLL_VIEW (scroll)->priv;
 
-  /* A fade amount of more than 0 enables the effect. */
-  if (vfade_offset > 0. || hfade_offset > 0.)
-    {
-      if (priv->fade_effect == NULL) {
-        priv->fade_effect = g_object_new (ST_TYPE_SCROLL_VIEW_FADE, NULL);
-
-        clutter_actor_add_effect_with_name (CLUTTER_ACTOR (scroll), "fade",
-                                            CLUTTER_EFFECT (priv->fade_effect));
-      }
-
-      g_object_set (priv->fade_effect,
-                    "vfade-offset", vfade_offset,
-                    NULL);
-      g_object_set (priv->fade_effect,
-                    "hfade-offset", hfade_offset,
-                    NULL);
-    }
-   else
+priv->fade_effect = NULL;
+//  /* A fade amount of more than 0 enables the effect. */
+//  if (vfade_offset > 0. || hfade_offset > 0.)
+//    {
+//      if (priv->fade_effect == NULL) {
+//        priv->fade_effect = g_object_new (ST_TYPE_SCROLL_VIEW_FADE, NULL);
+//
+//        clutter_actor_add_effect_with_name (CLUTTER_ACTOR (scroll), "fade",
+//                                            CLUTTER_EFFECT (priv->fade_effect));
+//      }
+//
+//      g_object_set (priv->fade_effect,
+//                    "vfade-offset", vfade_offset,
+//                    NULL);
+//      g_object_set (priv->fade_effect,
+//                    "hfade-offset", hfade_offset,
+//                    NULL);
+//    }
+//   else
     {
       if (priv->fade_effect != NULL) {
         clutter_actor_remove_effect (CLUTTER_ACTOR (scroll), CLUTTER_EFFECT (priv->fade_effect));
