fix proxy rendering!!!! ugh. i dont like the way i did it.. but its
authorraster <raster@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Sat, 20 Aug 2011 14:40:28 +0000 (14:40 +0000)
committerraster <raster@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Sat, 20 Aug 2011 14:40:28 +0000 (14:40 +0000)
quick and does the job.

git-svn-id: http://svn.enlightenment.org/svn/e/trunk/evas@62631 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

src/lib/canvas/evas_object_image.c
src/lib/canvas/evas_render.c
src/lib/include/evas_private.h

index 66157c6..08baae6 100644 (file)
@@ -2231,8 +2231,16 @@ _proxy_subrender(Evas *e, Evas_Object *source)
         source->proxy.w = w;
         source->proxy.h = h;
      }
-   
+
    ctx = e->engine.func->context_new(e->engine.data.output);
+   evas_render_mapped(e, source, ctx, source->proxy.surface,
+                      -source->cur.geometry.x,
+                      -source->cur.geometry.y,
+                      1, 0, 0, e->output.w, e->output.h);
+   e->engine.func->context_free(e->engine.data.output, ctx);
+   source->proxy.surface = e->engine.func->image_dirty_region
+      (e->engine.data.output, source->proxy.surface, 0, 0, w, h);
+/*   
    e->engine.func->context_color_set(e->engine.data.output, ctx, 0, 0, 0, 0);
    e->engine.func->context_render_op_set(e->engine.data.output, ctx, EVAS_RENDER_COPY);
    e->engine.func->rectangle_draw(e->engine.data.output, ctx,
@@ -2265,6 +2273,7 @@ _proxy_subrender(Evas *e, Evas_Object *source)
    e->engine.func->context_free(e->engine.data.output, ctx);
    source->proxy.surface = e->engine.func->image_dirty_region
       (e->engine.data.output, source->proxy.surface, 0, 0, w, h);
+ */
 }
 
 #if 0 // filtering disabled
index a3540fc..41ea0f5 100644 (file)
@@ -647,7 +647,7 @@ pending_change(void *data, void *gdata __UNUSED__)
    }
  */
 
-static Eina_Bool
+Eina_Bool
 evas_render_mapped(Evas *e, Evas_Object *obj, void *context, void *surface,
                    int off_x, int off_y, int mapped,
                    int ecx, int ecy, int ecw, int ech
index afaa05e..d20d0f5 100644 (file)
@@ -989,6 +989,10 @@ void _evas_unwalk(Evas *e);
 // expose for use in engines
 EAPI int _evas_module_engine_inherit(Evas_Func *funcs, char *name);
 
+Eina_Bool evas_render_mapped(Evas *e, Evas_Object *obj, 
+                             void *context, void *surface,
+                             int off_x, int off_y, int mapped,
+                             int ecx, int ecy, int ecw, int ech);
 void evas_render_invalidate(Evas *e);
 void evas_render_object_recalc(Evas_Object *obj);