25 SkMatrix total = fPendingLocalMatrix;
29 if (!total.
invert(&total)) {
48 if (!fPendingLocalMatrix.
invert(&total)) {
84 if (
nullptr == colorPtr) {
95#ifdef SK_ENABLE_LEGACY_SHADERCONTEXT
98 if (totalMatrix.hasPerspective() || !totalMatrix.invert(
nullptr)) {
102 return this->onMakeContext(rec, alloc);
@ kPremul_SkAlphaType
pixel components are premultiplied by alpha
#define SkAssertResult(cond)
sk_sp< T > sk_ref_sp(T *obj)
static sk_sp< SkColorFilter > Blend(const SkColor4f &c, sk_sp< SkColorSpace >, SkBlendMode mode)
virtual void flatten(SkWriteBuffer &) const
static SkMatrix Concat(const SkMatrix &a, const SkMatrix &b)
bool invert(SkMatrix *inverse) const
static const SkMatrix & I()
bool hasPerspective() const
void append(SkRasterPipelineOp, void *=nullptr)
void appendMatrix(SkArenaAlloc *, const SkMatrix &)
Context(const SkShaderBase &shader, const ContextRec &)
virtual bool onAsLuminanceColor(SkColor4f *) const
sk_sp< SkShader > makeInvertAlpha() const
bool appendRootStages(const SkStageRec &rec, const SkMatrix &ctm) const
void flatten(SkWriteBuffer &) const override
bool asLuminanceColor(SkColor4f *) const
sk_sp< SkShader > makeWithCTM(const SkMatrix &) 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
virtual sk_sp< SkShader > makeAsALocalMatrixShader(SkMatrix *localMatrix) const
sk_sp< SkShader > makeWithColorFilter(sk_sp< SkColorFilter >) const
std::optional< MatrixRec > apply(const SkStageRec &rec, const SkMatrix &postInv={}) const
bool totalInverse(SkMatrix *out) const
MatrixRec applied() const
std::tuple< SkMatrix, bool > applyForFragmentProcessor(const SkMatrix &postInv) const
MatrixRec concat(const SkMatrix &m) const
SkMatrix totalMatrix() const
static const uint8_t buffer[]
const SkShaders::MatrixRec fMatrixRec
bool isLegacyCompatible(SkColorSpace *shadersColorSpace) const
SkRasterPipeline * fPipeline