+
+static void renderer_area_clip_add(RendererClutter *rc, gfloat x, gfloat y, gfloat w, gfloat h)
+{
+ PixbufRenderer *pr = rc->pr;
+ gfloat x2, y2;
+ gfloat clip_x, clip_y, clip_w, clip_h, clip_x2, clip_y2;
+
+ x2 = x + w;
+ y2 = y + h;
+
+ clutter_actor_get_clip(rc->texture, &clip_x, &clip_y, &clip_w, &clip_h);
+
+ clip_x2 = clip_x + clip_w;
+ clip_y2 = clip_y + clip_h;
+
+ if (clip_x > x) clip_x = x;
+ if (clip_x2 < x2) clip_x2 = x2;
+ if (clip_y > y) clip_y = y;
+ if (clip_y2 < y2) clip_y2 = y2;
+
+ clip_w = clip_x2 - clip_x;
+ clip_h = clip_y2 - clip_y;
+
+ printf("clip %f %f %f %f\n", clip_x, clip_y, clip_w, clip_h);
+ clutter_actor_set_clip(rc->texture, clip_x, clip_y, clip_w, clip_h);
+}
+
+#define MAX_REGION_AREA (32768 * 1024)