Loading libs/hwui/DisplayListOp.h +4 −1 Original line number Diff line number Diff line Loading @@ -212,10 +212,13 @@ protected: // check state/paint for transparency if (mPaint) { if (mPaint->getAlpha() != 0xFF) { return false; } if (mPaint->getShader() && !mPaint->getShader()->isOpaque()) { return false; } if (mPaint->getAlpha() != 0xFF) { if (Renderer::isBlendedColorFilter(mPaint->getColorFilter())) { return false; } } Loading libs/hwui/OpenGLRenderer.cpp +0 −7 Original line number Diff line number Diff line Loading @@ -1734,13 +1734,6 @@ void OpenGLRenderer::accountForClear(SkXfermode::Mode mode) { } } static bool isBlendedColorFilter(const SkColorFilter* filter) { if (filter == NULL) { return false; } return (filter->getFlags() & SkColorFilter::kAlphaUnchanged_Flag) == 0; } void OpenGLRenderer::setupDrawBlending(const Layer* layer, bool swapSrcDst) { SkXfermode::Mode mode = layer->getMode(); // When the blending mode is kClear_Mode, we need to use a modulate color Loading libs/hwui/Renderer.h +10 −1 Original line number Diff line number Diff line Loading @@ -17,12 +17,13 @@ #ifndef ANDROID_HWUI_RENDERER_H #define ANDROID_HWUI_RENDERER_H #include <SkColorFilter.h> #include <SkPaint.h> #include <SkRegion.h> #include <utils/String8.h> #include "AssetAtlas.h" #include "SkPaint.h" namespace android { Loading Loading @@ -81,6 +82,14 @@ public: && !paint.getColorFilter() && getXfermode(paint.getXfermode()) == SkXfermode::kSrcOver_Mode; } static bool isBlendedColorFilter(const SkColorFilter* filter) { if (filter == NULL) { return false; } return (filter->getFlags() & SkColorFilter::kAlphaUnchanged_Flag) == 0; } // ---------------------------------------------------------------------------- // Frame state operations // ---------------------------------------------------------------------------- Loading Loading
libs/hwui/DisplayListOp.h +4 −1 Original line number Diff line number Diff line Loading @@ -212,10 +212,13 @@ protected: // check state/paint for transparency if (mPaint) { if (mPaint->getAlpha() != 0xFF) { return false; } if (mPaint->getShader() && !mPaint->getShader()->isOpaque()) { return false; } if (mPaint->getAlpha() != 0xFF) { if (Renderer::isBlendedColorFilter(mPaint->getColorFilter())) { return false; } } Loading
libs/hwui/OpenGLRenderer.cpp +0 −7 Original line number Diff line number Diff line Loading @@ -1734,13 +1734,6 @@ void OpenGLRenderer::accountForClear(SkXfermode::Mode mode) { } } static bool isBlendedColorFilter(const SkColorFilter* filter) { if (filter == NULL) { return false; } return (filter->getFlags() & SkColorFilter::kAlphaUnchanged_Flag) == 0; } void OpenGLRenderer::setupDrawBlending(const Layer* layer, bool swapSrcDst) { SkXfermode::Mode mode = layer->getMode(); // When the blending mode is kClear_Mode, we need to use a modulate color Loading
libs/hwui/Renderer.h +10 −1 Original line number Diff line number Diff line Loading @@ -17,12 +17,13 @@ #ifndef ANDROID_HWUI_RENDERER_H #define ANDROID_HWUI_RENDERER_H #include <SkColorFilter.h> #include <SkPaint.h> #include <SkRegion.h> #include <utils/String8.h> #include "AssetAtlas.h" #include "SkPaint.h" namespace android { Loading Loading @@ -81,6 +82,14 @@ public: && !paint.getColorFilter() && getXfermode(paint.getXfermode()) == SkXfermode::kSrcOver_Mode; } static bool isBlendedColorFilter(const SkColorFilter* filter) { if (filter == NULL) { return false; } return (filter->getFlags() & SkColorFilter::kAlphaUnchanged_Flag) == 0; } // ---------------------------------------------------------------------------- // Frame state operations // ---------------------------------------------------------------------------- Loading