Use SkPMColor4f in OverrideInput, remove some kruft from SkGr
Bug: skia:
Change-Id: I2263048fea3b708aa0ac7758a80cbdc47e4f45f2
Reviewed-on: https://skia-review.googlesource.com/c/159540
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
diff --git a/src/gpu/GrFragmentProcessor.cpp b/src/gpu/GrFragmentProcessor.cpp
index 550134b..eff7419 100644
--- a/src/gpu/GrFragmentProcessor.cpp
+++ b/src/gpu/GrFragmentProcessor.cpp
@@ -281,11 +281,11 @@
//////////////////////////////////////////////////////////////////////////////
std::unique_ptr<GrFragmentProcessor> GrFragmentProcessor::OverrideInput(
- std::unique_ptr<GrFragmentProcessor> fp, GrColor4f color) {
+ std::unique_ptr<GrFragmentProcessor> fp, const SkPMColor4f& color) {
class ReplaceInputFragmentProcessor : public GrFragmentProcessor {
public:
static std::unique_ptr<GrFragmentProcessor> Make(std::unique_ptr<GrFragmentProcessor> child,
- GrColor4f color) {
+ const SkPMColor4f& color) {
return std::unique_ptr<GrFragmentProcessor>(
new ReplaceInputFragmentProcessor(std::move(child), color));
}
@@ -312,29 +312,31 @@
private:
void onSetData(const GrGLSLProgramDataManager& pdman,
const GrFragmentProcessor& fp) override {
- GrColor4f color = fp.cast<ReplaceInputFragmentProcessor>().fColor;
+ SkPMColor4f color = fp.cast<ReplaceInputFragmentProcessor>().fColor;
if (!fHaveSetColor || color != fPreviousColor) {
- pdman.set4fv(fColorUni, 1, color.fRGBA);
+ pdman.set4fv(fColorUni, 1, color.vec());
fPreviousColor = color;
fHaveSetColor = true;
}
}
GrGLSLProgramDataManager::UniformHandle fColorUni;
- bool fHaveSetColor;
- GrColor4f fPreviousColor;
+ bool fHaveSetColor;
+ SkPMColor4f fPreviousColor;
};
return new GLFP;
}
- ReplaceInputFragmentProcessor(std::unique_ptr<GrFragmentProcessor> child, GrColor4f color)
+ ReplaceInputFragmentProcessor(std::unique_ptr<GrFragmentProcessor> child,
+ const SkPMColor4f& color)
: INHERITED(kReplaceInputFragmentProcessor_ClassID, OptFlags(child.get(), color))
, fColor(color) {
this->registerChildProcessor(std::move(child));
}
- static OptimizationFlags OptFlags(const GrFragmentProcessor* child, GrColor4f color) {
+ static OptimizationFlags OptFlags(const GrFragmentProcessor* child,
+ const SkPMColor4f& color) {
OptimizationFlags childFlags = child->optimizationFlags();
OptimizationFlags flags = kNone_OptimizationFlags;
if (childFlags & kConstantOutputForConstantInput_OptimizationFlag) {
@@ -354,11 +356,10 @@
}
SkPMColor4f constantOutputForConstantInput(const SkPMColor4f&) const override {
- return ConstantOutputForConstantInput(this->childProcessor(0),
- fColor.asRGBA4f<kPremul_SkAlphaType>());
+ return ConstantOutputForConstantInput(this->childProcessor(0), fColor);
}
- GrColor4f fColor;
+ SkPMColor4f fColor;
typedef GrFragmentProcessor INHERITED;
};