Merge "Correct viewport initialization, bounds comparison"
diff --git a/libs/hwui/OpenGLRenderer.cpp b/libs/hwui/OpenGLRenderer.cpp
index 7993c0f..826d988 100644
--- a/libs/hwui/OpenGLRenderer.cpp
+++ b/libs/hwui/OpenGLRenderer.cpp
@@ -662,7 +662,9 @@
         // When the layer is not an FBO, we may use glCopyTexImage so we
         // need to make sure the layer does not extend outside the bounds
         // of the framebuffer
-        if (!bounds.intersect(Rect(0, 0, getViewportWidth(), getViewportHeight()))) {
+        const Snapshot& previous = *(currentSnapshot()->previous);
+        Rect previousViewport(0, 0, previous.getViewportWidth(), previous.getViewportHeight());
+        if (!bounds.intersect(previousViewport)) {
             bounds.setEmpty();
         } else if (fboLayer) {
             clip.set(bounds);
diff --git a/libs/hwui/Snapshot.h b/libs/hwui/Snapshot.h
index 485dbf6..5426e89 100644
--- a/libs/hwui/Snapshot.h
+++ b/libs/hwui/Snapshot.h
@@ -271,7 +271,7 @@
 
 private:
     struct ViewportData {
-        ViewportData() : mWidth(0), mHeight() {}
+        ViewportData() : mWidth(0), mHeight(0) {}
         void initialize(int width, int height) {
             mWidth = width;
             mHeight = height;