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

Commit 66d16f12 authored by John Reck's avatar John Reck Committed by Android (Google) Code Review
Browse files

Merge "Fix missing first frame" into nyc-dev

parents 9b95f615 417ed6d4
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -47,6 +47,9 @@ public:
        return false;
    }

    int getWidth() { return mWidth; }
    int getHeight() { return mHeight; }

    ANDROID_API bool setBlend(bool blend) {
        if (blend != mBlend) {
            mBlend = blend;
@@ -75,6 +78,10 @@ public:
        mTransform = matrix ? new SkMatrix(*matrix) : nullptr;
    }

    SkMatrix* getTransform() {
        return mTransform;
    }

    ANDROID_API void setPaint(const SkPaint* paint);

    void apply();
+1 −0
Original line number Diff line number Diff line
@@ -669,6 +669,7 @@ void FrameBuilder::deferTextOnPathOp(const TextOnPathOp& op) {
}

void FrameBuilder::deferTextureLayerOp(const TextureLayerOp& op) {
    if (CC_UNLIKELY(!op.layer->isRenderable())) return;
    BakedOpState* bakedState = tryBakeOpState(op);
    if (!bakedState) return; // quick rejected
    currentLayer().deferUnmergeableOp(mAllocator, bakedState, OpBatchType::TextureLayer);
+4 −0
Original line number Diff line number Diff line
@@ -216,6 +216,10 @@ public:
        this->renderTarget = renderTarget;
    }

    inline bool isRenderable() const {
        return renderTarget != GL_NONE;
    }

    void setWrap(GLenum wrap, bool bindTexture = false, bool force = false) {
        texture.setWrap(wrap, bindTexture, force, renderTarget);
    }
+1 −1
Original line number Diff line number Diff line
@@ -353,7 +353,7 @@ void LayerRenderer::flushLayer(RenderState& renderState, Layer* layer) {

bool LayerRenderer::copyLayer(RenderState& renderState, Layer* layer, SkBitmap* bitmap) {
    Caches& caches = Caches::getInstance();
    if (layer && layer->getRenderTarget() != GL_NONE
    if (layer && layer->isRenderable()
            && bitmap->width() <= caches.maxTextureSize
            && bitmap->height() <= caches.maxTextureSize) {

+8 −4
Original line number Diff line number Diff line
@@ -574,15 +574,19 @@ void RecordingCanvas::drawLayer(DeferredLayerUpdater* layerHandle) {
    // We ref the DeferredLayerUpdater due to its thread-safe ref-counting semantics.
    mDisplayList->ref(layerHandle);

    Layer* layer = layerHandle->backingLayer();
    // Note that the backing layer has *not* yet been updated, so don't trust
    // its width, height, transform, etc...!
    Matrix4 totalTransform(*(mState.currentSnapshot()->transform));
    totalTransform.multiply(layer->getTransform());
    if (layerHandle->getTransform()) {
        Matrix4 layerTransform(*layerHandle->getTransform());
        totalTransform.multiply(layerTransform);
    }

    addOp(alloc().create_trivial<TextureLayerOp>(
            Rect(layer->getWidth(), layer->getHeight()),
            Rect(layerHandle->getWidth(), layerHandle->getHeight()),
            totalTransform,
            getRecordedClip(),
            layer));
            layerHandle->backingLayer()));
}

void RecordingCanvas::callDrawGLFunction(Functor* functor) {
Loading