diff options
author | ChunEon Park <chuneon.park@samsung.com> | 2013-05-10 01:33:56 +0900 |
---|---|---|
committer | ChunEon Park <chuneon.park@samsung.com> | 2013-05-10 01:33:56 +0900 |
commit | 0315565b7b39f38041fcf6e9850c67f230b4db01 (patch) | |
tree | e805a212bd46ab76c219b1b7829bc0e7ecb01389 | |
parent | 979e8e17b7ed97c1771ad100b0abc43103074b7c (diff) | |
download | efl-0315565b7b39f38041fcf6e9850c67f230b4db01.tar.gz |
evas - don't try blend on gl backened if the render option is COPY
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | NEWS | 1 | ||||
-rw-r--r-- | src/modules/evas/engines/gl_common/evas_gl_context.c | 13 |
3 files changed, 12 insertions, 6 deletions
@@ -1,3 +1,7 @@ +2013-05-10 ChunEon Park (Hermet) + + * Evas: don't try blend on gl backened if the render option is COPY + 2013-05-08 Mike Blumenkrantz * Edje: fix custom states for proxy parts @@ -264,3 +264,4 @@ Fixes: * Evas: Fix gif loader can't load image which has normal frames and error frames * Ecore_Input_Evas: Fix ecore_input_evas didn't check the device id of mouse event * Edje: fix custom states for proxy parts + * Evas: Don't try blend on gl backened if the render option is COPY diff --git a/src/modules/evas/engines/gl_common/evas_gl_context.c b/src/modules/evas/engines/gl_common/evas_gl_context.c index 4634aa91ac..6c9d4efa08 100644 --- a/src/modules/evas/engines/gl_common/evas_gl_context.c +++ b/src/modules/evas/engines/gl_common/evas_gl_context.c @@ -1537,12 +1537,12 @@ evas_gl_common_context_image_push(Evas_Engine_GL_Context *gc, { int pnum, nv, nc, nu, ns, i; GLfloat tx1, tx2, ty1, ty2; - Eina_Bool blend = 1; + Eina_Bool blend = EINA_TRUE; GLuint prog = gc->shared->shader[SHADER_IMG].prog; int pn = 0, sam = 0; - if (!tex->alpha) blend = 0; - if (a < 255) blend = 1; + if ((gc->dc->render_op == EVAS_RENDER_COPY) || + ((a == 255) && (!tex->alpha))) blend = EINA_FALSE; if (gc->filter_prog) { @@ -2288,7 +2288,7 @@ evas_gl_common_context_image_map_push(Evas_Engine_GL_Context *gc, const int points[6] = { 0, 1, 2, 0, 2, 3 }; int x = 0, y = 0, w = 0, h = 0, px = 0, py = 0; GLfloat tx[4], ty[4], t2x[4], t2y[4]; - Eina_Bool blend = 1; + Eina_Bool blend = EINA_TRUE; DATA32 cmul; GLuint prog = gc->shared->shader[SHADER_IMG].prog; Eina_Bool utexture = EINA_FALSE; @@ -2296,8 +2296,9 @@ evas_gl_common_context_image_map_push(Evas_Engine_GL_Context *gc, int pn = 0; int flat = 0; - if (!tex->alpha) blend = 0; - if (a < 255) blend = 1; + if ((gc->dc->render_op == EVAS_RENDER_COPY) || + ((a == 255) && (!tex->alpha))) blend = EINA_FALSE; + if (npoints != 4) { // FIXME: nash - you didn't fix this for n points. its still all |