Loading graphics/java/android/graphics/Paint.java +1 −1 Original line number Diff line number Diff line Loading @@ -3111,7 +3111,7 @@ public class Paint { @CriticalNative private static native boolean nGetFillPath(long paintPtr, long src, long dst); @CriticalNative private static native long nSetShader(long paintPtr, long shader); private static native void nSetShader(long paintPtr, long shader); @CriticalNative private static native long nSetColorFilter(long paintPtr, long filter); @CriticalNative Loading libs/hwui/Android.bp +7 −0 Original line number Diff line number Diff line Loading @@ -462,6 +462,13 @@ cc_defaults { "RenderNode.cpp", "RenderProperties.cpp", "RootRenderNode.cpp", "shader/Shader.cpp", "shader/BitmapShader.cpp", "shader/ComposeShader.cpp", "shader/LinearGradientShader.cpp", "shader/RadialGradientShader.cpp", "shader/RuntimeShader.cpp", "shader/SweepGradientShader.cpp", "SkiaCanvas.cpp", "VectorDrawable.cpp", ], Loading libs/hwui/SkiaCanvas.cpp +6 −1 Original line number Diff line number Diff line Loading @@ -42,6 +42,8 @@ #include <SkTextBlob.h> #include <SkVertices.h> #include <shader/BitmapShader.h> #include <memory> #include <optional> #include <utility> Loading @@ -49,6 +51,7 @@ namespace android { using uirenderer::PaintUtils; using uirenderer::BitmapShader; Canvas* Canvas::create_canvas(const SkBitmap& bitmap) { return new SkiaCanvas(bitmap); Loading Loading @@ -681,7 +684,9 @@ void SkiaCanvas::drawBitmapMesh(Bitmap& bitmap, int meshWidth, int meshHeight, if (paint) { pnt = *paint; } pnt.setShader(bitmap.makeImage()->makeShader()); pnt.setShader(sk_ref_sp(new BitmapShader( bitmap.makeImage(), SkTileMode::kClamp, SkTileMode::kClamp, nullptr))); auto v = builder.detach(); apply_looper(&pnt, [&](const SkPaint& p) { mCanvas->drawVertices(v, SkBlendMode::kModulate, p); Loading libs/hwui/VectorDrawable.cpp +3 −4 Original line number Diff line number Diff line Loading @@ -23,7 +23,6 @@ #include "PathParser.h" #include "SkColorFilter.h" #include "SkImageInfo.h" #include "SkShader.h" #include "hwui/Paint.h" #ifdef __ANDROID__ Loading Loading @@ -159,10 +158,10 @@ void FullPath::draw(SkCanvas* outCanvas, bool useStagingData) { // Draw path's fill, if fill color or gradient is valid bool needsFill = false; SkPaint paint; Paint paint; if (properties.getFillGradient() != nullptr) { paint.setColor(applyAlpha(SK_ColorBLACK, properties.getFillAlpha())); paint.setShader(sk_sp<SkShader>(SkSafeRef(properties.getFillGradient()))); paint.setShader(sk_sp<Shader>(SkSafeRef(properties.getFillGradient()))); needsFill = true; } else if (properties.getFillColor() != SK_ColorTRANSPARENT) { paint.setColor(applyAlpha(properties.getFillColor(), properties.getFillAlpha())); Loading @@ -179,7 +178,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<SkShader>(SkSafeRef(properties.getStrokeGradient()))); paint.setShader(sk_sp<Shader>(SkSafeRef(properties.getStrokeGradient()))); needsStroke = true; } else if (properties.getStrokeColor() != SK_ColorTRANSPARENT) { paint.setColor(applyAlpha(properties.getStrokeColor(), properties.getStrokeAlpha())); Loading libs/hwui/VectorDrawable.h +7 −7 Original line number Diff line number Diff line Loading @@ -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> Loading Loading @@ -227,20 +227,20 @@ public: strokeGradient = prop.strokeGradient; onPropertyChanged(); } void setFillGradient(SkShader* gradient) { void setFillGradient(Shader* gradient) { if (fillGradient.get() != gradient) { fillGradient = sk_ref_sp(gradient); onPropertyChanged(); } } void setStrokeGradient(SkShader* gradient) { void setStrokeGradient(Shader* gradient) { if (strokeGradient.get() != gradient) { strokeGradient = sk_ref_sp(gradient); onPropertyChanged(); } } SkShader* getFillGradient() const { return fillGradient.get(); } SkShader* getStrokeGradient() const { return strokeGradient.get(); } Shader* getFillGradient() const { return fillGradient.get(); } Shader* getStrokeGradient() const { return strokeGradient.get(); } float getStrokeWidth() const { return mPrimitiveFields.strokeWidth; } void setStrokeWidth(float strokeWidth) { VD_SET_PRIMITIVE_FIELD_AND_NOTIFY(strokeWidth, strokeWidth); Loading Loading @@ -320,8 +320,8 @@ public: count, }; PrimitiveFields mPrimitiveFields; sk_sp<SkShader> fillGradient; sk_sp<SkShader> strokeGradient; sk_sp<Shader> fillGradient; sk_sp<Shader> strokeGradient; }; // Called from UI thread Loading Loading
graphics/java/android/graphics/Paint.java +1 −1 Original line number Diff line number Diff line Loading @@ -3111,7 +3111,7 @@ public class Paint { @CriticalNative private static native boolean nGetFillPath(long paintPtr, long src, long dst); @CriticalNative private static native long nSetShader(long paintPtr, long shader); private static native void nSetShader(long paintPtr, long shader); @CriticalNative private static native long nSetColorFilter(long paintPtr, long filter); @CriticalNative Loading
libs/hwui/Android.bp +7 −0 Original line number Diff line number Diff line Loading @@ -462,6 +462,13 @@ cc_defaults { "RenderNode.cpp", "RenderProperties.cpp", "RootRenderNode.cpp", "shader/Shader.cpp", "shader/BitmapShader.cpp", "shader/ComposeShader.cpp", "shader/LinearGradientShader.cpp", "shader/RadialGradientShader.cpp", "shader/RuntimeShader.cpp", "shader/SweepGradientShader.cpp", "SkiaCanvas.cpp", "VectorDrawable.cpp", ], Loading
libs/hwui/SkiaCanvas.cpp +6 −1 Original line number Diff line number Diff line Loading @@ -42,6 +42,8 @@ #include <SkTextBlob.h> #include <SkVertices.h> #include <shader/BitmapShader.h> #include <memory> #include <optional> #include <utility> Loading @@ -49,6 +51,7 @@ namespace android { using uirenderer::PaintUtils; using uirenderer::BitmapShader; Canvas* Canvas::create_canvas(const SkBitmap& bitmap) { return new SkiaCanvas(bitmap); Loading Loading @@ -681,7 +684,9 @@ void SkiaCanvas::drawBitmapMesh(Bitmap& bitmap, int meshWidth, int meshHeight, if (paint) { pnt = *paint; } pnt.setShader(bitmap.makeImage()->makeShader()); pnt.setShader(sk_ref_sp(new BitmapShader( bitmap.makeImage(), SkTileMode::kClamp, SkTileMode::kClamp, nullptr))); auto v = builder.detach(); apply_looper(&pnt, [&](const SkPaint& p) { mCanvas->drawVertices(v, SkBlendMode::kModulate, p); Loading
libs/hwui/VectorDrawable.cpp +3 −4 Original line number Diff line number Diff line Loading @@ -23,7 +23,6 @@ #include "PathParser.h" #include "SkColorFilter.h" #include "SkImageInfo.h" #include "SkShader.h" #include "hwui/Paint.h" #ifdef __ANDROID__ Loading Loading @@ -159,10 +158,10 @@ void FullPath::draw(SkCanvas* outCanvas, bool useStagingData) { // Draw path's fill, if fill color or gradient is valid bool needsFill = false; SkPaint paint; Paint paint; if (properties.getFillGradient() != nullptr) { paint.setColor(applyAlpha(SK_ColorBLACK, properties.getFillAlpha())); paint.setShader(sk_sp<SkShader>(SkSafeRef(properties.getFillGradient()))); paint.setShader(sk_sp<Shader>(SkSafeRef(properties.getFillGradient()))); needsFill = true; } else if (properties.getFillColor() != SK_ColorTRANSPARENT) { paint.setColor(applyAlpha(properties.getFillColor(), properties.getFillAlpha())); Loading @@ -179,7 +178,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<SkShader>(SkSafeRef(properties.getStrokeGradient()))); paint.setShader(sk_sp<Shader>(SkSafeRef(properties.getStrokeGradient()))); needsStroke = true; } else if (properties.getStrokeColor() != SK_ColorTRANSPARENT) { paint.setColor(applyAlpha(properties.getStrokeColor(), properties.getStrokeAlpha())); Loading
libs/hwui/VectorDrawable.h +7 −7 Original line number Diff line number Diff line Loading @@ -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> Loading Loading @@ -227,20 +227,20 @@ public: strokeGradient = prop.strokeGradient; onPropertyChanged(); } void setFillGradient(SkShader* gradient) { void setFillGradient(Shader* gradient) { if (fillGradient.get() != gradient) { fillGradient = sk_ref_sp(gradient); onPropertyChanged(); } } void setStrokeGradient(SkShader* gradient) { void setStrokeGradient(Shader* gradient) { if (strokeGradient.get() != gradient) { strokeGradient = sk_ref_sp(gradient); onPropertyChanged(); } } SkShader* getFillGradient() const { return fillGradient.get(); } SkShader* getStrokeGradient() const { return strokeGradient.get(); } Shader* getFillGradient() const { return fillGradient.get(); } Shader* getStrokeGradient() const { return strokeGradient.get(); } float getStrokeWidth() const { return mPrimitiveFields.strokeWidth; } void setStrokeWidth(float strokeWidth) { VD_SET_PRIMITIVE_FIELD_AND_NOTIFY(strokeWidth, strokeWidth); Loading Loading @@ -320,8 +320,8 @@ public: count, }; PrimitiveFields mPrimitiveFields; sk_sp<SkShader> fillGradient; sk_sp<SkShader> strokeGradient; sk_sp<Shader> fillGradient; sk_sp<Shader> strokeGradient; }; // Called from UI thread Loading