| Index: include/gpu/GrPaint.h
|
| diff --git a/include/gpu/GrPaint.h b/include/gpu/GrPaint.h
|
| index 70067ae4491b418f4dfec03c17eafb313d05ee46..bdf4b2b880db9d702394936aa323ea57bd8220e0 100644
|
| --- a/include/gpu/GrPaint.h
|
| +++ b/include/gpu/GrPaint.h
|
| @@ -77,6 +77,11 @@ public:
|
| bool getAllowSRGBInputs() const { return fAllowSRGBInputs; }
|
|
|
| /**
|
| + * Does one of the fragment processors need a field of distance vectors to the nearest edge?
|
| + */
|
| + bool usesDistanceVectorField() const { return fUsesDistanceVectorField; }
|
| +
|
| + /**
|
| * Should rendering be gamma-correct, end-to-end. Causes sRGB render targets to behave
|
| * as such (with linear blending), and sRGB inputs to be filtered and decoded correctly.
|
| */
|
| @@ -100,6 +105,7 @@ public:
|
| */
|
| void addColorFragmentProcessor(sk_sp<GrFragmentProcessor> fp) {
|
| SkASSERT(fp);
|
| + fUsesDistanceVectorField |= fp->usesDistanceVectorField();
|
| fColorFragmentProcessors.push_back(std::move(fp));
|
| }
|
|
|
| @@ -108,6 +114,7 @@ public:
|
| */
|
| void addCoverageFragmentProcessor(sk_sp<GrFragmentProcessor> fp) {
|
| SkASSERT(fp);
|
| + fUsesDistanceVectorField |= fp->usesDistanceVectorField();
|
| fCoverageFragmentProcessors.push_back(std::move(fp));
|
| }
|
|
|
| @@ -140,6 +147,7 @@ public:
|
| fAntiAlias = paint.fAntiAlias;
|
| fDisableOutputConversionToSRGB = paint.fDisableOutputConversionToSRGB;
|
| fAllowSRGBInputs = paint.fAllowSRGBInputs;
|
| + fUsesDistanceVectorField = paint.fUsesDistanceVectorField;
|
|
|
| fColor = paint.fColor;
|
| fColorFragmentProcessors = paint.fColorFragmentProcessors;
|
| @@ -166,6 +174,7 @@ private:
|
| bool fAntiAlias;
|
| bool fDisableOutputConversionToSRGB;
|
| bool fAllowSRGBInputs;
|
| + bool fUsesDistanceVectorField;
|
|
|
| GrColor4f fColor;
|
| };
|
|
|