40 if (
buffer.validate(blender !=
nullptr)) {
41 return SkShaders::Blend(std::move(blender), std::move(
dst), std::move(
src));
54 buffer.write32((
int)fMode);
73 rec.
fPipeline->
append(SkRasterPipelineOp::store_src_rg, storage->fCoords);
81 rec.
fPipeline->
append(SkRasterPipelineOp::load_src_rg, storage->fCoords);
86 return storage->fRes0;
128 if (std::optional<SkBlendMode> mode =
as_BB(blender)->asBlendMode()) {
129 return sk_make_sp<SkBlendShader>(
mode.value(), std::move(dst), std::move(src));
constexpr uint8_t kCustom_SkBlendMode
void SkBlendMode_AppendStages(SkBlendMode mode, SkRasterPipeline *p)
@ kSrcOver
r = s + (1-sa)*d
@ kLastMode
last valid value
void SkRegisterBlendShaderFlattenable()
static float * append_two_shaders(const SkStageRec &rec, const SkShaders::MatrixRec &mRec, SkShader *s0, SkShader *s1)
SkBlenderBase * as_BB(SkBlender *blend)
#define SK_REGISTER_FLATTENABLE(type)
static constexpr int SkRasterPipeline_kMaxStride
SkShaderBase * as_SB(SkShader *shader)
auto make(Ctor &&ctor) -> decltype(ctor(nullptr))
sk_sp< SkShader > dst() const
void flatten(SkWriteBuffer &) const override
bool appendStages(const SkStageRec &, const SkShaders::MatrixRec &) const override
sk_sp< SkShader > src() const
static void Register(const char name[], Factory)
void append(SkRasterPipelineOp, void *=nullptr)
sk_sp< SkShader > makeShader(sk_sp< const SkData > uniforms, sk_sp< SkShader > children[], size_t childCount, const SkMatrix *localMatrix=nullptr) const
virtual bool appendStages(const SkStageRec &, const SkShaders::MatrixRec &) const =0
bool rasterPipelineCoordsAreSeeded() const
static const uint8_t buffer[]
const SkRuntimeEffect * GetKnownRuntimeEffect(StableKey stableKey)
it will be possible to load the file into Perfetto s trace viewer disable asset Prevents usage of any non test fonts unless they were explicitly Loaded via prefetched default font Indicates whether the embedding started a prefetch of the default font manager before creating the engine run In non interactive mode
SkRasterPipeline * fPipeline