SkPDF: PDFShader code modernized.
Motivation: reduce code complexity.
SkCanon stores SkPDFShader::State next to SkDFObject, not inside.
many places use sk_sp<T> rather than T* to represent ownership.
SkPDFShader::State no longer holds bitmap.
SkPDFShader::State gets move constructor, no longer heap-allocated.
Classes removed:
SkPDFFunctionShader
SkPDFAlphaFunctionShader
SkPDFImageShader
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2193973002
Review-Url: https://codereview.chromium.org/2193973002
diff --git a/src/pdf/SkPDFDevice.h b/src/pdf/SkPDFDevice.h
index d5d52f9..5fedd0e 100644
--- a/src/pdf/SkPDFDevice.h
+++ b/src/pdf/SkPDFDevice.h
@@ -271,7 +271,7 @@
sk_sp<SkPDFObject> makeFormXObjectFromDevice();
void drawFormXObjectWithMask(int xObjectIndex,
- SkPDFObject* mask,
+ sk_sp<SkPDFObject> mask,
const SkClipStack* clipStack,
const SkRegion& clipRegion,
SkXfermode::Mode mode,
@@ -286,9 +286,9 @@
const SkMatrix& matrix,
const SkPaint& paint,
bool hasText,
- SkPDFObject** dst);
+ sk_sp<SkPDFObject>* dst);
void finishContentEntry(SkXfermode::Mode xfermode,
- SkPDFObject* dst,
+ sk_sp<SkPDFObject> dst,
SkPath* shape);
bool isContentEmpty();