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

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

Merge "Use the faster path when calling drawImageRect."

parents 63c59937 6c2a9e2b
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -597,7 +597,8 @@ void SkiaCanvas::drawBitmap(Bitmap& bitmap, float srcLeft, float srcTop,
    SkPaint tmpPaint;
    sk_sp<SkColorFilter> colorFilter;
    sk_sp<SkImage> image = bitmap.makeImage(&colorFilter);
    mCanvas->drawImageRect(image, srcRect, dstRect, addFilter(paint, &tmpPaint, colorFilter));
    mCanvas->drawImageRect(image, srcRect, dstRect, addFilter(paint, &tmpPaint, colorFilter),
            SkCanvas::kFast_SrcRectConstraint);
}

void SkiaCanvas::drawBitmapMesh(Bitmap& bitmap, int meshWidth, int meshHeight,
+1 −1
Original line number Diff line number Diff line
@@ -179,7 +179,7 @@ void SkiaCanvasProxy::onDrawImageLattice(const SkImage* image, const Lattice& la
    SkLatticeIter iter(lattice, dst);
    SkRect srcR, dstR;
    while (iter.next(&srcR, &dstR)) {
        onDrawImageRect(image, &srcR, dstR, paint, SkCanvas::kStrict_SrcRectConstraint);
        onDrawImageRect(image, &srcR, dstR, paint, SkCanvas::kFast_SrcRectConstraint);
    }
}

+2 −2
Original line number Diff line number Diff line
@@ -565,7 +565,7 @@ void Tree::draw(SkCanvas* canvas) {
    sk_sp<SkSurface> vdSurface = mCache.getSurface(&src);
    if (vdSurface) {
        canvas->drawImageRect(vdSurface->makeImageSnapshot().get(), src,
                mutateProperties()->getBounds(), getPaint());
                mutateProperties()->getBounds(), getPaint(), SkCanvas::kFast_SrcRectConstraint);
    } else {
        // Handle the case when VectorDrawableAtlas has been destroyed, because of memory pressure.
        // We render the VD into a temporary standalone buffer and mark the frame as dirty. Next
@@ -585,7 +585,7 @@ void Tree::draw(SkCanvas* canvas) {
        draw(surface.get(), src);
        mCache.clear();
        canvas->drawImageRect(surface->makeImageSnapshot().get(), mutateProperties()->getBounds(),
                getPaint());
                getPaint(), SkCanvas::kFast_SrcRectConstraint);
        markDirty();
    }
}
+2 −1
Original line number Diff line number Diff line
@@ -136,7 +136,8 @@ CopyResult SkiaOpenGLReadback::copyImageInto(EGLImageKHR eglImage, const Matrix4
            SkPaint paint;
            paint.setBlendMode(SkBlendMode::kSrc);
            scaledSurface->getCanvas()->concat(textureMatrix);
            scaledSurface->getCanvas()->drawImageRect(image, skiaSrcRect, skiaDestRect, &paint);
            scaledSurface->getCanvas()->drawImageRect(image, skiaSrcRect, skiaDestRect, &paint,
                    SkCanvas::kFast_SrcRectConstraint);

            image = scaledSurface->makeImageSnapshot();

+2 −1
Original line number Diff line number Diff line
@@ -203,7 +203,8 @@ void SkiaRecordingCanvas::drawBitmap(Bitmap& bitmap, float srcLeft, float srcTop
    SkPaint tmpPaint;
    sk_sp<SkColorFilter> colorFilter;
    sk_sp<SkImage> image = bitmap.makeImage(&colorFilter);
    mRecorder.drawImageRect(image, srcRect, dstRect, bitmapPaint(paint, &tmpPaint, colorFilter));
    mRecorder.drawImageRect(image, srcRect, dstRect, bitmapPaint(paint, &tmpPaint, colorFilter),
            SkCanvas::kFast_SrcRectConstraint);
    if (!bitmap.isImmutable() && image.get() && !image->unique() && !srcRect.isEmpty()
            && !dstRect.isEmpty()) {
        mDisplayList->mMutableImages.push_back(image.get());