21 std::unique_ptr<SkSL::Program> program =
23 std::string(
reinterpret_cast<const char*
>(data), size),
31 return std::string(decl->
var()->
name());
39 std::string
sampleShader(
int index, std::string coords)
override {
40 return "child_" + std::to_string(index) +
".eval(" + coords +
")";
44 return "child_" + std::to_string(index) +
".eval(" +
color +
")";
47 std::string
sampleBlender(
int index, std::string src, std::string dst)
override {
48 return "child_" + std::to_string(index) +
".eval(" + src +
", " + dst +
")";
60#if defined(SK_BUILD_FOR_LIBFUZZER)
bool FuzzSKSL2Pipeline(const uint8_t *data, size_t size)
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
int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size)
void ConvertProgram(const Program &program, const char *sampleCoords, const char *inputColor, const char *destColor, Callbacks *callbacks)