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

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

Merge "Revert "Create wrapper around Shader native implementation""

parents 7413862e 5bed1f53
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -3111,7 +3111,7 @@ public class Paint {
    @CriticalNative
    private static native boolean nGetFillPath(long paintPtr, long src, long dst);
    @CriticalNative
    private static native void nSetShader(long paintPtr, long shader);
    private static native long nSetShader(long paintPtr, long shader);
    @CriticalNative
    private static native long nSetColorFilter(long paintPtr, long filter);
    @CriticalNative
+0 −8
Original line number Diff line number Diff line
@@ -464,14 +464,6 @@ cc_defaults {
        "RenderNode.cpp",
        "RenderProperties.cpp",
        "RootRenderNode.cpp",
        "shader/Shader.cpp",
        "shader/BitmapShader.cpp",
        "shader/BlurShader.cpp",
        "shader/ComposeShader.cpp",
        "shader/LinearGradientShader.cpp",
        "shader/RadialGradientShader.cpp",
        "shader/RuntimeShader.cpp",
        "shader/SweepGradientShader.cpp",
        "SkiaCanvas.cpp",
        "VectorDrawable.cpp",
    ],
+1 −6
Original line number Diff line number Diff line
@@ -42,8 +42,6 @@
#include <SkTextBlob.h>
#include <SkVertices.h>

#include <shader/BitmapShader.h>

#include <memory>
#include <optional>
#include <utility>
@@ -51,7 +49,6 @@
namespace android {

using uirenderer::PaintUtils;
using uirenderer::BitmapShader;

Canvas* Canvas::create_canvas(const SkBitmap& bitmap) {
    return new SkiaCanvas(bitmap);
@@ -684,9 +681,7 @@ void SkiaCanvas::drawBitmapMesh(Bitmap& bitmap, int meshWidth, int meshHeight,
    if (paint) {
        pnt = *paint;
    }

    pnt.setShader(sk_ref_sp(new BitmapShader(
            bitmap.makeImage(), SkTileMode::kClamp, SkTileMode::kClamp, nullptr)));
    pnt.setShader(bitmap.makeImage()->makeShader());
    auto v = builder.detach();
    apply_looper(&pnt, [&](const SkPaint& p) {
        mCanvas->drawVertices(v, SkBlendMode::kModulate, p);
+4 −3
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@
#include "PathParser.h"
#include "SkColorFilter.h"
#include "SkImageInfo.h"
#include "SkShader.h"
#include "hwui/Paint.h"

#ifdef __ANDROID__
@@ -158,10 +159,10 @@ void FullPath::draw(SkCanvas* outCanvas, bool useStagingData) {

    // Draw path's fill, if fill color or gradient is valid
    bool needsFill = false;
    Paint paint;
    SkPaint paint;
    if (properties.getFillGradient() != nullptr) {
        paint.setColor(applyAlpha(SK_ColorBLACK, properties.getFillAlpha()));
        paint.setShader(sk_sp<Shader>(SkSafeRef(properties.getFillGradient())));
        paint.setShader(sk_sp<SkShader>(SkSafeRef(properties.getFillGradient())));
        needsFill = true;
    } else if (properties.getFillColor() != SK_ColorTRANSPARENT) {
        paint.setColor(applyAlpha(properties.getFillColor(), properties.getFillAlpha()));
@@ -178,7 +179,7 @@ void FullPath::draw(SkCanvas* outCanvas, bool useStagingData) {
    bool needsStroke = false;
    if (properties.getStrokeGradient() != nullptr) {
        paint.setColor(applyAlpha(SK_ColorBLACK, properties.getStrokeAlpha()));
        paint.setShader(sk_sp<Shader>(SkSafeRef(properties.getStrokeGradient())));
        paint.setShader(sk_sp<SkShader>(SkSafeRef(properties.getStrokeGradient())));
        needsStroke = true;
    } else if (properties.getStrokeColor() != SK_ColorTRANSPARENT) {
        paint.setColor(applyAlpha(properties.getStrokeColor(), properties.getStrokeAlpha()));
+7 −7
Original line number Diff line number Diff line
@@ -31,8 +31,8 @@
#include <SkPath.h>
#include <SkPathMeasure.h>
#include <SkRect.h>
#include <SkShader.h>
#include <SkSurface.h>
#include <shader/Shader.h>

#include <cutils/compiler.h>
#include <stddef.h>
@@ -227,20 +227,20 @@ public:
            strokeGradient = prop.strokeGradient;
            onPropertyChanged();
        }
        void setFillGradient(Shader* gradient) {
        void setFillGradient(SkShader* gradient) {
            if (fillGradient.get() != gradient) {
                fillGradient = sk_ref_sp(gradient);
                onPropertyChanged();
            }
        }
        void setStrokeGradient(Shader* gradient) {
        void setStrokeGradient(SkShader* gradient) {
            if (strokeGradient.get() != gradient) {
                strokeGradient = sk_ref_sp(gradient);
                onPropertyChanged();
            }
        }
        Shader* getFillGradient() const { return fillGradient.get(); }
        Shader* getStrokeGradient() const { return strokeGradient.get(); }
        SkShader* getFillGradient() const { return fillGradient.get(); }
        SkShader* getStrokeGradient() const { return strokeGradient.get(); }
        float getStrokeWidth() const { return mPrimitiveFields.strokeWidth; }
        void setStrokeWidth(float strokeWidth) {
            VD_SET_PRIMITIVE_FIELD_AND_NOTIFY(strokeWidth, strokeWidth);
@@ -320,8 +320,8 @@ public:
            count,
        };
        PrimitiveFields mPrimitiveFields;
        sk_sp<Shader> fillGradient;
        sk_sp<Shader> strokeGradient;
        sk_sp<SkShader> fillGradient;
        sk_sp<SkShader> strokeGradient;
    };

    // Called from UI thread
Loading