In FPs, store pointers for all child slots, even nullptr
This simplifies things like ConstantOutputForConstantInput and
invokeChild. It also removes the need for child indices: generated
FPs now directly refer to their children by slot number.
Change-Id: I69bbb042d5d72d21b999256f969c467702d0774d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/302436
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
diff --git a/src/gpu/effects/generated/GrAARectEffect.cpp b/src/gpu/effects/generated/GrAARectEffect.cpp
index 233c42a..51de12f 100644
--- a/src/gpu/effects/generated/GrAARectEffect.cpp
+++ b/src/gpu/effects/generated/GrAARectEffect.cpp
@@ -58,12 +58,7 @@
args.fUniformHandler->getUniformCStr(rectUniformVar), (int)_outer.edgeType,
(int)_outer.edgeType);
SkString _input1677(args.fInputColor);
- SkString _sample1677;
- if (_outer.inputFP_index >= 0) {
- _sample1677 = this->invokeChild(_outer.inputFP_index, _input1677.c_str(), args);
- } else {
- _sample1677.swap(_input1677);
- }
+ SkString _sample1677 = this->invokeChild(0, _input1677.c_str(), args);
fragBuilder->codeAppendf(
R"SkSL(
half4 inputColor = %s;
@@ -110,9 +105,7 @@
: INHERITED(kGrAARectEffect_ClassID, src.optimizationFlags())
, edgeType(src.edgeType)
, rect(src.rect) {
- if (src.inputFP_index >= 0) {
- inputFP_index = this->cloneAndRegisterChildProcessor(src.childProcessor(src.inputFP_index));
- }
+ this->cloneAndRegisterAllChildProcessors(src);
}
std::unique_ptr<GrFragmentProcessor> GrAARectEffect::clone() const {
return std::unique_ptr<GrFragmentProcessor>(new GrAARectEffect(*this));