summaryrefslogtreecommitdiff
path: root/src/modules/evas/engines/gl_common/evas_gl_polygon.c
diff options
context:
space:
mode:
authorJean-Philippe Andre <jp.andre@samsung.com>2015-02-25 19:05:12 +0900
committerJean-Philippe Andre <jp.andre@samsung.com>2015-02-27 13:06:09 +0900
commitfddaf62fcc4ea94914bfd8a608eceb2eb4610473 (patch)
treeeb4facee25f1696264badb69689b906b85c05b1b /src/modules/evas/engines/gl_common/evas_gl_polygon.c
parentf298183d4e9ba38c06793b3079f4965eaba8fb63 (diff)
Evas masking: Add fast path for image-only masks in GL.
This will currently optimize most of the masks when using the GL engine[1]. This is a very special case that adds a highly optimized path for masking in GL. It works by creating a virtual image, containing a pointer to the original image and a new geometry[2]. Instead of creating a new FBO-based surface (image_map_surface), we refer to the original image and adjust the mask geometry on the fly. KNOWN BUGS: - masking a map with such a scaled image is now broken. [1] Right now all masks are simple Evas Object Image, so that means all cases of masking, except masks of masks, or masks of maps, will be optimized with this new method. [2] This virtual image mechanism is still quite hackish and may be improved (for memory usage, refcounting, etc...)
Diffstat (limited to 'src/modules/evas/engines/gl_common/evas_gl_polygon.c')
-rw-r--r--src/modules/evas/engines/gl_common/evas_gl_polygon.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/modules/evas/engines/gl_common/evas_gl_polygon.c b/src/modules/evas/engines/gl_common/evas_gl_polygon.c
index 0e5dd7f..df87cb7 100644
--- a/src/modules/evas/engines/gl_common/evas_gl_polygon.c
+++ b/src/modules/evas/engines/gl_common/evas_gl_polygon.c
@@ -272,7 +272,7 @@ evas_gl_common_poly_draw(Evas_Engine_GL_Context *gc, Evas_GL_Polygon *poly, int
272 h = 1; 272 h = 1;
273 evas_gl_common_context_rectangle_push(gc, x, y, w, h, 273 evas_gl_common_context_rectangle_push(gc, x, y, w, h,
274 cr, cg, cb, ca, 274 cr, cg, cb, ca,
275 NULL, 0, 0, 0, 0); 275 NULL, 0, 0, 0, 0, EINA_FALSE);
276 } 276 }
277 } 277 }
278 else 278 else
@@ -296,7 +296,7 @@ evas_gl_common_poly_draw(Evas_Engine_GL_Context *gc, Evas_GL_Polygon *poly, int
296 if ((w > 0) && (h > 0)) 296 if ((w > 0) && (h > 0))
297 evas_gl_common_context_rectangle_push(gc, x, y, w, h, 297 evas_gl_common_context_rectangle_push(gc, x, y, w, h,
298 cr, cg, cb, ca, 298 cr, cg, cb, ca,
299 NULL, 0, 0, 0, 0); 299 NULL, 0, 0, 0, 0, EINA_FALSE);
300 } 300 }
301 } 301 }
302 } 302 }