use Make instead of Create to return a shared shader
Partially updated call sites. Undefine the flag in SkSHader.h to convert the remaining sites.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1772463002
Review URL: https://codereview.chromium.org/1772463002
diff --git a/samplecode/PerlinPatch.cpp b/samplecode/PerlinPatch.cpp
index de4d451..ad2d6be 100644
--- a/samplecode/PerlinPatch.cpp
+++ b/samplecode/PerlinPatch.cpp
@@ -60,9 +60,9 @@
const SkScalar TexHeight = 100.0f;
class PerlinPatchView : public SampleView {
- SkShader* fShader0;
- SkShader* fShader1;
- SkShader* fShaderCompose;
+ sk_sp<SkShader> fShader0;
+ sk_sp<SkShader> fShader1;
+ sk_sp<SkShader> fShaderCompose;
SkScalar fXFreq;
SkScalar fYFreq;
SkScalar fSeed;
@@ -98,7 +98,7 @@
};
const SkPoint points[2] = { SkPoint::Make(0.0f, 0.0f),
SkPoint::Make(100.0f, 100.0f) };
- fShader0 = SkGradientShader::CreateLinear(points,
+ fShader0 = SkGradientShader::MakeLinear(points,
colors,
NULL,
3,
@@ -107,9 +107,6 @@
NULL);
}
- virtual ~PerlinPatchView() {
- SkSafeUnref(fShader0);
- }
protected:
// overrides from SkEventSink
bool onQuery(SkEvent* evt) override {
@@ -145,16 +142,14 @@
SkAutoTUnref<SkXfermode> xfer(SkXfermode::Create(SkXfermode::kSrc_Mode));
SkScalar scaleFreq = 2.0;
- fShader1 = SkPerlinNoiseShader2::CreateImprovedNoise(fXFreq/scaleFreq, fYFreq/scaleFreq, 4,
+ fShader1 = SkPerlinNoiseShader2::MakeImprovedNoise(fXFreq/scaleFreq, fYFreq/scaleFreq, 4,
fSeed);
- fShaderCompose = SkShader::CreateComposeShader(fShader0, fShader1, nullptr);
+ fShaderCompose = SkShader::MakeComposeShader(fShader0, fShader1, nullptr);
paint.setShader(fShaderCompose);
canvas->drawPatch(fPts, nullptr, texCoords, xfer, paint);
draw_control_points(canvas, fPts);
- SkSafeUnref(fShader1);
- SkSafeUnref(fShaderCompose);
}
class PtClick : public Click {