31 fChild = std::move(
child);
123 buffer.writeBool(fUseDstTF);
124 buffer.writeBool(fUseDstGamut);
125 buffer.writeBool(fUseDstAT);
127 buffer.writeScalarArray(&fTF.
g, 7);
130 buffer.writeScalarArray(&fGamut.
vals[0][0], 9);
139 bool useDstTF =
buffer.readBool(), useDstGamut =
buffer.readBool(),
140 useDstAT =
buffer.readBool();
147 buffer.readScalarArray(&tf.
g, 7);
157 useDstTF ?
nullptr : &tf,
158 useDstGamut ? nullptr : &gamut,
159 useDstAT ? nullptr : &at);
166 return sk_make_sp<SkWorkingFormatColorFilter>(std::move(child), tf, gamut, at);
@ kPremul_SkAlphaType
pixel components are premultiplied by alpha
@ kLastEnum_SkAlphaType
last valid value
#define SkAssertResult(cond)
static SkColorFilterBase * as_CFB(SkColorFilter *filter)
@ kUnknown_SkColorType
uninitialized
#define SK_REGISTER_FLATTENABLE(type)
sk_sp< T > sk_ref_sp(T *obj)
auto make(Ctor &&ctor) -> decltype(ctor(nullptr))
virtual SkPMColor4f onFilterColor4f(const SkPMColor4f &color, SkColorSpace *dstCS) const
virtual bool appendStages(const SkStageRec &rec, bool shaderIsOpaque) const =0
static sk_sp< SkColorFilter > WithWorkingFormat(sk_sp< SkColorFilter > child, const skcms_TransferFunction *tf, const skcms_Matrix3x3 *gamut, const SkAlphaType *at)
bool isAlphaUnchanged() const
static sk_sp< SkColorSpace > MakeSRGB()
static sk_sp< SkColorSpace > MakeRGB(const skcms_TransferFunction &transferFn, const skcms_Matrix3x3 &toXYZ)
static const uint8_t buffer[]
const SkSurfaceProps & fSurfaceProps
SkRasterPipeline * fPipeline
SkColorType fDstColorType