Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1021)

Unified Diff: third_party/WebKit/Source/modules/canvas2d/CanvasRenderingContext2D.cpp

Issue 1454163005: Change float-->double in CanvasRenderingContext2D.idl (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/modules/canvas2d/CanvasRenderingContext2D.cpp
diff --git a/third_party/WebKit/Source/modules/canvas2d/CanvasRenderingContext2D.cpp b/third_party/WebKit/Source/modules/canvas2d/CanvasRenderingContext2D.cpp
index da219d684678b699d63a30c8cc7aee96d2a5c4fe..2ca83edc07e15bbf6d2d287ac1c8e13b44fc3106 100644
--- a/third_party/WebKit/Source/modules/canvas2d/CanvasRenderingContext2D.cpp
+++ b/third_party/WebKit/Source/modules/canvas2d/CanvasRenderingContext2D.cpp
@@ -82,7 +82,7 @@ static const char rtl[] = "rtl";
static const char ltr[] = "ltr";
static const double TryRestoreContextInterval = 0.5;
static const unsigned MaxTryRestoreContextAttempts = 4;
-static const float cDeviceScaleFactor = 1.0f; // Canvas is device independent
+static const double cDeviceScaleFactor = 1.0; // Canvas is device independent
static bool contextLostRestoredEventsEnabled()
{
@@ -448,12 +448,12 @@ void CanvasRenderingContext2D::setFillStyle(const StringOrCanvasGradientOrCanvas
modifiableState().setUnparsedFillColor(colorString);
}
-float CanvasRenderingContext2D::lineWidth() const
+double CanvasRenderingContext2D::lineWidth() const
{
return state().lineWidth();
}
-void CanvasRenderingContext2D::setLineWidth(float width)
+void CanvasRenderingContext2D::setLineWidth(double width)
{
if (!std::isfinite(width) || width <= 0)
return;
@@ -492,12 +492,12 @@ void CanvasRenderingContext2D::setLineJoin(const String& s)
modifiableState().setLineJoin(join);
}
-float CanvasRenderingContext2D::miterLimit() const
+double CanvasRenderingContext2D::miterLimit() const
{
return state().miterLimit();
}
-void CanvasRenderingContext2D::setMiterLimit(float limit)
+void CanvasRenderingContext2D::setMiterLimit(double limit)
{
if (!std::isfinite(limit) || limit <= 0)
return;
@@ -506,12 +506,12 @@ void CanvasRenderingContext2D::setMiterLimit(float limit)
modifiableState().setMiterLimit(limit);
}
-float CanvasRenderingContext2D::shadowOffsetX() const
+double CanvasRenderingContext2D::shadowOffsetX() const
{
return state().shadowOffset().width();
}
-void CanvasRenderingContext2D::setShadowOffsetX(float x)
+void CanvasRenderingContext2D::setShadowOffsetX(double x)
{
if (!std::isfinite(x))
return;
@@ -520,12 +520,12 @@ void CanvasRenderingContext2D::setShadowOffsetX(float x)
modifiableState().setShadowOffsetX(x);
}
-float CanvasRenderingContext2D::shadowOffsetY() const
+double CanvasRenderingContext2D::shadowOffsetY() const
{
return state().shadowOffset().height();
}
-void CanvasRenderingContext2D::setShadowOffsetY(float y)
+void CanvasRenderingContext2D::setShadowOffsetY(double y)
{
if (!std::isfinite(y))
return;
@@ -534,12 +534,12 @@ void CanvasRenderingContext2D::setShadowOffsetY(float y)
modifiableState().setShadowOffsetY(y);
}
-float CanvasRenderingContext2D::shadowBlur() const
+double CanvasRenderingContext2D::shadowBlur() const
{
return state().shadowBlur();
}
-void CanvasRenderingContext2D::setShadowBlur(float blur)
+void CanvasRenderingContext2D::setShadowBlur(double blur)
{
if (!std::isfinite(blur) || blur < 0)
return;
@@ -584,24 +584,24 @@ void CanvasRenderingContext2D::setLineDash(const Vector<float>& dash)
modifiableState().setLineDash(dash);
}
-float CanvasRenderingContext2D::lineDashOffset() const
+double CanvasRenderingContext2D::lineDashOffset() const
{
return state().lineDashOffset();
}
-void CanvasRenderingContext2D::setLineDashOffset(float offset)
+void CanvasRenderingContext2D::setLineDashOffset(double offset)
{
if (!std::isfinite(offset) || state().lineDashOffset() == offset)
return;
modifiableState().setLineDashOffset(offset);
}
-float CanvasRenderingContext2D::globalAlpha() const
+double CanvasRenderingContext2D::globalAlpha() const
{
return state().globalAlpha();
}
-void CanvasRenderingContext2D::setGlobalAlpha(float alpha)
+void CanvasRenderingContext2D::setGlobalAlpha(double alpha)
{
if (!(alpha >= 0 && alpha <= 1))
return;
@@ -668,7 +668,7 @@ void CanvasRenderingContext2D::setCurrentTransform(PassRefPtrWillBeRawPtr<SVGMat
setTransform(transform.a(), transform.b(), transform.c(), transform.d(), transform.e(), transform.f());
}
-void CanvasRenderingContext2D::scale(float sx, float sy)
+void CanvasRenderingContext2D::scale(double sx, double sy)
{
SkCanvas* c = drawingCanvas();
if (!c)
@@ -690,7 +690,7 @@ void CanvasRenderingContext2D::scale(float sx, float sy)
m_path.transform(AffineTransform().scaleNonUniform(1.0 / sx, 1.0 / sy));
}
-void CanvasRenderingContext2D::rotate(float angleInRadians)
+void CanvasRenderingContext2D::rotate(double angleInRadians)
{
SkCanvas* c = drawingCanvas();
if (!c)
@@ -707,11 +707,11 @@ void CanvasRenderingContext2D::rotate(float angleInRadians)
modifiableState().setTransform(newTransform);
if (!state().isTransformInvertible())
return;
- c->rotate(angleInRadians * (180.0f / piFloat));
+ c->rotate(angleInRadians * (180.0 / piFloat));
m_path.transform(AffineTransform().rotateRadians(-angleInRadians));
}
-void CanvasRenderingContext2D::translate(float tx, float ty)
+void CanvasRenderingContext2D::translate(double tx, double ty)
{
SkCanvas* c = drawingCanvas();
if (!c)
@@ -734,7 +734,7 @@ void CanvasRenderingContext2D::translate(float tx, float ty)
m_path.transform(AffineTransform().translate(-tx, -ty));
}
-void CanvasRenderingContext2D::transform(float m11, float m12, float m21, float m22, float dx, float dy)
+void CanvasRenderingContext2D::transform(double m11, double m12, double m21, double m22, double dx, double dy)
{
SkCanvas* c = drawingCanvas();
if (!c)
@@ -779,7 +779,7 @@ void CanvasRenderingContext2D::resetTransform()
// It means that resetTransform() restores m_path just before CTM became non-invertible.
}
-void CanvasRenderingContext2D::setTransform(float m11, float m12, float m21, float m22, float dx, float dy)
+void CanvasRenderingContext2D::setTransform(double m11, double m12, double m21, double m22, double dx, double dy)
{
SkCanvas* c = drawingCanvas();
if (!c)
@@ -797,7 +797,7 @@ void CanvasRenderingContext2D::beginPath()
m_path.clear();
}
-static bool validateRectForCanvas(float& x, float& y, float& width, float& height)
+static bool validateRectForCanvas(double& x, double& y, double& width, double& height)
{
if (!std::isfinite(x) || !std::isfinite(y) || !std::isfinite(width) || !std::isfinite(height))
return false;
@@ -985,7 +985,7 @@ void CanvasRenderingContext2D::stroke(Path2D* domPath)
drawPathInternal(domPath->path(), CanvasRenderingContext2DState::StrokePaintType);
}
-void CanvasRenderingContext2D::fillRect(float x, float y, float width, float height)
+void CanvasRenderingContext2D::fillRect(double x, double y, double width, double height)
{
if (!validateRectForCanvas(x, y, width, height))
return;
@@ -1020,7 +1020,7 @@ static void strokeRectOnCanvas(const FloatRect& rect, SkCanvas* canvas, const Sk
canvas->drawRect(rect, *paint);
}
-void CanvasRenderingContext2D::strokeRect(float x, float y, float width, float height)
+void CanvasRenderingContext2D::strokeRect(double x, double y, double width, double height)
{
if (!validateRectForCanvas(x, y, width, height))
return;
@@ -1071,17 +1071,17 @@ void CanvasRenderingContext2D::clip(Path2D* domPath, const String& windingRuleSt
clipInternal(domPath->path(), windingRuleString);
}
-bool CanvasRenderingContext2D::isPointInPath(const float x, const float y, const String& windingRuleString)
+bool CanvasRenderingContext2D::isPointInPath(const double x, const double y, const String& windingRuleString)
{
return isPointInPathInternal(m_path, x, y, windingRuleString);
}
-bool CanvasRenderingContext2D::isPointInPath(Path2D* domPath, const float x, const float y, const String& windingRuleString)
+bool CanvasRenderingContext2D::isPointInPath(Path2D* domPath, const double x, const double y, const String& windingRuleString)
{
return isPointInPathInternal(domPath->path(), x, y, windingRuleString);
}
-bool CanvasRenderingContext2D::isPointInPathInternal(const Path& path, const float x, const float y, const String& windingRuleString)
+bool CanvasRenderingContext2D::isPointInPathInternal(const Path& path, const double x, const double y, const String& windingRuleString)
{
SkCanvas* c = drawingCanvas();
if (!c)
@@ -1098,17 +1098,17 @@ bool CanvasRenderingContext2D::isPointInPathInternal(const Path& path, const flo
return path.contains(transformedPoint, SkFillTypeToWindRule(parseWinding(windingRuleString)));
}
-bool CanvasRenderingContext2D::isPointInStroke(const float x, const float y)
+bool CanvasRenderingContext2D::isPointInStroke(const double x, const double y)
{
return isPointInStrokeInternal(m_path, x, y);
}
-bool CanvasRenderingContext2D::isPointInStroke(Path2D* domPath, const float x, const float y)
+bool CanvasRenderingContext2D::isPointInStroke(Path2D* domPath, const double x, const double y)
{
return isPointInStrokeInternal(domPath->path(), x, y);
}
-bool CanvasRenderingContext2D::isPointInStrokeInternal(const Path& path, const float x, const float y)
+bool CanvasRenderingContext2D::isPointInStrokeInternal(const Path& path, const double x, const double y)
{
SkCanvas* c = drawingCanvas();
if (!c)
@@ -1170,7 +1170,7 @@ void CanvasRenderingContext2D::scrollPathIntoViewInternal(const Path& path)
// selection the specified rectangle of the canvas. See http://crbug.com/357987
}
-void CanvasRenderingContext2D::clearRect(float x, float y, float width, float height)
+void CanvasRenderingContext2D::clearRect(double x, double y, double width, double height)
{
if (!validateRectForCanvas(x, y, width, height))
return;
@@ -1249,7 +1249,7 @@ static inline CanvasImageSource* toImageSourceInternal(const CanvasImageSourceUn
return nullptr;
}
-void CanvasRenderingContext2D::drawImage(const CanvasImageSourceUnion& imageSource, float x, float y, ExceptionState& exceptionState)
+void CanvasRenderingContext2D::drawImage(const CanvasImageSourceUnion& imageSource, double x, double y, ExceptionState& exceptionState)
{
CanvasImageSource* imageSourceInternal = toImageSourceInternal(imageSource);
FloatSize sourceRectSize = imageSourceInternal->elementSize();
@@ -1258,7 +1258,7 @@ void CanvasRenderingContext2D::drawImage(const CanvasImageSourceUnion& imageSour
}
void CanvasRenderingContext2D::drawImage(const CanvasImageSourceUnion& imageSource,
- float x, float y, float width, float height, ExceptionState& exceptionState)
+ double x, double y, double width, double height, ExceptionState& exceptionState)
{
CanvasImageSource* imageSourceInternal = toImageSourceInternal(imageSource);
FloatSize sourceRectSize = imageSourceInternal->elementSize();
@@ -1266,8 +1266,8 @@ void CanvasRenderingContext2D::drawImage(const CanvasImageSourceUnion& imageSour
}
void CanvasRenderingContext2D::drawImage(const CanvasImageSourceUnion& imageSource,
- float sx, float sy, float sw, float sh,
- float dx, float dy, float dw, float dh, ExceptionState& exceptionState)
+ double sx, double sy, double sw, double sh,
+ double dx, double dy, double dw, double dh, ExceptionState& exceptionState)
{
CanvasImageSource* imageSourceInternal = toImageSourceInternal(imageSource);
drawImage(imageSourceInternal, sx, sy, sw, sh, dx, dy, dw, dh, exceptionState);
@@ -1359,8 +1359,8 @@ bool shouldDisableDeferral(CanvasImageSource* imageSource)
}
void CanvasRenderingContext2D::drawImage(CanvasImageSource* imageSource,
- float sx, float sy, float sw, float sh,
- float dx, float dy, float dw, float dh, ExceptionState& exceptionState)
+ double sx, double sy, double sw, double sh,
+ double dx, double dy, double dw, double dh, ExceptionState& exceptionState)
{
if (!drawingCanvas())
return;
@@ -1452,13 +1452,13 @@ bool CanvasRenderingContext2D::rectContainsTransformedRect(const FloatRect& rect
return state().transform().mapQuad(quad).containsQuad(transformedQuad);
}
-CanvasGradient* CanvasRenderingContext2D::createLinearGradient(float x0, float y0, float x1, float y1)
+CanvasGradient* CanvasRenderingContext2D::createLinearGradient(double x0, double y0, double x1, double y1)
{
CanvasGradient* gradient = CanvasGradient::create(FloatPoint(x0, y0), FloatPoint(x1, y1));
return gradient;
}
-CanvasGradient* CanvasRenderingContext2D::createRadialGradient(float x0, float y0, float r0, float x1, float y1, float r1, ExceptionState& exceptionState)
+CanvasGradient* CanvasRenderingContext2D::createRadialGradient(double x0, double y0, double r0, double x1, double y1, double r1, ExceptionState& exceptionState)
{
if (r0 < 0 || r1 < 0) {
exceptionState.throwDOMException(IndexSizeError, String::format("The %s provided is less than 0.", r0 < 0 ? "r0" : "r1"));
@@ -1560,7 +1560,7 @@ ImageData* CanvasRenderingContext2D::createImageData(ImageData* imageData) const
return ImageData::create(imageData->size());
}
-ImageData* CanvasRenderingContext2D::createImageData(float sw, float sh, ExceptionState& exceptionState) const
+ImageData* CanvasRenderingContext2D::createImageData(double sw, double sh, ExceptionState& exceptionState) const
{
if (!sw || !sh) {
exceptionState.throwDOMException(IndexSizeError, String::format("The source %s is 0.", sw ? "height" : "width"));
@@ -1580,7 +1580,7 @@ ImageData* CanvasRenderingContext2D::createImageData(float sw, float sh, Excepti
return ImageData::create(size);
}
-ImageData* CanvasRenderingContext2D::getImageData(float sx, float sy, float sw, float sh, ExceptionState& exceptionState) const
+ImageData* CanvasRenderingContext2D::getImageData(double sx, double sy, double sw, double sh, ExceptionState& exceptionState) const
{
if (!canvas()->originClean())
exceptionState.throwSecurityError("The canvas has been tainted by cross-origin data.");
@@ -1622,12 +1622,12 @@ ImageData* CanvasRenderingContext2D::getImageData(float sx, float sy, float sw,
DOMUint8ClampedArray::create(arrayBuffer, 0, arrayBuffer->byteLength()));
}
-void CanvasRenderingContext2D::putImageData(ImageData* data, float dx, float dy, ExceptionState& exceptionState)
+void CanvasRenderingContext2D::putImageData(ImageData* data, double dx, double dy, ExceptionState& exceptionState)
{
putImageData(data, dx, dy, 0, 0, data->width(), data->height(), exceptionState);
}
-void CanvasRenderingContext2D::putImageData(ImageData* data, float dx, float dy, float dirtyX, float dirtyY, float dirtyWidth, float dirtyHeight, ExceptionState& exceptionState)
+void CanvasRenderingContext2D::putImageData(ImageData* data, double dx, double dy, double dirtyX, double dirtyY, double dirtyWidth, double dirtyHeight, ExceptionState& exceptionState)
{
if (data->data()->bufferBase()->isNeutered()) {
exceptionState.throwDOMException(InvalidStateError, "The source data has been neutered.");
@@ -1873,22 +1873,22 @@ void CanvasRenderingContext2D::setDirection(const String& directionString)
modifiableState().setDirection(direction);
}
-void CanvasRenderingContext2D::fillText(const String& text, float x, float y)
+void CanvasRenderingContext2D::fillText(const String& text, double x, double y)
{
drawTextInternal(text, x, y, CanvasRenderingContext2DState::FillPaintType);
}
-void CanvasRenderingContext2D::fillText(const String& text, float x, float y, float maxWidth)
+void CanvasRenderingContext2D::fillText(const String& text, double x, double y, double maxWidth)
{
drawTextInternal(text, x, y, CanvasRenderingContext2DState::FillPaintType, &maxWidth);
}
-void CanvasRenderingContext2D::strokeText(const String& text, float x, float y)
+void CanvasRenderingContext2D::strokeText(const String& text, double x, double y)
{
drawTextInternal(text, x, y, CanvasRenderingContext2DState::StrokePaintType);
}
-void CanvasRenderingContext2D::strokeText(const String& text, float x, float y, float maxWidth)
+void CanvasRenderingContext2D::strokeText(const String& text, double x, double y, double maxWidth)
{
drawTextInternal(text, x, y, CanvasRenderingContext2DState::StrokePaintType, &maxWidth);
}
@@ -1920,9 +1920,9 @@ TextMetrics* CanvasRenderingContext2D::measureText(const String& text)
// y direction
const FontMetrics& fontMetrics = font.fontMetrics();
- const float ascent = fontMetrics.floatAscent();
- const float descent = fontMetrics.floatDescent();
- const float baselineY = getFontBaseline(fontMetrics);
+ const double ascent = fontMetrics.floatAscent();
+ const double descent = fontMetrics.floatDescent();
+ const double baselineY = getFontBaseline(fontMetrics);
metrics->setFontBoundingBoxAscent(ascent - baselineY);
metrics->setFontBoundingBoxDescent(descent + baselineY);
@@ -1940,7 +1940,7 @@ TextMetrics* CanvasRenderingContext2D::measureText(const String& text)
return metrics;
}
-void CanvasRenderingContext2D::drawTextInternal(const String& text, float x, float y, CanvasRenderingContext2DState::PaintType paintType, float* maxWidth)
+void CanvasRenderingContext2D::drawTextInternal(const String& text, double x, double y, CanvasRenderingContext2DState::PaintType paintType, double* maxWidth)
{
// The style resolution required for rendering text is not available in frame-less documents.
if (!canvas()->document().frame())
@@ -1974,10 +1974,10 @@ void CanvasRenderingContext2D::drawTextInternal(const String& text, float x, flo
textRun.setNormalizeSpace(true);
// Draw the item text at the correct point.
FloatPoint location(x, y + getFontBaseline(fontMetrics));
- float fontWidth = font.width(textRun);
+ double fontWidth = font.width(textRun);
bool useMaxWidth = (maxWidth && *maxWidth < fontWidth);
- float width = useMaxWidth ? *maxWidth : fontWidth;
+ double width = useMaxWidth ? *maxWidth : fontWidth;
TextAlign align = state().textAlign();
if (align == StartTextAlign)
@@ -2031,8 +2031,8 @@ void CanvasRenderingContext2D::inflateStrokeRect(FloatRect& rect) const
// Fast approximation of the stroke's bounding rect.
// This yields a slightly oversized rect but is very fast
// compared to Path::strokeBoundingRect().
- static const float root2 = sqrtf(2);
- float delta = state().lineWidth() / 2;
+ static const double root2 = sqrtf(2);
+ double delta = state().lineWidth() / 2;
if (state().lineJoin() == MiterJoin)
delta *= state().miterLimit();
else if (state().lineCap() == SquareCap)

Powered by Google App Engine
This is Rietveld 408576698