Title: [139026] trunk/Source
Revision
139026
Author
senorbla...@chromium.org
Date
2013-01-07 18:58:15 -0800 (Mon, 07 Jan 2013)

Log Message

Add a flag to control canvas antialiasing.
https://bugs.webkit.org/show_bug.cgi?id=106255

Reviewed by Darin Fisher.

Source/WebCore:

This flag is not exposed through TestRunner or DRT, so no testing is
possible yet.

* html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::createImageBuffer):
* page/Settings.in:

Source/WebKit/chromium:

* public/WebSettings.h:
* src/WebSettingsImpl.cpp:
(WebKit::WebSettingsImpl::setAntialiased2dCanvasEnabled):
* src/WebSettingsImpl.h:

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (139025 => 139026)


--- trunk/Source/WebCore/ChangeLog	2013-01-08 02:41:22 UTC (rev 139025)
+++ trunk/Source/WebCore/ChangeLog	2013-01-08 02:58:15 UTC (rev 139026)
@@ -1,3 +1,17 @@
+2013-01-07  Stephen White  <senorbla...@chromium.org>
+
+        Add a flag to control canvas antialiasing.
+        https://bugs.webkit.org/show_bug.cgi?id=106255
+
+        Reviewed by Darin Fisher.
+
+        This flag is not exposed through TestRunner or DRT, so no testing is
+        possible yet.
+
+        * html/HTMLCanvasElement.cpp:
+        (WebCore::HTMLCanvasElement::createImageBuffer):
+        * page/Settings.in:
+
 2013-01-07  Julien Chaffraix  <jchaffr...@webkit.org>
 
         [CSS Grid Layout] Implement grid items sizing for fixed minmax grid tracks

Modified: trunk/Source/WebCore/html/HTMLCanvasElement.cpp (139025 => 139026)


--- trunk/Source/WebCore/html/HTMLCanvasElement.cpp	2013-01-08 02:41:22 UTC (rev 139025)
+++ trunk/Source/WebCore/html/HTMLCanvasElement.cpp	2013-01-08 02:58:15 UTC (rev 139026)
@@ -570,6 +570,8 @@
         return;
     m_imageBuffer->context()->setShadowsIgnoreTransforms(true);
     m_imageBuffer->context()->setImageInterpolationQuality(DefaultInterpolationQuality);
+    if (document()->settings() && !document()->settings()->antialiased2dCanvasEnabled())
+        m_imageBuffer->context()->setShouldAntialias(false);
     m_imageBuffer->context()->setStrokeThickness(1);
     m_contextStateSaver = adoptPtr(new GraphicsContextStateSaver(*m_imageBuffer->context()));
 

Modified: trunk/Source/WebCore/page/Settings.in (139025 => 139026)


--- trunk/Source/WebCore/page/Settings.in	2013-01-08 02:41:22 UTC (rev 139025)
+++ trunk/Source/WebCore/page/Settings.in	2013-01-08 02:58:15 UTC (rev 139026)
@@ -101,6 +101,7 @@
 privilegedWebGLExtensionsEnabled initial=false
 accelerated2dCanvasEnabled initial=false
 deferred2dCanvasEnabled initial=false
+antialiased2dCanvasEnabled initial=true
 loadDeferringEnabled initial=true
 webAudioEnabled initial=false
 paginateDuringLayoutEnabled initial=false

Modified: trunk/Source/WebKit/chromium/ChangeLog (139025 => 139026)


--- trunk/Source/WebKit/chromium/ChangeLog	2013-01-08 02:41:22 UTC (rev 139025)
+++ trunk/Source/WebKit/chromium/ChangeLog	2013-01-08 02:58:15 UTC (rev 139026)
@@ -1,3 +1,15 @@
+2013-01-07  Stephen White  <senorbla...@chromium.org>
+
+        Add a flag to control canvas antialiasing.
+        https://bugs.webkit.org/show_bug.cgi?id=106255
+
+        Reviewed by Darin Fisher.
+
+        * public/WebSettings.h:
+        * src/WebSettingsImpl.cpp:
+        (WebKit::WebSettingsImpl::setAntialiased2dCanvasEnabled):
+        * src/WebSettingsImpl.h:
+
 2013-01-07  Yusuf Ozuysal  <yus...@google.com>
 
         Don't use double tap zoom if minimum and maximum page scale is the same

Modified: trunk/Source/WebKit/chromium/public/WebSettings.h (139025 => 139026)


--- trunk/Source/WebKit/chromium/public/WebSettings.h	2013-01-08 02:41:22 UTC (rev 139025)
+++ trunk/Source/WebKit/chromium/public/WebSettings.h	2013-01-08 02:58:15 UTC (rev 139026)
@@ -72,6 +72,7 @@
     virtual void setAllowRunningOfInsecureContent(bool) = 0;
     virtual void setAllowScriptsToCloseWindows(bool) = 0;
     virtual void setAllowUniversalAccessFromFileURLs(bool) = 0;
+    virtual void setAntialiased2dCanvasEnabled(bool) = 0;
     virtual void setApplyDeviceScaleFactorInCompositor(bool) = 0;
     virtual void setApplyPageScaleFactorInCompositor(bool) = 0;
     virtual void setAsynchronousSpellCheckingEnabled(bool) = 0;

Modified: trunk/Source/WebKit/chromium/src/WebSettingsImpl.cpp (139025 => 139026)


--- trunk/Source/WebKit/chromium/src/WebSettingsImpl.cpp	2013-01-08 02:41:22 UTC (rev 139025)
+++ trunk/Source/WebKit/chromium/src/WebSettingsImpl.cpp	2013-01-08 02:58:15 UTC (rev 139026)
@@ -504,6 +504,11 @@
     m_settings->setAccelerated2dCanvasEnabled(enabled);
 }
 
+void WebSettingsImpl::setAntialiased2dCanvasEnabled(bool enabled)
+{
+    m_settings->setAntialiased2dCanvasEnabled(enabled);
+}
+
 void WebSettingsImpl::setDeferred2dCanvasEnabled(bool enabled)
 {
     m_settings->setDeferred2dCanvasEnabled(enabled);

Modified: trunk/Source/WebKit/chromium/src/WebSettingsImpl.h (139025 => 139026)


--- trunk/Source/WebKit/chromium/src/WebSettingsImpl.h	2013-01-08 02:41:22 UTC (rev 139025)
+++ trunk/Source/WebKit/chromium/src/WebSettingsImpl.h	2013-01-08 02:58:15 UTC (rev 139026)
@@ -66,6 +66,7 @@
     virtual void setAllowRunningOfInsecureContent(bool);
     virtual void setAllowScriptsToCloseWindows(bool);
     virtual void setAllowUniversalAccessFromFileURLs(bool);
+    virtual void setAntialiased2dCanvasEnabled(bool);
     virtual void setApplyDeviceScaleFactorInCompositor(bool);
     virtual void setApplyPageScaleFactorInCompositor(bool);
     virtual void setAsynchronousSpellCheckingEnabled(bool);
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to