Fix color blending for analytic shadows
authorJim Van Verth <jvanverth@google.com>
Fri, 5 May 2017 20:46:05 +0000 (16:46 -0400)
committerSkia Commit-Bot <skia-commit-bot@chromium.org>
Fri, 5 May 2017 21:13:31 +0000 (21:13 +0000)
Change-Id: I74e8c385a87a3f397b2df53679fcfd9120d82954
Reviewed-on: https://skia-review.googlesource.com/15645
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
src/effects/shadows/SkAmbientShadowMaskFilter.cpp
src/effects/shadows/SkSpotShadowMaskFilter.cpp
src/gpu/gl/GrGLGpu.cpp

index 7578ae3..3416835 100644 (file)
@@ -215,8 +215,7 @@ bool SkAmbientShadowMaskFilterImpl::directFilterRRectMaskGPU(GrContext*,
 
     GrPaint newPaint(paint);
     GrColor4f color = newPaint.getColor4f();
-    color.fRGBA[3] *= fAmbientAlpha;
-    newPaint.setColor4f(color);
+    newPaint.setColor4f(color.mulByScalar(fAmbientAlpha));
     if (SkToBool(fFlags & SkShadowFlags::kTransparentOccluder_ShadowFlag)) {
         // set a large inset to force a fill
         devSpaceInsetWidth = ambientRRect.width();
index 0716d9b..a51aa56 100644 (file)
@@ -297,8 +297,7 @@ bool SkSpotShadowMaskFilterImpl::directFilterRRectMaskGPU(GrContext*,
     }
 
     GrColor4f color = paint.getColor4f();
-    color.fRGBA[3] *= fSpotAlpha;
-    paint.setColor4f(color);
+    paint.setColor4f(color.mulByScalar(fSpotAlpha));
     rtContext->drawShadowRRect(clip, std::move(paint), viewMatrix, spotShadowRRect,
                                devSpaceSpotBlur, insetWidth);
 
index 8d76fae..3f200bb 100644 (file)
@@ -191,6 +191,9 @@ GrGpu* GrGLGpu::Create(GrBackendContext backendContext, const GrContextOptions&
     if (!glInterface) {
         return nullptr;
     }
+#ifdef USE_NSIGHT
+    const_cast<GrContextOptions&>(options).fSuppressPathRendering = true;
+#endif
     GrGLContext* glContext = GrGLContext::Create(glInterface.get(), options);
     if (glContext) {
         return new GrGLGpu(glContext, context);