Cleanup some sRGB TODOs, mostly around setting GrPaint flags correctly
authorbrianosman <brianosman@google.com>
Tue, 20 Sep 2016 16:56:23 +0000 (09:56 -0700)
committerCommit bot <commit-bot@chromium.org>
Tue, 20 Sep 2016 16:56:23 +0000 (09:56 -0700)
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2358433004

Review-Url: https://codereview.chromium.org/2358433004

gm/constcolorprocessor.cpp
src/core/SkSpecialSurface.cpp
src/effects/SkLightingImageFilter.cpp
src/effects/SkMorphologyImageFilter.cpp
src/effects/SkXfermodeImageFilter.cpp

index 166014d..ef23f78 100644 (file)
@@ -99,7 +99,6 @@ protected:
                     } else {
                         skPaint.setColor(kPaintColors[paintType]);
                     }
-                    // SRGBTODO: No sRGB inputs allowed here?
                     SkAssertResult(SkPaintToGrPaint(context, drawContext, skPaint, viewMatrix,
                                                     &grPaint));
 
index 4c482df..85bb61a 100644 (file)
@@ -137,12 +137,12 @@ public:
     ~SkSpecialSurface_Gpu() override { }
 
     sk_sp<SkSpecialImage> onMakeImageSnapshot() override {
-        // TODO: Supply color space from fDrawContext, once it's present
-        sk_sp<SkSpecialImage> tmp(SkSpecialImage::MakeFromGpu(this->subset(),
-                                                              kNeedNewImageUniqueID_SpecialImage,
-                                                              fDrawContext->asTexture(),
-                                                              nullptr,
-                                                              &this->props()));
+        sk_sp<SkSpecialImage> tmp(SkSpecialImage::MakeFromGpu(
+                                                           this->subset(),
+                                                           kNeedNewImageUniqueID_SpecialImage,
+                                                           fDrawContext->asTexture(),
+                                                           sk_ref_sp(fDrawContext->getColorSpace()),
+                                                           &this->props()));
         fDrawContext = nullptr;
         return tmp;
     }
index 0c82b16..c8d2154 100644 (file)
@@ -390,7 +390,7 @@ void SkLightingImageFilterInternal::drawRect(GrDrawContext* drawContext,
                                              const SkIRect& bounds) const {
     SkRect srcRect = dstRect.makeOffset(SkIntToScalar(bounds.x()), SkIntToScalar(bounds.y()));
     GrPaint paint;
-    // SRGBTODO: AllowSRGBInputs?
+    paint.setAllowSRGBInputs(drawContext->isGammaCorrect());
     sk_sp<GrFragmentProcessor> fp(this->makeFragmentProcessor(src, matrix, srcBounds,
                                                               boundaryMode));
     paint.addColorFragmentProcessor(std::move(fp));
index ebce1b3..4e6032f 100644 (file)
@@ -394,7 +394,7 @@ static void apply_morphology_rect(GrDrawContext* drawContext,
                                   float bounds[2],
                                   Gr1DKernelEffect::Direction direction) {
     GrPaint paint;
-    // SRGBTODO: AllowSRGBInputs?
+    paint.setAllowSRGBInputs(drawContext->isGammaCorrect());
     paint.addColorFragmentProcessor(GrMorphologyEffect::Make(texture,
                                                              direction,
                                                              radius,
@@ -414,7 +414,7 @@ static void apply_morphology_rect_no_bounds(GrDrawContext* drawContext,
                                             GrMorphologyEffect::MorphologyType morphType,
                                             Gr1DKernelEffect::Direction direction) {
     GrPaint paint;
-    // SRGBTODO: AllowSRGBInputs?
+    paint.setAllowSRGBInputs(drawContext->isGammaCorrect());
     paint.addColorFragmentProcessor(GrMorphologyEffect::Make(texture, direction, radius,
                                                              morphType));
     paint.setPorterDuffXPFactory(SkXfermode::kSrc_Mode);
index c82482d..558e29a 100644 (file)
@@ -179,7 +179,6 @@ sk_sp<SkSpecialImage> SkXfermodeImageFilter::filterImageGPU(SkSpecialImage* sour
     }
 
     GrPaint paint;
-    // SRGBTODO: AllowSRGBInputs?
     sk_sp<GrFragmentProcessor> bgFP;
 
     if (backgroundTex) {
@@ -248,6 +247,7 @@ sk_sp<SkSpecialImage> SkXfermodeImageFilter::filterImageGPU(SkSpecialImage* sour
     if (!drawContext) {
         return nullptr;
     }
+    paint.setAllowSRGBInputs(drawContext->isGammaCorrect());
 
     SkMatrix matrix;
     matrix.setTranslate(SkIntToScalar(-bounds.left()), SkIntToScalar(-bounds.top()));