18 {
21 std::unique_ptr<SkSL::Program> program =
23 std::string(reinterpret_cast<const char*>(data), size),
24 settings);
25 if (!program) {
26 return false;
27 }
28
31 return std::string(decl->
var()->
name());
32 }
33
38
39 std::string
sampleShader(
int index, std::string coords)
override {
40 return "child_" + std::to_string(index) + ".eval(" + coords + ")";
41 }
42
44 return "child_" + std::to_string(index) +
".eval(" +
color +
")";
45 }
46
47 std::string
sampleBlender(
int index, std::string src, std::string dst)
override {
48 return "child_" + std::to_string(index) +
".eval(" +
src +
", " +
dst +
")";
49 }
50
53 };
54
55 Callbacks callbacks;
57 return true;
58}
virtual std::string sampleShader(int index, std::string coords)=0
virtual std::string sampleBlender(int index, std::string src, std::string dst)=0
virtual void defineStruct(const char *definition)=0
virtual void declareFunction(const char *declaration)=0
virtual std::string toLinearSrgb(std::string color)=0
virtual void declareGlobal(const char *declaration)=0
virtual std::string sampleColorFilter(int index, std::string color)=0
virtual std::string fromLinearSrgb(std::string color)=0
virtual void defineFunction(const char *declaration, const char *body, bool isMain)=0
virtual std::string declareUniform(const VarDeclaration *)=0
std::string_view name() const
void ConvertProgram(const Program &program, const char *sampleCoords, const char *inputColor, const char *destColor, Callbacks *callbacks)