raster pushed a commit to branch master.

commit d47a81ce170414eb2f8d68e7c7e5086eee9366fe
Author: Carsten Haitzler (Rasterman) <[email protected]>
Date:   Sat May 4 11:43:02 2013 +0900

    last scissor always scissor stuff broke map. fix it to work again
    accounting for fbo's and master clip.
---
 src/modules/evas/engines/gl_common/evas_gl_context.c | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

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 d16ce90..414da57 100644
--- a/src/modules/evas/engines/gl_common/evas_gl_context.c
+++ b/src/modules/evas/engines/gl_common/evas_gl_context.c
@@ -2742,13 +2742,14 @@ shader_array_flush(Evas_Engine_GL_Context *gc)
                        ch = gc->master_clip.h;
                     }
                }
-             if ((gc->pipe[i].shader.clip) || (gc->master_clip.enabled))
+             if ((gc->pipe[i].shader.clip) || 
+                 ((gc->master_clip.enabled) && (!fbo)))
                {
                   glEnable(GL_SCISSOR_TEST);
                   if (!fbo)
-                     scissor_rot(gc, gc->rot, gw, gh, cx, gh - cy - ch, cw, 
ch);
+                    scissor_rot(gc, gc->rot, gw, gh, cx, gh - cy - ch, cw, ch);
                   else
-                     glScissor(cx, cy, cw, ch);
+                    glScissor(cx, cy, cw, ch);
                   setclip = 1;
                   gc->state.current.cx = cx;
                   gc->state.current.cy = cy;
@@ -2766,7 +2767,7 @@ shader_array_flush(Evas_Engine_GL_Context *gc)
                }
           }
         if (((gc->pipe[i].shader.clip) && (!setclip)) ||
-            (gc->master_clip.enabled))
+            ((gc->master_clip.enabled) && (!fbo)))
           {
              int cx, cy, cw, ch;
              
@@ -2796,9 +2797,9 @@ shader_array_flush(Evas_Engine_GL_Context *gc)
                  (ch != gc->state.current.ch))
                {
                   if (!fbo)
-                     scissor_rot(gc, gc->rot, gw, gh, cx, gh - cy - ch, cw, 
ch);
+                    scissor_rot(gc, gc->rot, gw, gh, cx, gh - cy - ch, cw, ch);
                   else
-                     glScissor(cx, cy, cw, ch);
+                    glScissor(cx, cy, cw, ch);
                   gc->state.current.cx = cx;
                   gc->state.current.cy = cy;
                   gc->state.current.cw = cw;

-- 

------------------------------------------------------------------------------
Get 100% visibility into Java/.NET code with AppDynamics Lite
It's a free troubleshooting tool designed for production
Get down to code-level detail for bottlenecks, with <2% overhead.
Download for free and get started troubleshooting in minutes.
http://p.sf.net/sfu/appdyn_d2d_ap2

Reply via email to