Title: [154985] trunk/Source/WebKit/qt
Revision
154985
Author
allan.jen...@digia.com
Date
2013-09-03 08:32:07 -0700 (Tue, 03 Sep 2013)

Log Message

[Qt] Images scaled poorly on composited canvas
https://bugs.webkit.org/show_bug.cgi?id=120632

Reviewed by Jocelyn Turcotte.

Explicitly set a imageInterpolationQuality on the TextureMapper, because
InterpolationDefault may be interpreted differently by nested GraphicsContexts.

* WebCoreSupport/TextureMapperLayerClientQt.cpp:
(TextureMapperLayerClientQt::renderCompositedLayers):

Modified Paths

Diff

Modified: trunk/Source/WebKit/qt/ChangeLog (154984 => 154985)


--- trunk/Source/WebKit/qt/ChangeLog	2013-09-03 14:50:53 UTC (rev 154984)
+++ trunk/Source/WebKit/qt/ChangeLog	2013-09-03 15:32:07 UTC (rev 154985)
@@ -1,5 +1,18 @@
 2013-09-03  Allan Sandfeld Jensen  <allan.jen...@digia.com>
 
+        [Qt] Images scaled poorly on composited canvas
+        https://bugs.webkit.org/show_bug.cgi?id=120632
+
+        Reviewed by Jocelyn Turcotte.
+
+        Explicitly set a imageInterpolationQuality on the TextureMapper, because
+        InterpolationDefault may be interpreted differently by nested GraphicsContexts.
+
+        * WebCoreSupport/TextureMapperLayerClientQt.cpp:
+        (TextureMapperLayerClientQt::renderCompositedLayers):
+
+2013-09-03  Allan Sandfeld Jensen  <allan.jen...@digia.com>
+
         [Qt] Tiled-backing store not clipped to frame or visible rect
         https://bugs.webkit.org/show_bug.cgi?id=120606
 

Modified: trunk/Source/WebKit/qt/WebCoreSupport/TextureMapperLayerClientQt.cpp (154984 => 154985)


--- trunk/Source/WebKit/qt/WebCoreSupport/TextureMapperLayerClientQt.cpp	2013-09-03 14:50:53 UTC (rev 154984)
+++ trunk/Source/WebKit/qt/WebCoreSupport/TextureMapperLayerClientQt.cpp	2013-09-03 15:32:07 UTC (rev 154985)
@@ -104,7 +104,14 @@
         return;
 
     m_textureMapper->setGraphicsContext(context);
-    m_textureMapper->setImageInterpolationQuality(context->imageInterpolationQuality());
+    // GraphicsContext::imageInterpolationQuality is always InterpolationDefault here,
+    // but 'default' may be interpreted differently due to a different backend QPainter,
+    // so we need to set an explicit imageInterpolationQuality.
+    if (context->platformContext()->renderHints() & QPainter::SmoothPixmapTransform)
+        m_textureMapper->setImageInterpolationQuality(WebCore::InterpolationMedium);
+    else
+        m_textureMapper->setImageInterpolationQuality(WebCore::InterpolationNone);
+
     m_textureMapper->setTextDrawingMode(context->textDrawingMode());
     QPainter* painter = context->platformContext();
     const QTransform transform = painter->worldTransform();
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to