Title: [270000] trunk/Source/WebCore
Revision
270000
Author
[email protected]
Date
2020-11-18 16:27:51 -0800 (Wed, 18 Nov 2020)

Log Message

REGRESSION (r269895): Google Maps expanded route options are missing background color
https://bugs.webkit.org/show_bug.cgi?id=219119
<rdar://problem/71510412>

Reviewed by Said Abou-Hallawa.

No new tests, yet. Test is pending.

* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::drawPlatformImage):
r199071 removed the state save/restore around the CG implementation of
drawNativeImage, explicitly saving and restoring the few things it knew
that the implementation would change. However, it failed to save/restore
the composite operator.

This was mostly not a problem, because e.g. canvas always hands down the
global op. However, in r269895, I added code that passes in a /different/
compositing operator, and it gets stuck on the context.

Save and restore the composite operator and blend mode like we do for other properties.

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (269999 => 270000)


--- trunk/Source/WebCore/ChangeLog	2020-11-19 00:15:12 UTC (rev 269999)
+++ trunk/Source/WebCore/ChangeLog	2020-11-19 00:27:51 UTC (rev 270000)
@@ -1,3 +1,26 @@
+2020-11-18  Tim Horton  <[email protected]>
+
+        REGRESSION (r269895): Google Maps expanded route options are missing background color
+        https://bugs.webkit.org/show_bug.cgi?id=219119
+        <rdar://problem/71510412>
+
+        Reviewed by Said Abou-Hallawa.
+
+        No new tests, yet. Test is pending.
+
+        * platform/graphics/cg/GraphicsContextCG.cpp:
+        (WebCore::GraphicsContext::drawPlatformImage):
+        r199071 removed the state save/restore around the CG implementation of
+        drawNativeImage, explicitly saving and restoring the few things it knew
+        that the implementation would change. However, it failed to save/restore
+        the composite operator.
+
+        This was mostly not a problem, because e.g. canvas always hands down the 
+        global op. However, in r269895, I added code that passes in a /different/
+        compositing operator, and it gets stuck on the context.
+
+        Save and restore the composite operator and blend mode like we do for other properties.
+
 2020-11-18  Aditya Keerthi  <[email protected]>
 
         [iOS][FCR] Rename UA style sheet to follow naming convention

Modified: trunk/Source/WebCore/platform/graphics/cg/GraphicsContextCG.cpp (269999 => 270000)


--- trunk/Source/WebCore/platform/graphics/cg/GraphicsContextCG.cpp	2020-11-19 00:15:12 UTC (rev 269999)
+++ trunk/Source/WebCore/platform/graphics/cg/GraphicsContextCG.cpp	2020-11-19 00:27:51 UTC (rev 270000)
@@ -365,6 +365,8 @@
     adjustedDestRect = roundToDevicePixels(adjustedDestRect);
 #endif
 
+    auto oldCompositeOperator = compositeOperation();
+    auto oldBlendMode = blendModeOperation();
     setPlatformCompositeOperation(options.compositeOperator(), options.blendMode());
 
     // ImageOrientation expects the origin to be at (0, 0)
@@ -392,6 +394,7 @@
 #if PLATFORM(IOS_FAMILY)
         CGContextSetShouldAntialias(context, wasAntialiased);
 #endif
+        setPlatformCompositeOperation(oldCompositeOperator, oldBlendMode);
     }
 
     LOG_WITH_STREAM(Images, stream << "GraphicsContext::drawNativeImage " << image.get() << " size " << imageSize << " into " << destRect << " took " << (MonotonicTime::now() - startTime).milliseconds() << "ms");
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to