diff options
author | Derek Sollenberger <djsollen@google.com> | 2014-02-19 16:47:32 +0000 |
---|---|---|
committer | Derek Sollenberger <djsollen@google.com> | 2014-02-20 16:20:33 -0500 |
commit | 674554fc36932ca50b15bba41ac6f650254d4e72 (patch) | |
tree | ec0fc936ce4fdbd15d8bf6e15348676194855b8a /libs/hwui/DeferredLayerUpdater.cpp | |
parent | 96f0369b25811319398a268071eb147fe14a09e3 (diff) | |
download | frameworks_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.cpp | 8 |
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); } |