Revert "Child fragment processors are now written as separate functions"
This reverts commit 0364bde2c49616bc9d2f68742d36bfedbeb7e950.
Reason for revert: bot breakage, e.g. https://chromium-swarm.appspot.com/task?id=44942724fab4b710 and https://chromium-swarm.appspot.com/task?id=44938767e5fbb810
Original change's description:
> Child fragment processors are now written as separate functions
> instead of inline
>
> Bug: skia:
> Change-Id: I3c6c876fea9cfcc311fc09c0fdf0375b776004aa
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/210632
> Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
> Reviewed-by: Michael Ludwig <michaelludwig@google.com>
TBR=ethannicholas@google.com,michaelludwig@google.com
Change-Id: If33c1f554a090cd7541878e77712d5ce968ec70a
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/211943
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
diff --git a/src/gpu/effects/GrXfermodeFragmentProcessor.cpp b/src/gpu/effects/GrXfermodeFragmentProcessor.cpp
index e4f4c0b..1424939 100644
--- a/src/gpu/effects/GrXfermodeFragmentProcessor.cpp
+++ b/src/gpu/effects/GrXfermodeFragmentProcessor.cpp
@@ -220,18 +220,20 @@
}
// declare outputColor and emit the code for each of the two children
- const char* srcColor = "xfer_src";
- fragBuilder->codeAppendf("half4 %s;\n", srcColor);
- this->invokeChild(0, inputColor, srcColor, args);
+ SkString srcColor("xfer_src");
+ this->emitChild(0, inputColor, &srcColor, args);
- const char* dstColor = "xfer_dst";
- fragBuilder->codeAppendf("half4 %s;\n", dstColor);
- this->invokeChild(1, inputColor, dstColor, args);
+ SkString dstColor("xfer_dst");
+ this->emitChild(1, inputColor, &dstColor, args);
// emit blend code
SkBlendMode mode = cs.getMode();
fragBuilder->codeAppendf("// Compose Xfer Mode: %s\n", SkBlendMode_Name(mode));
- GrGLSLBlend::AppendMode(fragBuilder, srcColor, dstColor, args.fOutputColor, mode);
+ GrGLSLBlend::AppendMode(fragBuilder,
+ srcColor.c_str(),
+ dstColor.c_str(),
+ args.fOutputColor,
+ mode);
// re-multiply the output color by the input color's alpha
if (args.fInputColor) {
@@ -436,18 +438,16 @@
SkBlendMode mode = args.fFp.cast<ComposeOneFragmentProcessor>().mode();
ComposeOneFragmentProcessor::Child child =
args.fFp.cast<ComposeOneFragmentProcessor>().child();
- const char* childColor = "child";
- fragBuilder->codeAppendf("half4 %s;\n", childColor);
- this->invokeChild(0, childColor, args);
+ SkString childColor("child");
+ this->emitChild(0, &childColor, args);
// emit blend code
fragBuilder->codeAppendf("// Compose Xfer Mode: %s\n", SkBlendMode_Name(mode));
+ const char* childStr = childColor.c_str();
if (ComposeOneFragmentProcessor::kDst_Child == child) {
- GrGLSLBlend::AppendMode(fragBuilder, args.fInputColor, childColor, args.fOutputColor,
- mode);
+ GrGLSLBlend::AppendMode(fragBuilder, args.fInputColor, childStr, args.fOutputColor, mode);
} else {
- GrGLSLBlend::AppendMode(fragBuilder, childColor, args.fInputColor, args.fOutputColor,
- mode);
+ GrGLSLBlend::AppendMode(fragBuilder, childStr, args.fInputColor, args.fOutputColor, mode);
}
}