summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChunEon Park <chuneon.park@samsung.com>2013-05-10 01:33:56 +0900
committerChunEon Park <chuneon.park@samsung.com>2013-05-10 01:33:56 +0900
commit0315565b7b39f38041fcf6e9850c67f230b4db01 (patch)
treee805a212bd46ab76c219b1b7829bc0e7ecb01389
parent979e8e17b7ed97c1771ad100b0abc43103074b7c (diff)
downloadefl-0315565b7b39f38041fcf6e9850c67f230b4db01.tar.gz
evas - don't try blend on gl backened if the render option is COPY
-rw-r--r--ChangeLog4
-rw-r--r--NEWS1
-rw-r--r--src/modules/evas/engines/gl_common/evas_gl_context.c13
3 files changed, 12 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog
index ec37b2ac40..6bcd3a67fb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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
diff --git a/NEWS b/NEWS
index 9531e032ed..1f5c49a85e 100644
--- a/NEWS
+++ b/NEWS
@@ -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