summaryrefslogtreecommitdiffstats
path: root/libs/hwui/DeferredLayerUpdater.cpp
diff options
context:
space:
mode:
authorDerek Sollenberger <djsollen@google.com>2014-02-19 16:47:32 +0000
committerDerek Sollenberger <djsollen@google.com>2014-02-20 16:20:33 -0500
commit674554fc36932ca50b15bba41ac6f650254d4e72 (patch)
treeec0fc936ce4fdbd15d8bf6e15348676194855b8a /libs/hwui/DeferredLayerUpdater.cpp
parent96f0369b25811319398a268071eb147fe14a09e3 (diff)
downloadframeworks_base-674554fc36932ca50b15bba41ac6f650254d4e72.zip
frameworks_base-674554fc36932ca50b15bba41ac6f650254d4e72.tar.gz
frameworks_base-674554fc36932ca50b15bba41ac6f650254d4e72.tar.bz2
Reapply "Refactor setting an SkPaint onto a hwui Layer."
This reverts commit 90d0c75e94a32fb7d993fae69762820aabc2fcbb. Change-Id: Ie807761231edf7c848b019931dccbf466208c0be
Diffstat (limited to 'libs/hwui/DeferredLayerUpdater.cpp')
-rw-r--r--libs/hwui/DeferredLayerUpdater.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/libs/hwui/DeferredLayerUpdater.cpp b/libs/hwui/DeferredLayerUpdater.cpp
index efb1298..62f6c76 100644
--- a/libs/hwui/DeferredLayerUpdater.cpp
+++ b/libs/hwui/DeferredLayerUpdater.cpp
@@ -34,21 +34,23 @@ DeferredLayerUpdater::DeferredLayerUpdater(Layer* layer, OpenGLRenderer* rendere
mWidth = mLayer->layer.getWidth();
mHeight = mLayer->layer.getHeight();
mBlend = mLayer->isBlend();
- mColorFilter = mLayer->getColorFilter();
+ mColorFilter = SkSafeRef(mLayer->getColorFilter());
mAlpha = mLayer->getAlpha();
mMode = mLayer->getMode();
mDirtyRect.setEmpty();
}
DeferredLayerUpdater::~DeferredLayerUpdater() {
- setColorFilter(NULL);
+ SkSafeUnref(mColorFilter);
if (mLayer) {
mCaches.resourceCache.decrementRefcount(mLayer);
}
delete mRenderer;
}
-void DeferredLayerUpdater::setColorFilter(SkColorFilter* colorFilter) {
+void DeferredLayerUpdater::setPaint(const SkPaint* paint) {
+ OpenGLRenderer::getAlphaAndModeDirect(paint, &mAlpha, &mMode);
+ SkColorFilter* colorFilter = (paint) ? paint->getColorFilter() : NULL;
SkRefCnt_SafeAssign(mColorFilter, colorFilter);
}