=== modified file 'debian/compiz-plugins.install'
--- debian/compiz-plugins.install	2013-01-07 09:36:08 +0000
+++ debian/compiz-plugins.install	2013-01-08 05:19:22 +0000
@@ -45,6 +45,7 @@
 debian/tmp/usr/*/compiz/*text.*
 debian/tmp/usr/*/compiz/*titleinfo.*
 debian/tmp/usr/*/compiz/*trailfocus.*
+debian/tmp/usr/*/compiz/*wallpaper.*
 debian/tmp/usr/*/compiz/*water.*
 debian/tmp/usr/*/compiz/*widget.*
 debian/tmp/usr/*/compiz/*winrules.*

=== modified file 'debian/compiz-plugins.install.armel'
--- debian/compiz-plugins.install.armel	2013-01-05 07:28:00 +0000
+++ debian/compiz-plugins.install.armel	2013-01-08 05:19:22 +0000
@@ -36,6 +36,7 @@
 debian/tmp/usr/*/compiz/*text.*
 debian/tmp/usr/*/compiz/*titleinfo.*
 debian/tmp/usr/*/compiz/*trailfocus.*
+debian/tmp/usr/*/compiz/*wallpaper.*
 debian/tmp/usr/*/compiz/*water.*
 debian/tmp/usr/*/compiz/*winrules.*
 debian/tmp/usr/*/compiz/*wobbly.*

=== modified file 'debian/compiz-plugins.install.armhf'
--- debian/compiz-plugins.install.armhf	2013-01-05 07:28:00 +0000
+++ debian/compiz-plugins.install.armhf	2013-01-08 05:19:22 +0000
@@ -36,6 +36,7 @@
 debian/tmp/usr/*/compiz/*text.*
 debian/tmp/usr/*/compiz/*titleinfo.*
 debian/tmp/usr/*/compiz/*trailfocus.*
+debian/tmp/usr/*/compiz/*wallpaper.*
 debian/tmp/usr/*/compiz/*water.*
 debian/tmp/usr/*/compiz/*winrules.*
 debian/tmp/usr/*/compiz/*wobbly.*

=== modified file 'plugins/CMakeLists.txt'
--- plugins/CMakeLists.txt	2013-01-07 09:36:08 +0000
+++ plugins/CMakeLists.txt	2013-01-08 05:19:22 +0000
@@ -36,7 +36,6 @@
 set (COMPIZ_DISABLE_PLUGIN_REFLEX ON)
 set (COMPIZ_DISABLE_PLUGIN_THUMBNAIL ON)
 set (COMPIZ_DISABLE_PLUGIN_STACKSWITCH ON)
-set (COMPIZ_DISABLE_PLUGIN_WALLPAPER ON)
 set (COMPIZ_DISABLE_PLUGIN_TRIP ON)
 
 # disable plugins which won't work on ES2 builds

=== modified file 'plugins/wallpaper/CMakeLists.txt'
--- plugins/wallpaper/CMakeLists.txt	2012-05-16 17:44:47 +0000
+++ plugins/wallpaper/CMakeLists.txt	2013-01-08 05:19:22 +0000
@@ -2,4 +2,4 @@
 
 include (CompizPlugin)
 
-compiz_plugin (wallpaper PLUGINDEPS composite opengl)
+compiz_plugin (wallpaper PLUGINDEPS composite opengl LIBRARIES Xrender)

=== modified file 'plugins/wallpaper/src/wallpaper.cpp'
--- plugins/wallpaper/src/wallpaper.cpp	2012-07-31 13:49:40 +0000
+++ plugins/wallpaper/src/wallpaper.cpp	2013-01-08 05:19:22 +0000
@@ -416,7 +416,8 @@
 }
 
 void
-WallpaperWindow::drawBackgrounds (GLFragment::Attrib &attrib,
+WallpaperWindow::drawBackgrounds (const GLMatrix &transform,
+				  const GLWindowPaintAttrib &attrib,
 				  const CompRegion &region,
 				  unsigned int mask,
 				  WallpaperBackgrounds& bg,
@@ -428,11 +429,12 @@
     GLTexture::Matrix   matrix;
     GLTexture::MatrixList tmpMatrixList;
     WallpaperBackground *back = ws->getBackgroundForViewport (bg);
-	GLFragment::Attrib tmpAttrib = attrib;
+    GLWindowPaintAttrib tmpAttrib = attrib;
 
     tmpMatrixList.push_back (matrix);
 
-    gWindow->geometry().reset();
+    GLVertexBuffer *vb = gWindow->vertexBuffer ();
+    vb->begin ();
 
     tmpMatrixList[0] = back->fillTexMatrix[0];
 
@@ -451,17 +453,14 @@
 
     if (ws->optionGetCycleWallpapers ())
     {
-	if (fadingIn)
-	    tmpAttrib.setOpacity ((OPAQUE * (1.0f - ws->alpha)) * (attrib.getOpacity () / (float)OPAQUE));
-	else
-	    tmpAttrib.setOpacity ((OPAQUE * ws->alpha) * (attrib.getOpacity () / (float)OPAQUE));
+	tmpAttrib.opacity *= fadingIn ? (1.0f - ws->alpha) : ws->alpha;
     }
 
-    if (tmpAttrib.getOpacity () != OPAQUE)
+    if (tmpAttrib.opacity != OPAQUE)
 	mask |= PAINT_WINDOW_BLEND_MASK;
 
-    if (gWindow->geometry ().vCount)
-	gWindow->glDrawTexture(back->fillTex[0], tmpAttrib, mask);
+    if (vb->end ())
+	gWindow->glDrawTexture(back->fillTex[0], transform, tmpAttrib, mask);
 
     if (back->imgSize.width () && back->imgSize.height ())
     {
@@ -469,7 +468,7 @@
 	float  s1, s2;
 	int    x, y;
 
-	gWindow->geometry ().vCount = gWindow->geometry ().indexCount = 0;
+	vb->begin ();
 	tmpMatrixList[0] = back->imgTex[0]->matrix ();
 
 	if (back->imagePos == WallpaperOptions::BgImagePosScaleAndCrop)
@@ -558,21 +557,23 @@
 	    gWindow->glAddGeometry (tmpMatrixList, reg, region);
 	}
 
-	if (gWindow->geometry ().vCount)
-	    gWindow->glDrawTexture (back->imgTex[0], tmpAttrib, mask | PAINT_WINDOW_BLEND_MASK);
+	if (vb->end ())
+	    gWindow->glDrawTexture (back->imgTex[0], transform, tmpAttrib, mask | PAINT_WINDOW_BLEND_MASK);
     }
 }
 
 bool
 WallpaperWindow::glDraw (const GLMatrix &transform,
-			 GLFragment::Attrib &attrib,
+			 const GLWindowPaintAttrib &attrib,
 			 const CompRegion &region,
 			 unsigned int mask)
 {
     WALLPAPER_SCREEN (screen);
 
+    bool ret = gWindow->glDraw (transform, attrib, region, mask);
+
     if ((!ws->desktop || ws->desktop == window) && !ws->backgroundsPrimary.empty() &&
-	window->alpha () && window->type () & CompWindowTypeDesktopMask)
+	window->type () & CompWindowTypeDesktopMask)
     {
 	int filterIdx;
 	GLTexture::Filter   saveFilter;
@@ -588,18 +589,17 @@
 	ws->gScreen->setFilter (filterIdx, GLTexture::Good);
 
 	if (ws->optionGetCycleWallpapers () && ws->rotateTimer.active ())
-	    drawBackgrounds (attrib, region, mask,
+	    drawBackgrounds (transform, attrib, region, mask,
 			     ws->backgroundsSecondary, true);
-	drawBackgrounds (attrib, region, mask,
+	drawBackgrounds (transform, attrib, region, mask,
 			 ws->backgroundsPrimary, false);
 
 	ws->gScreen->setFilter (filterIdx, saveFilter);
 
 	ws->desktop = window;
-	attrib.setOpacity (OPAQUE);
     }
 
-    return gWindow->glDraw (transform, attrib, region, mask);
+    return ret;
 }
 
 bool

=== modified file 'plugins/wallpaper/src/wallpaper.h'
--- plugins/wallpaper/src/wallpaper.h	2010-02-12 19:03:03 +0000
+++ plugins/wallpaper/src/wallpaper.h	2013-01-08 05:19:22 +0000
@@ -132,11 +132,11 @@
         GLWindow        *gWindow;
 
 	void
-	drawBackgrounds (GLFragment::Attrib &,
+	drawBackgrounds (const GLMatrix &, const GLWindowPaintAttrib &,
 			 const CompRegion &, unsigned int,
 			 WallpaperBackgrounds&, bool);
 
-	bool glDraw (const GLMatrix &, GLFragment::Attrib &,
+	bool glDraw (const GLMatrix &, const GLWindowPaintAttrib &,
 		     const CompRegion &, unsigned int);
 
 	bool damageRect (bool, const CompRect &);

