summaryrefslogtreecommitdiffstats
path: root/WebCore
diff options
context:
space:
mode:
authorGrace Kloba <klobag@google.com>2009-12-11 13:53:22 -0800
committerGrace Kloba <klobag@google.com>2009-12-11 13:53:22 -0800
commit9652d6b88e01f27d69c804ac6bc56b527b33c219 (patch)
tree707d7496ed58712add9c802fc055fb62a569f9af /WebCore
parent80e68b43c3da64848db8edc7d8e8fe095888e42e (diff)
downloadexternal_webkit-9652d6b88e01f27d69c804ac6bc56b527b33c219.zip
external_webkit-9652d6b88e01f27d69c804ac6bc56b527b33c219.tar.gz
external_webkit-9652d6b88e01f27d69c804ac6bc56b527b33c219.tar.bz2
Rollback to return density for scaleFactor.
Move the comment to HTMLCanvasElement and always use 1.0 there.
Diffstat (limited to 'WebCore')
-rw-r--r--WebCore/html/HTMLCanvasElement.cpp24
1 files changed, 24 insertions, 0 deletions
diff --git a/WebCore/html/HTMLCanvasElement.cpp b/WebCore/html/HTMLCanvasElement.cpp
index 7bae6e3..0405669 100644
--- a/WebCore/html/HTMLCanvasElement.cpp
+++ b/WebCore/html/HTMLCanvasElement.cpp
@@ -277,7 +277,19 @@ IntRect HTMLCanvasElement::convertLogicalToDevice(const FloatRect& logicalRect)
IntSize HTMLCanvasElement::convertLogicalToDevice(const FloatSize& logicalSize) const
{
+#if PLATFORM(ANDROID)
+ /* In Android we capture the drawing into a displayList, and then
+ replay that list at various scale factors (sometimes zoomed out, other
+ times zoomed in for "normal" reading, yet other times at arbitrary
+ zoom values based on the user's choice). In all of these cases, we do
+ not re-record the displayList, hence it is usually harmful to perform
+ any pre-rounding, since we just don't know the actual drawing resolution
+ at record time.
+ */
+ float pageScaleFactor = 1.0f;
+#else
float pageScaleFactor = document()->frame() ? document()->frame()->page()->chrome()->scaleFactor() : 1.0f;
+#endif
float wf = ceilf(logicalSize.width() * pageScaleFactor);
float hf = ceilf(logicalSize.height() * pageScaleFactor);
@@ -289,7 +301,19 @@ IntSize HTMLCanvasElement::convertLogicalToDevice(const FloatSize& logicalSize)
IntPoint HTMLCanvasElement::convertLogicalToDevice(const FloatPoint& logicalPos) const
{
+#if PLATFORM(ANDROID)
+ /* In Android we capture the drawing into a displayList, and then
+ replay that list at various scale factors (sometimes zoomed out, other
+ times zoomed in for "normal" reading, yet other times at arbitrary
+ zoom values based on the user's choice). In all of these cases, we do
+ not re-record the displayList, hence it is usually harmful to perform
+ any pre-rounding, since we just don't know the actual drawing resolution
+ at record time.
+ */
+ float pageScaleFactor = 1.0f;
+#else
float pageScaleFactor = document()->frame() ? document()->frame()->page()->chrome()->scaleFactor() : 1.0f;
+#endif
float xf = logicalPos.x() * pageScaleFactor;
float yf = logicalPos.y() * pageScaleFactor;