diff options
author | Chris Craik <ccraik@google.com> | 2013-03-04 10:19:31 -0800 |
---|---|---|
committer | Chris Craik <ccraik@google.com> | 2013-04-15 13:53:02 -0700 |
commit | 527a3aace1dd72432c2e0472a570e030ad04bf16 (patch) | |
tree | 24f8cca71f0377a88b35fbe060a3247040b3de9f /libs/hwui/DisplayListRenderer.h | |
parent | 8d4c23b9c32f8c0328ebca538bb801716fe4478a (diff) | |
download | frameworks_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.h | 5 |
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(); |