diff options
Diffstat (limited to 'services/surfaceflinger/SurfaceFlinger.cpp')
-rw-r--r-- | services/surfaceflinger/SurfaceFlinger.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp index eea0e6b..a8d20bb 100644 --- a/services/surfaceflinger/SurfaceFlinger.cpp +++ b/services/surfaceflinger/SurfaceFlinger.cpp @@ -2597,6 +2597,8 @@ status_t SurfaceFlinger::captureScreenImplLocked(const sp<IBinder>& display, if (status == GL_FRAMEBUFFER_COMPLETE_OES) { // invert everything, b/c glReadPixel() below will invert the FB + GLint viewport[4]; + glGetIntegerv(GL_VIEWPORT, viewport); glViewport(0, 0, sw, sh); glMatrixMode(GL_PROJECTION); glPushMatrix(); @@ -2645,7 +2647,7 @@ status_t SurfaceFlinger::captureScreenImplLocked(const sp<IBinder>& display, result = NO_MEMORY; } } - glViewport(0, 0, hw_w, hw_h); + glViewport(viewport[0], viewport[1], viewport[2], viewport[3]); glMatrixMode(GL_PROJECTION); glPopMatrix(); glMatrixMode(GL_MODELVIEW); |