diff options
Diffstat (limited to 'libs/hwui/Layer.cpp')
-rw-r--r-- | libs/hwui/Layer.cpp | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/libs/hwui/Layer.cpp b/libs/hwui/Layer.cpp index b86ae121af55..32aaa54e696c 100644 --- a/libs/hwui/Layer.cpp +++ b/libs/hwui/Layer.cpp @@ -17,25 +17,26 @@ #include "Layer.h" #include "renderstate/RenderState.h" +#include "utils/Color.h" #include <SkToSRGBColorFilter.h> namespace android { namespace uirenderer { -Layer::Layer(RenderState& renderState, Api api, sk_sp<SkColorFilter> colorFilter, int alpha, - SkBlendMode mode) - : GpuMemoryTracker(GpuObjectType::Layer) - , mRenderState(renderState) - , mode(mode) - , mApi(api) +Layer::Layer(RenderState& renderState, sk_sp<SkColorFilter> colorFilter, int alpha, + SkBlendMode mode) + : mRenderState(renderState) , mColorFilter(colorFilter) - , alpha(alpha) { + , alpha(alpha) + , mode(mode) { // TODO: This is a violation of Android's typical ref counting, but it // preserves the old inc/dec ref locations. This should be changed... incStrong(nullptr); buildColorSpaceWithFilter(); renderState.registerLayer(this); + texTransform.setIdentity(); + transform.setIdentity(); } Layer::~Layer() { @@ -76,5 +77,13 @@ void Layer::postDecStrong() { mRenderState.postDecStrong(this); } +SkBlendMode Layer::getMode() const { + if (mBlend || mode != SkBlendMode::kSrcOver) { + return mode; + } else { + return SkBlendMode::kSrc; + } +} + }; // namespace uirenderer }; // namespace android |