Evas filters: Disable proxies with the GL engine
authorJean-Philippe Andre <jp.andre@samsung.com>
Fri, 7 Feb 2014 08:27:27 +0000 (17:27 +0900)
committerJean-Philippe Andre <jp.andre@samsung.com>
Fri, 7 Feb 2014 08:59:23 +0000 (17:59 +0900)
Well, proxy sources are rendered to a... GL texture! But we
actually want the image pixels. So we'll need to call glReadPixels
to get them.

Yes, it will be horribly slow. But there isn't really a way around.
This will require a new internal API. For now, just disable the
feature. Hopefully I can make it work soon enough for the release?

src/lib/evas/filters/evas_filter.c

index 0e2703c..fc3f462 100644 (file)
@@ -218,6 +218,13 @@ evas_filter_context_proxy_render_all(Evas_Filter_Context *ctx, Eo *eo_obj,
 
    obj = eo_data_scope_get(eo_obj, EVAS_OBJ_CLASS);
 
+   if (ctx->gl_engine)
+     {
+        // FIXME: We need to call glReadPixels (yeah, no other way around...)
+        CRI("Proxy subrender is not supported in the GL engine (yet)");
+        return;
+     }
+
    EINA_LIST_FOREACH(ctx->buffers, li, fb)
      if (fb->source)
        {