Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d1cc7910 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Fix SurfaceTexture CTS test case when using the Skia pipeline."

parents d97cdded f5a370e0
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -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) {
+5 −5
Original line number Diff line number Diff line
@@ -16,7 +16,7 @@

#pragma once

#include "Layer.h"
#include "DeferredLayerUpdater.h"

#include <SkCanvas.h>
#include <SkDrawable.h>
@@ -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
+2 −3
Original line number Diff line number Diff line
@@ -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());
    }
}