sk_sp<SkFlattenable> SkStrokePE::CreateProc(SkReadBuffer& buffer) { SkScalar width = buffer.readScalar(); SkScalar miter = buffer.readScalar(); SkPaint::Join join = buffer.read32LE(SkPaint::kLast_Join); SkPaint::Cap cap = buffer.read32LE(SkPaint::kLast_Cap); return buffer.isValid() ? SkStrokePathEffect::Make(width, join, cap, miter) : nullptr; }
sk_sp<SkFlattenable> SkDropShadowImageFilter::CreateProc(SkReadBuffer& buffer) { SK_IMAGEFILTER_UNFLATTEN_COMMON(common, 1); SkScalar dx = buffer.readScalar(); SkScalar dy = buffer.readScalar(); SkScalar sigmaX = buffer.readScalar(); SkScalar sigmaY = buffer.readScalar(); SkColor color = buffer.readColor(); ShadowMode shadowMode = buffer.read32LE(kLast_ShadowMode); return Make(dx, dy, sigmaX, sigmaY, color, shadowMode, common.getInput(0), &common.cropRect()); }
sk_sp<SkFlattenable> SkOpPE::CreateProc(SkReadBuffer& buffer) { auto one = buffer.readPathEffect(); auto two = buffer.readPathEffect(); SkPathOp op = buffer.read32LE(kReverseDifference_SkPathOp); return buffer.isValid() ? SkMergePathEffect::Make(std::move(one), std::move(two), op) : nullptr; }