Loading libs/hwui/pipeline/skia/LayerDrawable.cpp +4 −1 Original line number Diff line number Diff line Loading @@ -28,7 +28,10 @@ namespace uirenderer { namespace skiapipeline { void LayerDrawable::onDraw(SkCanvas* canvas) { DrawLayer(canvas->getGrContext(), canvas, mLayer.get()); Layer* layer = mLayerUpdater->backingLayer(); if (layer) { DrawLayer(canvas->getGrContext(), canvas, layer); } } bool LayerDrawable::DrawLayer(GrContext* context, SkCanvas* canvas, Layer* layer) { Loading libs/hwui/pipeline/skia/LayerDrawable.h +5 −5 Original line number Diff line number Diff line Loading @@ -16,7 +16,7 @@ #pragma once #include "Layer.h" #include "DeferredLayerUpdater.h" #include <SkCanvas.h> #include <SkDrawable.h> Loading @@ -30,18 +30,18 @@ namespace skiapipeline { */ class LayerDrawable : public SkDrawable { public: explicit LayerDrawable(Layer* layer) : mLayer(layer) {} explicit LayerDrawable(DeferredLayerUpdater* layerUpdater) : mLayerUpdater(layerUpdater) {} static bool DrawLayer(GrContext* context, SkCanvas* canvas, Layer* layer); protected: virtual SkRect onGetBounds() override { return SkRect::MakeWH(mLayer->getWidth(), mLayer->getHeight()); return SkRect::MakeWH(mLayerUpdater->getWidth(), mLayerUpdater->getHeight()); } virtual void onDraw(SkCanvas* canvas) override; private: sp<Layer> mLayer; sp<DeferredLayerUpdater> mLayerUpdater; }; }; // namespace skiapipeline Loading libs/hwui/pipeline/skia/SkiaRecordingCanvas.cpp +2 −3 Original line number Diff line number Diff line Loading @@ -91,10 +91,9 @@ void SkiaRecordingCanvas::insertReorderBarrier(bool enableReorder) { } void SkiaRecordingCanvas::drawLayer(uirenderer::DeferredLayerUpdater* layerUpdater) { if (layerUpdater != nullptr && layerUpdater->backingLayer() != nullptr) { uirenderer::Layer* layer = layerUpdater->backingLayer(); if (layerUpdater != nullptr) { // Create a ref-counted drawable, which is kept alive by sk_sp in SkLiteDL. sk_sp<SkDrawable> drawable(new LayerDrawable(layer)); sk_sp<SkDrawable> drawable(new LayerDrawable(layerUpdater)); drawDrawable(drawable.get()); } } Loading Loading
libs/hwui/pipeline/skia/LayerDrawable.cpp +4 −1 Original line number Diff line number Diff line Loading @@ -28,7 +28,10 @@ namespace uirenderer { namespace skiapipeline { void LayerDrawable::onDraw(SkCanvas* canvas) { DrawLayer(canvas->getGrContext(), canvas, mLayer.get()); Layer* layer = mLayerUpdater->backingLayer(); if (layer) { DrawLayer(canvas->getGrContext(), canvas, layer); } } bool LayerDrawable::DrawLayer(GrContext* context, SkCanvas* canvas, Layer* layer) { Loading
libs/hwui/pipeline/skia/LayerDrawable.h +5 −5 Original line number Diff line number Diff line Loading @@ -16,7 +16,7 @@ #pragma once #include "Layer.h" #include "DeferredLayerUpdater.h" #include <SkCanvas.h> #include <SkDrawable.h> Loading @@ -30,18 +30,18 @@ namespace skiapipeline { */ class LayerDrawable : public SkDrawable { public: explicit LayerDrawable(Layer* layer) : mLayer(layer) {} explicit LayerDrawable(DeferredLayerUpdater* layerUpdater) : mLayerUpdater(layerUpdater) {} static bool DrawLayer(GrContext* context, SkCanvas* canvas, Layer* layer); protected: virtual SkRect onGetBounds() override { return SkRect::MakeWH(mLayer->getWidth(), mLayer->getHeight()); return SkRect::MakeWH(mLayerUpdater->getWidth(), mLayerUpdater->getHeight()); } virtual void onDraw(SkCanvas* canvas) override; private: sp<Layer> mLayer; sp<DeferredLayerUpdater> mLayerUpdater; }; }; // namespace skiapipeline Loading
libs/hwui/pipeline/skia/SkiaRecordingCanvas.cpp +2 −3 Original line number Diff line number Diff line Loading @@ -91,10 +91,9 @@ void SkiaRecordingCanvas::insertReorderBarrier(bool enableReorder) { } void SkiaRecordingCanvas::drawLayer(uirenderer::DeferredLayerUpdater* layerUpdater) { if (layerUpdater != nullptr && layerUpdater->backingLayer() != nullptr) { uirenderer::Layer* layer = layerUpdater->backingLayer(); if (layerUpdater != nullptr) { // Create a ref-counted drawable, which is kept alive by sk_sp in SkLiteDL. sk_sp<SkDrawable> drawable(new LayerDrawable(layer)); sk_sp<SkDrawable> drawable(new LayerDrawable(layerUpdater)); drawDrawable(drawable.get()); } } Loading