summaryrefslogtreecommitdiffstats
path: root/libs/hwui/DisplayListRenderer.h
diff options
context:
space:
mode:
authorChris Craik <ccraik@google.com>2013-03-04 10:19:31 -0800
committerChris Craik <ccraik@google.com>2013-04-15 13:53:02 -0700
commit527a3aace1dd72432c2e0472a570e030ad04bf16 (patch)
tree24f8cca71f0377a88b35fbe060a3247040b3de9f /libs/hwui/DisplayListRenderer.h
parent8d4c23b9c32f8c0328ebca538bb801716fe4478a (diff)
downloadframeworks_base-527a3aace1dd72432c2e0472a570e030ad04bf16.zip
frameworks_base-527a3aace1dd72432c2e0472a570e030ad04bf16.tar.gz
frameworks_base-527a3aace1dd72432c2e0472a570e030ad04bf16.tar.bz2
Draw Operation merging
Merge simple bitmap draw operations and text operations to avoid issuing individual gl draws for each operation. Merging other ops to be done eventually. The methods are different - the bitmap merging generates a single mesh for reused, unclipped images (esp. repeated images in a listview) The text approach queries just defers the normal font rendering until the last drawText in the sequence that can share the same shader. Patches are sorted and merged, but don't yet have a multiDraw implementation. For now, the pretending-to-merge gives better sorting behavior by keeping similar patches together. Change-Id: Ic300cdab0a53814cf7b09c58bf54b1bf0f58ccd6
Diffstat (limited to 'libs/hwui/DisplayListRenderer.h')
-rw-r--r--libs/hwui/DisplayListRenderer.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/libs/hwui/DisplayListRenderer.h b/libs/hwui/DisplayListRenderer.h
index 19f7eb6..75abad6 100644
--- a/libs/hwui/DisplayListRenderer.h
+++ b/libs/hwui/DisplayListRenderer.h
@@ -121,8 +121,9 @@ public:
float hOffset, float vOffset, SkPaint* paint);
virtual status_t drawPosText(const char* text, int bytesCount, int count,
const float* positions, SkPaint* paint);
- virtual status_t drawText(const char* text, int bytesCount, int count,
- float x, float y, const float* positions, SkPaint* paint, float length);
+ virtual status_t drawText(const char* text, int bytesCount, int count, float x, float y,
+ const float* positions, SkPaint* paint, float length, DrawOpMode drawOpMode);
+
virtual status_t drawRects(const float* rects, int count, SkPaint* paint);
virtual void resetShader();