| /*#pragma settings NoInline*/ |
| |
| /************************************************************************************************** |
| *** This file was autogenerated from GrFunctionArgTypes.fp; do not modify. |
| **************************************************************************************************/ |
| #include "GrFunctionArgTypes.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" |
| class GrGLSLFunctionArgTypes : public GrGLSLFragmentProcessor { |
| public: |
| GrGLSLFunctionArgTypes() {} |
| void emitCode(EmitArgs& args) override { |
| GrGLSLFPFragmentBuilder* fragBuilder = args.fFragBuilder; |
| const GrFunctionArgTypes& _outer = args.fFp.cast<GrFunctionArgTypes>(); |
| (void) _outer; |
| SkString takes_float_name = fragBuilder->getMangledFunctionName("takes_float"); |
| const GrShaderVar takes_float_args[] = { GrShaderVar("f1", kFloat_GrSLType), GrShaderVar("f2", kFloat2_GrSLType), GrShaderVar("f3", kFloat3_GrSLType), GrShaderVar("f4", kFloat4_GrSLType) }; |
| SkString takes_float_matrix_name = fragBuilder->getMangledFunctionName("takes_float_matrix"); |
| const GrShaderVar takes_float_matrix_args[] = { GrShaderVar("m2", kFloat2x2_GrSLType), GrShaderVar("m3", kFloat3x3_GrSLType), GrShaderVar("m4", kFloat4x4_GrSLType) }; |
| SkString takes_half_name = fragBuilder->getMangledFunctionName("takes_half"); |
| const GrShaderVar takes_half_args[] = { GrShaderVar("h1", kHalf_GrSLType), GrShaderVar("h2", kHalf2_GrSLType), GrShaderVar("h3", kHalf3_GrSLType), GrShaderVar("h4", kHalf4_GrSLType) }; |
| SkString takes_half_matrix_name = fragBuilder->getMangledFunctionName("takes_half_matrix"); |
| const GrShaderVar takes_half_matrix_args[] = { GrShaderVar("m2", kHalf2x2_GrSLType), GrShaderVar("m3", kHalf3x3_GrSLType), GrShaderVar("m4", kHalf4x4_GrSLType) }; |
| SkString takes_bool_name = fragBuilder->getMangledFunctionName("takes_bool"); |
| const GrShaderVar takes_bool_args[] = { GrShaderVar("b", kBool_GrSLType), GrShaderVar("b2", kBool2_GrSLType), GrShaderVar("b3", kBool3_GrSLType), GrShaderVar("b4", kBool4_GrSLType) }; |
| SkString takes_int_name = fragBuilder->getMangledFunctionName("takes_int"); |
| const GrShaderVar takes_int_args[] = { GrShaderVar("i", kInt_GrSLType), GrShaderVar("i2", kInt2_GrSLType), GrShaderVar("i3", kInt3_GrSLType), GrShaderVar("i4", kInt4_GrSLType) }; |
| fragBuilder->emitFunction(kBool_GrSLType, takes_float_name.c_str(), {takes_float_args, 4}, |
| R"SkSL(return true; |
| )SkSL"); |
| fragBuilder->emitFunction(kBool_GrSLType, takes_float_matrix_name.c_str(), {takes_float_matrix_args, 3}, |
| R"SkSL(return true; |
| )SkSL"); |
| fragBuilder->emitFunction(kBool_GrSLType, takes_half_name.c_str(), {takes_half_args, 4}, |
| R"SkSL(return true; |
| )SkSL"); |
| fragBuilder->emitFunction(kBool_GrSLType, takes_half_matrix_name.c_str(), {takes_half_matrix_args, 3}, |
| R"SkSL(return true; |
| )SkSL"); |
| fragBuilder->emitFunction(kBool_GrSLType, takes_bool_name.c_str(), {takes_bool_args, 4}, |
| R"SkSL(return true; |
| )SkSL"); |
| fragBuilder->emitFunction(kBool_GrSLType, takes_int_name.c_str(), {takes_int_args, 4}, |
| R"SkSL(return true; |
| )SkSL"); |
| fragBuilder->codeAppendf( |
| R"SkSL(return ((((%s(1.0, float2(2.0), float3(3.0), float4(4.0)) && %s(float2x2(2.0), float3x3(3.0), float4x4(4.0))) && %s(1.0, half2(2.0), half3(3.0), half4(4.0))) && %s(half2x2(2.0), half3x3(3.0), half4x4(4.0))) && %s(true, bool2(true), bool3(true), bool4(true))) && %s(1, int2(2), int3(3), int4(4)) ? half4(1.0) : half4(0.0); |
| )SkSL" |
| , takes_float_name.c_str(), takes_float_matrix_name.c_str(), takes_half_name.c_str(), takes_half_matrix_name.c_str(), takes_bool_name.c_str(), takes_int_name.c_str()); |
| } |
| private: |
| void onSetData(const GrGLSLProgramDataManager& pdman, const GrFragmentProcessor& _proc) override { |
| } |
| }; |
| std::unique_ptr<GrGLSLFragmentProcessor> GrFunctionArgTypes::onMakeProgramImpl() const { |
| return std::make_unique<GrGLSLFunctionArgTypes>(); |
| } |
| void GrFunctionArgTypes::onGetGLSLProcessorKey(const GrShaderCaps& caps, GrProcessorKeyBuilder* b) const { |
| } |
| bool GrFunctionArgTypes::onIsEqual(const GrFragmentProcessor& other) const { |
| const GrFunctionArgTypes& that = other.cast<GrFunctionArgTypes>(); |
| (void) that; |
| return true; |
| } |
| GrFunctionArgTypes::GrFunctionArgTypes(const GrFunctionArgTypes& src) |
| : INHERITED(kGrFunctionArgTypes_ClassID, src.optimizationFlags()) { |
| this->cloneAndRegisterAllChildProcessors(src); |
| } |
| std::unique_ptr<GrFragmentProcessor> GrFunctionArgTypes::clone() const { |
| return std::make_unique<GrFunctionArgTypes>(*this); |
| } |
| #if GR_TEST_UTILS |
| SkString GrFunctionArgTypes::onDumpInfo() const { |
| return SkString(); |
| } |
| #endif |