summaryrefslogtreecommitdiffstats
path: root/libs/hwui/DisplayListRenderer.h
diff options
context:
space:
mode:
Diffstat (limited to 'libs/hwui/DisplayListRenderer.h')
-rw-r--r--libs/hwui/DisplayListRenderer.h37
1 files changed, 15 insertions, 22 deletions
diff --git a/libs/hwui/DisplayListRenderer.h b/libs/hwui/DisplayListRenderer.h
index 2f74f5b..93b065d 100644
--- a/libs/hwui/DisplayListRenderer.h
+++ b/libs/hwui/DisplayListRenderer.h
@@ -398,7 +398,6 @@ public:
private:
void init();
-
void initProperties();
void clearResources();
@@ -424,16 +423,7 @@ private:
}
SkBitmap* getBitmapData() {
- SkBitmap* bitmap = new SkBitmap;
- bitmap->setConfig((SkBitmap::Config) getInt(), getInt(), getInt());
- if (!bitmap->allocPixels()) {
- delete bitmap;
- return NULL;
- }
-
- bitmap->setPixels((void*) mReader.skip(bitmap->height() * bitmap->rowBytes()));
-
- return bitmap;
+ return (SkBitmap*) getInt();
}
SkiaShader* getShader() {
@@ -497,6 +487,7 @@ private:
}
Vector<SkBitmap*> mBitmapResources;
+ Vector<SkBitmap*> mOwnedBitmapResources;
Vector<SkiaColorFilter*> mFilterResources;
Vector<SkPaint*> mPaints;
@@ -552,6 +543,8 @@ public:
ANDROID_API DisplayList* getDisplayList(DisplayList* displayList);
+ virtual bool isDeferred();
+
virtual void setViewport(int width, int height);
virtual void prepareDirty(float left, float top, float right, float bottom, bool opaque);
virtual void finish();
@@ -634,6 +627,10 @@ public:
return mBitmapResources;
}
+ const Vector<SkBitmap*>& getOwnedBitmapResources() const {
+ return mOwnedBitmapResources;
+ }
+
const Vector<SkiaColorFilter*>& getFilterResources() const {
return mFilterResources;
}
@@ -719,17 +716,6 @@ private:
mWriter.write(values, count * sizeof(int32_t));
}
- void addBitmapData(SkBitmap* bitmap) {
- mWriter.writeInt(bitmap->config());
- mWriter.writeInt(bitmap->width());
- mWriter.writeInt(bitmap->height());
-
- SkAutoLockPixels alp(*bitmap);
- void* src = bitmap->getPixels();
-
- mWriter.write(src, bitmap->rowBytes() * bitmap->height());
- }
-
void addUInts(const uint32_t* values, int8_t count) {
mWriter.writeInt(count);
mWriter.write(values, count * sizeof(uint32_t));
@@ -825,6 +811,12 @@ private:
Caches::getInstance().resourceCache.incrementRefcount(bitmap);
}
+ void addBitmapData(SkBitmap* bitmap) {
+ addInt((int) bitmap);
+ mOwnedBitmapResources.add(bitmap);
+ Caches::getInstance().resourceCache.incrementRefcount(bitmap);
+ }
+
inline void addShader(SkiaShader* shader) {
if (!shader) {
addInt((int) NULL);
@@ -851,6 +843,7 @@ private:
}
Vector<SkBitmap*> mBitmapResources;
+ Vector<SkBitmap*> mOwnedBitmapResources;
Vector<SkiaColorFilter*> mFilterResources;
Vector<SkPaint*> mPaints;