diff options
author | 2016-03-25 06:01:59 -0700 | |
---|---|---|
committer | 2016-03-25 06:01:59 -0700 | |
commit | 64d094d7756534a9b9b0997aab225d9ceba098b6 (patch) | |
tree | b1297062c16726548ee940466da4e2fee17887e6 /include/gpu/GrPaint.h | |
parent | 73233a75752733db16870259cc06b2a5230c8ff8 (diff) |
Require sRGB write control for sRGB support. Add flag to GrPaint to suppress linear -> sRGB conversion on write. Use that to fix YUV conversion, which directly produces sRGB data. (Technically, it produces data in whatever the color space of the JPEG might be).
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1830303002
Review URL: https://codereview.chromium.org/1830303002
Diffstat (limited to 'include/gpu/GrPaint.h')
-rw-r--r-- | include/gpu/GrPaint.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/include/gpu/GrPaint.h b/include/gpu/GrPaint.h index 152cb51d7e..3f06f092ab 100644 --- a/include/gpu/GrPaint.h +++ b/include/gpu/GrPaint.h @@ -56,6 +56,13 @@ public: void setAntiAlias(bool aa) { fAntiAlias = aa; } bool isAntiAlias() const { return fAntiAlias; } + /** + * Should shader output conversion from linear to sRGB be disabled. + * Only relevant if the destination is sRGB. Defaults to false. + */ + void setDisableOutputConversionToSRGB(bool srgb) { fDisableOutputConversionToSRGB = srgb; } + bool getDisableOutputConversionToSRGB() const { return fDisableOutputConversionToSRGB; } + const GrXPFactory* setXPFactory(const GrXPFactory* xpFactory) { fXPFactory.reset(SkSafeRef(xpFactory)); return xpFactory; @@ -112,6 +119,7 @@ public: GrPaint& operator=(const GrPaint& paint) { fAntiAlias = paint.fAntiAlias; + fDisableOutputConversionToSRGB = paint.fDisableOutputConversionToSRGB; fColor = paint.fColor; this->resetFragmentProcessors(); @@ -154,6 +162,7 @@ private: SkSTArray<2, const GrFragmentProcessor*, true> fCoverageFragmentProcessors; bool fAntiAlias; + bool fDisableOutputConversionToSRGB; GrColor fColor; }; |