sk_sp<GrFragmentProcessor> asFragmentProcessor(GrContext* context) const override { sk_sp<GrFragmentProcessor> innerFP(fInner->asFragmentProcessor(context)); sk_sp<GrFragmentProcessor> outerFP(fOuter->asFragmentProcessor(context)); if (!innerFP || !outerFP) { return nullptr; } sk_sp<GrFragmentProcessor> series[] = { std::move(innerFP), std::move(outerFP) }; return GrFragmentProcessor::RunInSeries(series, 2); }
const GrFragmentProcessor* asFragmentProcessor(GrContext* context) const override { SkAutoTUnref<const GrFragmentProcessor> innerFP(fInner->asFragmentProcessor(context)); SkAutoTUnref<const GrFragmentProcessor> outerFP(fOuter->asFragmentProcessor(context)); if (!innerFP || !outerFP) { return nullptr; } const GrFragmentProcessor* series[] = { innerFP, outerFP }; return GrFragmentProcessor::RunInSeries(series, 2); }