Don't use full screen FBOs, this dramatically increase performance.
The next step will be to add an FBO cache to avoid churning memory on every
frame we draw. This change also adds support for drawBitmap(Bitmap, Matrix, Paint).
Change-Id: I7825cdcf0cad9bffe6219e05d8328a53d4a6e583
diff --git a/libs/hwui/Snapshot.h b/libs/hwui/Snapshot.h
index ca91b34..d1809f3 100644
--- a/libs/hwui/Snapshot.h
+++ b/libs/hwui/Snapshot.h
@@ -51,6 +51,7 @@
* snapshot.
*/
Snapshot(const sp<Snapshot> s):
+ height(s->height),
transform(s->transform),
clipRect(s->clipRect),
flags(kFlagDirtyTransform),
@@ -80,6 +81,10 @@
* a new layer.
*/
kFlagIsLayer = 0x4,
+ /**
+ * Indicates that this snapshot has changed the ortho matrix.
+ */
+ kFlagDirtyOrtho = 0x8,
};
/**
@@ -95,6 +100,11 @@
}
/**
+ * Height of the framebuffer the snapshot is rendering into.
+ */
+ int height;
+
+ /**
* Local transformation. Holds the current translation, scale and
* rotation values.
*/
@@ -141,6 +151,11 @@
*/
SkXfermode::Mode mode;
+ /**
+ * Contains the previous ortho matrix.
+ */
+ float orthoMatrix[16];
+
private:
// Clipping rectangle mapped with the transform
Rect mappedClip;