OSDN Git Service

reset the gl viewport at each frame for each display
authorMathias Agopian <mathias@google.com>
Thu, 29 Aug 2013 01:11:46 +0000 (18:11 -0700)
committerMathias Agopian <mathias@google.com>
Thu, 29 Aug 2013 01:11:46 +0000 (18:11 -0700)
Bug: 100971289506003
Change-Id: Ie0403a631e339a9134216224f3366f46ece58b53

services/surfaceflinger/DisplayDevice.cpp
services/surfaceflinger/SurfaceFlinger.cpp

index 9708ee3..61a9361 100644 (file)
@@ -271,9 +271,9 @@ EGLBoolean DisplayDevice::makeCurrent(EGLDisplay dpy, EGLContext ctx) const {
         if (result == EGL_TRUE) {
             if (mType >= DisplayDevice::DISPLAY_VIRTUAL)
                 eglSwapInterval(dpy, 0);
-            setViewportAndProjection();
         }
     }
+    setViewportAndProjection();
     return result;
 }
 
index 9fd3f25..0323cb7 100644 (file)
@@ -2726,6 +2726,7 @@ void SurfaceFlinger::renderScreenImplLocked(
 
     // compositionComplete is needed for older driver
     hw->compositionComplete();
+    hw->setViewportAndProjection();
 }
 
 
@@ -2805,8 +2806,6 @@ status_t SurfaceFlinger::captureScreenImplLocked(
         native_window_api_disconnect(window, NATIVE_WINDOW_API_EGL);
     }
 
-    hw->setViewportAndProjection();
-
     return result;
 }