/************************************************************************************************** *** This file was autogenerated from GrDSLFPTest_WhileStatement.fp; do not modify. **************************************************************************************************/ /* TODO(skia:11854): DSLCPPCodeGenerator is currently a work in progress. */ #include "GrDSLFPTest_WhileStatement.h" #include "src/core/SkUtils.h" #include "src/gpu/GrTexture.h" #include "src/gpu/glsl/GrGLSLFragmentProcessor.h" #include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h" #include "src/gpu/glsl/GrGLSLProgramBuilder.h" #include "src/sksl/SkSLCPP.h" #include "src/sksl/SkSLUtil.h" #include "src/sksl/dsl/priv/DSLFPs.h" #include "src/sksl/dsl/priv/DSLWriter.h" class GrGLSLDSLFPTest_WhileStatement : public GrGLSLFragmentProcessor { public: GrGLSLDSLFPTest_WhileStatement() {} void emitCode(EmitArgs& args) override { [[maybe_unused]] const GrDSLFPTest_WhileStatement& _outer = args.fFp.cast(); using namespace SkSL::dsl; StartFragmentProcessor(this, &args); Var _color(kNo_Modifier, DSLType(kHalf4_Type), "color", Half4(1.0f)); Declare(_color); While(_color.x() > 0.5f, _color.x() -= 0.25f); While(_color.w() == 1.0f, Block(_color.x() -= 0.25f, If(_color.x() <= 0.0f, /*Then:*/ Break()))); While(_color.z() > 0.0f, Block(_color.z() -= 0.25f, If(_color.w() == 1.0f, /*Then:*/ Continue()), _color.y() = 0.0f)); Return(_color); EndFragmentProcessor(); } private: void onSetData(const GrGLSLProgramDataManager& pdman, const GrFragmentProcessor& _proc) override { } }; std::unique_ptr GrDSLFPTest_WhileStatement::onMakeProgramImpl() const { return std::make_unique(); } void GrDSLFPTest_WhileStatement::onGetGLSLProcessorKey(const GrShaderCaps& caps, GrProcessorKeyBuilder* b) const { } bool GrDSLFPTest_WhileStatement::onIsEqual(const GrFragmentProcessor& other) const { const GrDSLFPTest_WhileStatement& that = other.cast(); (void) that; return true; } GrDSLFPTest_WhileStatement::GrDSLFPTest_WhileStatement(const GrDSLFPTest_WhileStatement& src) : INHERITED(kGrDSLFPTest_WhileStatement_ClassID, src.optimizationFlags()) { this->cloneAndRegisterAllChildProcessors(src); } std::unique_ptr GrDSLFPTest_WhileStatement::clone() const { return std::make_unique(*this); } #if GR_TEST_UTILS SkString GrDSLFPTest_WhileStatement::onDumpInfo() const { return SkString(); } #endif