32 auto baseShader(
buffer.readShader());
36 return baseShader->makeWithLocalMatrix(lm);
40 buffer.writeMatrix(fLocalMatrix);
41 buffer.writeFlattenable(fWrappedShader.
get());
44#ifdef SK_ENABLE_LEGACY_SHADERCONTEXT
47 return as_SB(fWrappedShader)->
makeContext(ContextRec::Concat(rec, fLocalMatrix), alloc);
54 if (
image && outMatrix) {
69 : fProxyShader(
std::move(proxy)), fCTM(ctm) {}
static void info(const char *fmt,...) SK_PRINTF_LIKE(1
SkShaderBase * as_SB(SkShader *shader)
SkCTMShader(sk_sp< SkShader > proxy, const SkMatrix &ctm)
bool appendStages(const SkStageRec &rec, const SkShaders::MatrixRec &) const override
bool isConstant() const override
GradientType asGradient(GradientInfo *info, SkMatrix *localMatrix) const override
bool isConstant() const override
const SkMatrix & localMatrix() const
bool appendStages(const SkStageRec &, const SkShaders::MatrixRec &) const override
SkImage * onIsAImage(SkMatrix *matrix, SkTileMode *mode) const override
void flatten(SkWriteBuffer &) const override
GradientType asGradient(GradientInfo *info, SkMatrix *localMatrix) const override
ShaderType type() const override
virtual GradientType asGradient(GradientInfo *info=nullptr, SkMatrix *localMatrix=nullptr) const
virtual bool isConstant() const
bool appendRootStages(const SkStageRec &rec, const SkMatrix &ctm) const
static SkMatrix ConcatLocalMatrices(const SkMatrix &parentLM, const SkMatrix &childLM)
Context * makeContext(const ContextRec &, SkArenaAlloc *) const
virtual bool appendStages(const SkStageRec &, const SkShaders::MatrixRec &) const =0
SkImage * isAImage(SkMatrix *localMatrix, SkTileMode xy[2]) const
MatrixRec concat(const SkMatrix &m) const
static const uint8_t buffer[]