| Index: Source/core/html/canvas/CanvasRenderingContext2D.cpp
|
| diff --git a/Source/core/html/canvas/CanvasRenderingContext2D.cpp b/Source/core/html/canvas/CanvasRenderingContext2D.cpp
|
| index 4eea12475e641bce52e6482f6efa3b73d6060b7e..57c1f5ef584658e7df061c62cd080281ecfb36e2 100644
|
| --- a/Source/core/html/canvas/CanvasRenderingContext2D.cpp
|
| +++ b/Source/core/html/canvas/CanvasRenderingContext2D.cpp
|
| @@ -862,8 +862,12 @@ void CanvasRenderingContext2D::setTransform(float m11, float m12, float m21, flo
|
| transform(m11, m12, m21, m22, dx, dy);
|
| }
|
|
|
| -void CanvasRenderingContext2D::setStrokeColor(const String& color)
|
| +void CanvasRenderingContext2D::setStrokeColor(const String& color, Optional<float> alpha)
|
| {
|
| + if (!alpha.isMissing()) {
|
| + setStrokeStyle(CanvasStyle::createFromStringWithOverrideAlpha(color, alpha));
|
| + return;
|
| + }
|
| if (color == state().m_unparsedStrokeColor)
|
| return;
|
| realizeSaves();
|
| @@ -871,18 +875,6 @@ void CanvasRenderingContext2D::setStrokeColor(const String& color)
|
| modifiableState().m_unparsedStrokeColor = color;
|
| }
|
|
|
| -void CanvasRenderingContext2D::setStrokeColor(float grayLevel)
|
| -{
|
| - if (state().m_strokeStyle && state().m_strokeStyle->isEquivalentRGBA(grayLevel, grayLevel, grayLevel, 1.0f))
|
| - return;
|
| - setStrokeStyle(CanvasStyle::createFromGrayLevelWithAlpha(grayLevel, 1.0f));
|
| -}
|
| -
|
| -void CanvasRenderingContext2D::setStrokeColor(const String& color, float alpha)
|
| -{
|
| - setStrokeStyle(CanvasStyle::createFromStringWithOverrideAlpha(color, alpha));
|
| -}
|
| -
|
| void CanvasRenderingContext2D::setStrokeColor(float grayLevel, float alpha)
|
| {
|
| if (state().m_strokeStyle && state().m_strokeStyle->isEquivalentRGBA(grayLevel, grayLevel, grayLevel, alpha))
|
| @@ -904,8 +896,12 @@ void CanvasRenderingContext2D::setStrokeColor(float c, float m, float y, float k
|
| setStrokeStyle(CanvasStyle::createFromCMYKAChannels(c, m, y, k, a));
|
| }
|
|
|
| -void CanvasRenderingContext2D::setFillColor(const String& color)
|
| +void CanvasRenderingContext2D::setFillColor(const String& color, Optional<float> alpha)
|
| {
|
| + if (!alpha.isMissing()) {
|
| + setFillStyle(CanvasStyle::createFromStringWithOverrideAlpha(color, alpha));
|
| + return;
|
| + }
|
| if (color == state().m_unparsedFillColor)
|
| return;
|
| realizeSaves();
|
| @@ -913,18 +909,6 @@ void CanvasRenderingContext2D::setFillColor(const String& color)
|
| modifiableState().m_unparsedFillColor = color;
|
| }
|
|
|
| -void CanvasRenderingContext2D::setFillColor(float grayLevel)
|
| -{
|
| - if (state().m_fillStyle && state().m_fillStyle->isEquivalentRGBA(grayLevel, grayLevel, grayLevel, 1.0f))
|
| - return;
|
| - setFillStyle(CanvasStyle::createFromGrayLevelWithAlpha(grayLevel, 1.0f));
|
| -}
|
| -
|
| -void CanvasRenderingContext2D::setFillColor(const String& color, float alpha)
|
| -{
|
| - setFillStyle(CanvasStyle::createFromStringWithOverrideAlpha(color, alpha));
|
| -}
|
| -
|
| void CanvasRenderingContext2D::setFillColor(float grayLevel, float alpha)
|
| {
|
| if (state().m_fillStyle && state().m_fillStyle->isEquivalentRGBA(grayLevel, grayLevel, grayLevel, alpha))
|
| @@ -1180,14 +1164,9 @@ bool CanvasRenderingContext2D::isPointInStrokeInternal(const Path& path, const f
|
| return path.strokeContains(transformedPoint, strokeData);
|
| }
|
|
|
| -void CanvasRenderingContext2D::scrollPathIntoView()
|
| -{
|
| - scrollPathIntoViewInternal(m_path);
|
| -}
|
| -
|
| void CanvasRenderingContext2D::scrollPathIntoView(Path2D* path2d)
|
| {
|
| - scrollPathIntoViewInternal(path2d->path());
|
| + scrollPathIntoViewInternal(path2d ? path2d->path() : m_path);
|
| }
|
|
|
| void CanvasRenderingContext2D::scrollPathIntoViewInternal(const Path& path)
|
| @@ -1344,32 +1323,18 @@ void CanvasRenderingContext2D::strokeRect(float x, float y, float width, float h
|
| }
|
| }
|
|
|
| -void CanvasRenderingContext2D::setShadow(float width, float height, float blur)
|
| -{
|
| - setShadow(FloatSize(width, height), blur, Color::transparent);
|
| -}
|
| -
|
| -void CanvasRenderingContext2D::setShadow(float width, float height, float blur, const String& color)
|
| +void CanvasRenderingContext2D::setShadow(float width, float height, float blur, const Optional<String>& color, Optional<float> alpha)
|
| {
|
| RGBA32 rgba;
|
| - if (!parseColorOrCurrentColor(rgba, color, canvas()))
|
| + if (color.isMissing())
|
| + rgba = Color::transparent;
|
| + else if (!parseColorOrCurrentColor(rgba, color, canvas()))
|
| return;
|
| + if (!alpha.isMissing())
|
| + rgba = colorWithOverrideAlpha(rgba, alpha);
|
| setShadow(FloatSize(width, height), blur, rgba);
|
| }
|
|
|
| -void CanvasRenderingContext2D::setShadow(float width, float height, float blur, float grayLevel)
|
| -{
|
| - setShadow(FloatSize(width, height), blur, makeRGBA32FromFloats(grayLevel, grayLevel, grayLevel, 1));
|
| -}
|
| -
|
| -void CanvasRenderingContext2D::setShadow(float width, float height, float blur, const String& color, float alpha)
|
| -{
|
| - RGBA32 rgba;
|
| - if (!parseColorOrCurrentColor(rgba, color, canvas()))
|
| - return;
|
| - setShadow(FloatSize(width, height), blur, colorWithOverrideAlpha(rgba, alpha));
|
| -}
|
| -
|
| void CanvasRenderingContext2D::setShadow(float width, float height, float blur, float grayLevel, float alpha)
|
| {
|
| setShadow(FloatSize(width, height), blur, makeRGBA32FromFloats(grayLevel, grayLevel, grayLevel, alpha));
|
| @@ -2016,24 +1981,14 @@ void CanvasRenderingContext2D::setTextBaseline(const String& s)
|
| modifiableState().m_textBaseline = baseline;
|
| }
|
|
|
| -void CanvasRenderingContext2D::fillText(const String& text, float x, float y)
|
| -{
|
| - drawTextInternal(text, x, y, true);
|
| -}
|
| -
|
| -void CanvasRenderingContext2D::fillText(const String& text, float x, float y, float maxWidth)
|
| -{
|
| - drawTextInternal(text, x, y, true, maxWidth, true);
|
| -}
|
| -
|
| -void CanvasRenderingContext2D::strokeText(const String& text, float x, float y)
|
| +void CanvasRenderingContext2D::fillText(const String& text, float x, float y, Optional<float> maxWidth)
|
| {
|
| - drawTextInternal(text, x, y, false);
|
| + drawTextInternal(text, x, y, true, maxWidth.get(), !maxWidth.isMissing());
|
| }
|
|
|
| -void CanvasRenderingContext2D::strokeText(const String& text, float x, float y, float maxWidth)
|
| +void CanvasRenderingContext2D::strokeText(const String& text, float x, float y, Optional<float> maxWidth)
|
| {
|
| - drawTextInternal(text, x, y, false, maxWidth, true);
|
| + drawTextInternal(text, x, y, false, maxWidth.get(), !maxWidth.isMissing());
|
| }
|
|
|
| static inline bool isSpaceCharacter(UChar c)
|
|
|