36#if defined(SK_BUILD_FOR_DEBUGGER)
45 : fEffect(
std::move(effect))
46 , fUniforms(
std::move(uniforms))
47 , fChildren(children.
begin(), children.
end()) {}
63 matrix.markCTMApplied();
72 return fEffect->isAlphaUnchanged();
77 buffer.writeDataAsByteArray(fUniforms.
get());
106 SkDebugf(
"Serialized SkSL failed to compile. Ignoring/dropping SkSL color filter.\n");
138 const SkRuntimeEffect* lerpEffect = GetKnownRuntimeEffect(StableKey::kLerp);
142 inputs, std::size(inputs));
148 const SkRuntimeEffect* lumaEffect = GetKnownRuntimeEffect(StableKey::kLuma);
156 const SkRuntimeEffect* overdrawEffect = GetKnownRuntimeEffect(StableKey::kOverdraw);
void SK_SPI SkDebugf(const char format[],...) SK_PRINTF_LIKE(1
constexpr bool kLenientSkSLDeserialization
constexpr bool kLenientSkSLDeserialization
sk_sp< SkRuntimeEffect > SkMakeCachedRuntimeEffect(SkRuntimeEffect::Result(*make)(SkString sksl, const SkRuntimeEffect::Options &), SkString sksl)
static uint32_t premul(uint32_t color)
static sk_sp< const SkCapabilities > RasterBackend()
static sk_sp< SkColorFilter > Lerp(float t, sk_sp< SkColorFilter > dst, sk_sp< SkColorFilter > src)
static sk_sp< SkData > MakeUninitialized(size_t length)
static sk_sp< SkData > MakeWithCopy(const void *data, size_t length)
static sk_sp< SkData > MakeEmpty()
static const SkMatrix & I()
static sk_sp< SkColorFilter > MakeWithSkColors(const SkColor[kNumColors])
static constexpr int kNumColors
bool appendStages(const SkStageRec &rec, bool) const override
SkSpan< const SkRuntimeEffect::ChildPtr > children() const
void flatten(SkWriteBuffer &buffer) const override
bool onIsAlphaUnchanged() const override
sk_sp< SkRuntimeEffect > effect() const
SkRuntimeEffect * asRuntimeEffect() const override
SkRuntimeColorFilter(sk_sp< SkRuntimeEffect > effect, sk_sp< const SkData > uniforms, SkSpan< const SkRuntimeEffect::ChildPtr > children)
sk_sp< const SkData > uniforms() const
static bool ReadChildEffects(SkReadBuffer &buffer, const SkRuntimeEffect *effect, skia_private::TArray< SkRuntimeEffect::ChildPtr > *children)
static SkSpan< const float > UniformsAsSpan(SkSpan< const SkRuntimeEffect::Uniform > uniforms, sk_sp< const SkData > originalData, bool alwaysCopyIntoAlloc, const SkColorSpace *destColorSpace, SkArenaAlloc *alloc)
static bool CanDraw(const SkCapabilities *, const SkSL::Program *)
static void WriteChildEffects(SkWriteBuffer &buffer, SkSpan< const SkRuntimeEffect::ChildPtr > children)
static Result MakeForColorFilter(SkString sksl, const Options &)
SkSpan< const Uniform > uniforms() const
sk_sp< SkColorFilter > makeColorFilter(sk_sp< const SkData > uniforms) const
const std::string & source() const
static const char * begin(const StringSlice &s)
static const uint8_t buffer[]
static sk_sp< SkColorFilter > Make()
SkRGBA4f< kPremul_SkAlphaType > premul() const
static SkRGBA4f FromColor(SkColor color)
SkRasterPipeline * fPipeline