diff options
Diffstat (limited to 'libs/hwui/DeferredLayerUpdater.cpp')
-rw-r--r-- | libs/hwui/DeferredLayerUpdater.cpp | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/libs/hwui/DeferredLayerUpdater.cpp b/libs/hwui/DeferredLayerUpdater.cpp index 03bbaf0bb0d1..ed05d0475437 100644 --- a/libs/hwui/DeferredLayerUpdater.cpp +++ b/libs/hwui/DeferredLayerUpdater.cpp @@ -32,26 +32,24 @@ DeferredLayerUpdater::DeferredLayerUpdater(Layer* layer, OpenGLRenderer* rendere , mRenderer(renderer) , mCaches(Caches::getInstance()) { mCaches.resourceCache.incrementRefcount(mLayer); - SkRefCnt_SafeAssign(mColorFilter, mLayer->getColorFilter()); mWidth = mLayer->layer.getWidth(); mHeight = mLayer->layer.getHeight(); mBlend = mLayer->isBlend(); + mColorFilter = mLayer->getColorFilter(); mAlpha = mLayer->getAlpha(); mMode = mLayer->getMode(); mDirtyRect.setEmpty(); } DeferredLayerUpdater::~DeferredLayerUpdater() { - SkSafeUnref(mColorFilter); + setColorFilter(NULL); if (mLayer) { mCaches.resourceCache.decrementRefcount(mLayer); } delete mRenderer; } -void DeferredLayerUpdater::setPaint(const SkPaint* paint) { - OpenGLRenderer::getAlphaAndModeDirect(paint, &mAlpha, &mMode); - SkColorFilter* colorFilter = (paint) ? paint->getColorFilter() : NULL; +void DeferredLayerUpdater::setColorFilter(SkColorFilter* colorFilter) { SkRefCnt_SafeAssign(mColorFilter, colorFilter); } @@ -138,10 +136,9 @@ void DeferredLayerUpdater::applyDeferred(DeferredLayerUpdater* deferredApply) { deferredApply->mSurfaceTexture = mSurfaceTexture; deferredApply->mNeedsGLContextAttach = mNeedsGLContextAttach; deferredApply->mUpdateTexImage = mUpdateTexImage; + deferredApply->setColorFilter(mColorFilter); deferredApply->setTransform(mTransform); - SkRefCnt_SafeAssign(deferredApply->mColorFilter, mColorFilter); - mDisplayList = 0; mDirtyRect.setEmpty(); mTransform = 0; |