#include "src/shaders/SkBlendShader.h"
#include "include/core/SkBlendMode.h"
#include "include/core/SkBlender.h"
#include "include/core/SkData.h"
#include "include/core/SkFlattenable.h"
#include "include/effects/SkRuntimeEffect.h"
#include "src/base/SkArenaAlloc.h"
#include "src/core/SkBlendModePriv.h"
#include "src/core/SkBlenderBase.h"
#include "src/core/SkEffectPriv.h"
#include "src/core/SkKnownRuntimeEffects.h"
#include "src/core/SkRasterPipeline.h"
#include "src/core/SkRasterPipelineOpContexts.h"
#include "src/core/SkRasterPipelineOpList.h"
#include "src/core/SkReadBuffer.h"
#include "src/core/SkWriteBuffer.h"
#include "src/shaders/SkShaderBase.h"
#include <optional>
sk_sp<SkFlattenable> SkBlendShader::CreateProc(SkReadBuffer& buffer) { … }
void SkBlendShader::flatten(SkWriteBuffer& buffer) const { … }
static float* append_two_shaders(const SkStageRec& rec,
const SkShaders::MatrixRec& mRec,
SkShader* s0,
SkShader* s1) { … }
bool SkBlendShader::appendStages(const SkStageRec& rec, const SkShaders::MatrixRec& mRec) const { … }
sk_sp<SkShader> SkShaders::Blend(SkBlendMode mode, sk_sp<SkShader> dst, sk_sp<SkShader> src) { … }
sk_sp<SkShader> SkShaders::Blend(sk_sp<SkBlender> blender,
sk_sp<SkShader> dst,
sk_sp<SkShader> src) { … }
void SkRegisterBlendShaderFlattenable() { … }