| Index: src/gpu/GrFragmentProcessor.cpp
|
| diff --git a/src/gpu/GrFragmentProcessor.cpp b/src/gpu/GrFragmentProcessor.cpp
|
| index a8a4898e78d99fd7baa3cafbde772f2fc49ac386..c905fcc44f3fb34835c095e20a274799de714214 100644
|
| --- a/src/gpu/GrFragmentProcessor.cpp
|
| +++ b/src/gpu/GrFragmentProcessor.cpp
|
| @@ -259,10 +259,10 @@ sk_sp<GrFragmentProcessor> GrFragmentProcessor::MulOutputByInputUnpremulColor(
|
| //////////////////////////////////////////////////////////////////////////////
|
|
|
| sk_sp<GrFragmentProcessor> GrFragmentProcessor::OverrideInput(sk_sp<GrFragmentProcessor> fp,
|
| - GrColor color) {
|
| + GrColor4f color) {
|
| class ReplaceInputFragmentProcessor : public GrFragmentProcessor {
|
| public:
|
| - ReplaceInputFragmentProcessor(sk_sp<GrFragmentProcessor> child, GrColor color)
|
| + ReplaceInputFragmentProcessor(sk_sp<GrFragmentProcessor> child, GrColor4f color)
|
| : fColor(color) {
|
| this->initClassID<ReplaceInputFragmentProcessor>();
|
| this->registerChildProcessor(std::move(child));
|
| @@ -286,24 +286,17 @@ sk_sp<GrFragmentProcessor> GrFragmentProcessor::OverrideInput(sk_sp<GrFragmentPr
|
| private:
|
| void onSetData(const GrGLSLProgramDataManager& pdman,
|
| const GrProcessor& fp) override {
|
| - GrColor color = fp.cast<ReplaceInputFragmentProcessor>().fColor;
|
| + GrColor4f color = fp.cast<ReplaceInputFragmentProcessor>().fColor;
|
| if (!fHaveSetColor || color != fPreviousColor) {
|
| - static const float scale = 1.f / 255.f;
|
| - float floatColor[4] = {
|
| - GrColorUnpackR(color) * scale,
|
| - GrColorUnpackG(color) * scale,
|
| - GrColorUnpackB(color) * scale,
|
| - GrColorUnpackA(color) * scale,
|
| - };
|
| - pdman.set4fv(fColorUni, 1, floatColor);
|
| + pdman.set4fv(fColorUni, 1, color.fRGBA);
|
| fPreviousColor = color;
|
| fHaveSetColor = true;
|
| }
|
| }
|
|
|
| GrGLSLProgramDataManager::UniformHandle fColorUni;
|
| - bool fHaveSetColor;
|
| - GrColor fPreviousColor;
|
| + bool fHaveSetColor;
|
| + GrColor4f fPreviousColor;
|
| };
|
|
|
| return new GLFP;
|
| @@ -318,12 +311,12 @@ sk_sp<GrFragmentProcessor> GrFragmentProcessor::OverrideInput(sk_sp<GrFragmentPr
|
| }
|
|
|
| void onComputeInvariantOutput(GrInvariantOutput* inout) const override {
|
| - inout->setToOther(kRGBA_GrColorComponentFlags, fColor,
|
| + inout->setToOther(kRGBA_GrColorComponentFlags, fColor.toGrColor(),
|
| GrInvariantOutput::kWillNot_ReadInput);
|
| this->childProcessor(0).computeInvariantOutput(inout);
|
| }
|
|
|
| - GrColor fColor;
|
| + GrColor4f fColor;
|
| };
|
|
|
| GrInvariantOutput childOut(0x0, kNone_GrColorComponentFlags, false);
|
|
|