aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/evas/canvas/evas_object_image.c
diff options
context:
space:
mode:
authorJean-Philippe Andre <jp.andre@samsung.com>2015-03-03 20:08:16 +0900
committerJean-Philippe Andre <jp.andre@samsung.com>2015-03-03 20:08:16 +0900
commitbea9567d0e6c7a1a02915993ecfc04c6d690f0fc (patch)
treeae7ec5fa9d052e6b8421812edbfa55f7d9569b98 /src/lib/evas/canvas/evas_object_image.c
parentEvas GL: Automatic fallback to indirect rendering when the scene has (diff)
downloadefl-bea9567d0e6c7a1a02915993ecfc04c6d690f0fc.tar.gz
Evas GL: Kill runtime warnings caused by auto fallback
The previous commit modifies the concept of direct rendering vs. indirect rendering, so some runtime checks (in debug mode only) will fail. This commit introduces two new engine functions: - gl_get_pixels_pre - gl_get_pixels_post The latter will be used in a later patch for optimization.
Diffstat (limited to 'src/lib/evas/canvas/evas_object_image.c')
-rw-r--r--src/lib/evas/canvas/evas_object_image.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/src/lib/evas/canvas/evas_object_image.c b/src/lib/evas/canvas/evas_object_image.c
index e4aa44863d..90b3c49aa2 100644
--- a/src/lib/evas/canvas/evas_object_image.c
+++ b/src/lib/evas/canvas/evas_object_image.c
@@ -2900,7 +2900,13 @@ evas_process_dirty_pixels(Evas_Object *eo_obj, Evas_Object_Protected_Data *obj,
h = obj->cur->geometry.h;
if (!o->direct_render)
- o->pixels->func.get_pixels(o->pixels->func.get_pixels_data, eo_obj);
+ {
+ if (ENFN->gl_get_pixels_pre)
+ ENFN->gl_get_pixels_pre(output);
+ o->pixels->func.get_pixels(o->pixels->func.get_pixels_data, eo_obj);
+ if (ENFN->gl_get_pixels_post)
+ ENFN->gl_get_pixels_post(output);
+ }
if (!(obj->cur->geometry.x == x &&
obj->cur->geometry.y == y &&
@@ -2936,9 +2942,11 @@ evas_process_dirty_pixels(Evas_Object *eo_obj, Evas_Object_Protected_Data *obj,
else
{
// Auto-fallback to FBO rendering (for perf & power consumption)
+ if (ENFN->gl_get_pixels_pre)
+ ENFN->gl_get_pixels_pre(output);
o->pixels->func.get_pixels(o->pixels->func.get_pixels_data, obj->object);
- //if (ENFN->get_pixels_render_post)
- //ENFN->get_pixels_render_post(output);
+ if (ENFN->gl_get_pixels_post)
+ ENFN->gl_get_pixels_post(output);
o->direct_render = EINA_FALSE;
}
}