Index: Source/core/html/canvas/CanvasRenderingContext2D.cpp |
diff --git a/Source/core/html/canvas/CanvasRenderingContext2D.cpp b/Source/core/html/canvas/CanvasRenderingContext2D.cpp |
index 0c7b1131fd98c2dbb60f52e0861fd67454a15a78..776ff7d80f9aa48e1b9181734efb24e99cf098e4 100644 |
--- a/Source/core/html/canvas/CanvasRenderingContext2D.cpp |
+++ b/Source/core/html/canvas/CanvasRenderingContext2D.cpp |
@@ -999,6 +999,19 @@ void CanvasRenderingContext2D::clip(DOMPath* domPath, const String& windingRuleS |
bool CanvasRenderingContext2D::isPointInPath(const float x, const float y, const String& windingRuleString) |
{ |
+ return isPointInPathInternal(m_path, x, y, windingRuleString); |
+} |
+ |
+bool CanvasRenderingContext2D::isPointInPath(DOMPath* domPath, const float x, const float y, const String& windingRuleString) |
+{ |
+ if (!domPath) |
Justin Novosad
2014/02/25 16:45:08
Shouldn't this case throw a type mismatch DOM exce
|
+ return false; |
+ |
+ return isPointInPathInternal(domPath->path(), x, y, windingRuleString); |
+} |
+ |
+bool CanvasRenderingContext2D::isPointInPathInternal(const Path& path, const float x, const float y, const String& windingRuleString) |
+{ |
GraphicsContext* c = drawingContext(); |
if (!c) |
return false; |
@@ -1015,12 +1028,24 @@ bool CanvasRenderingContext2D::isPointInPath(const float x, const float y, const |
if (!parseWinding(windingRuleString, windRule)) |
return false; |
- return m_path.contains(transformedPoint, windRule); |
+ return path.contains(transformedPoint, windRule); |
} |
- |
bool CanvasRenderingContext2D::isPointInStroke(const float x, const float y) |
{ |
+ return isPointInStrokeInternal(m_path, x, y); |
+} |
+ |
+bool CanvasRenderingContext2D::isPointInStroke(DOMPath* domPath, const float x, const float y) |
+{ |
+ if (!domPath) |
Justin Novosad
2014/02/25 16:45:08
DOM exception?
Rik
2014/02/25 17:37:54
Shouldn't that be called by blink's IDL preprocess
jcgregorio
2014/02/25 17:48:31
It should be caught by the code generated from the
|
+ return false; |
+ |
+ return isPointInStrokeInternal(domPath->path(), x, y); |
+} |
+ |
+bool CanvasRenderingContext2D::isPointInStrokeInternal(const Path& path, const float x, const float y) |
+{ |
GraphicsContext* c = drawingContext(); |
if (!c) |
return false; |
@@ -1039,7 +1064,7 @@ bool CanvasRenderingContext2D::isPointInStroke(const float x, const float y) |
strokeData.setLineJoin(getLineJoin()); |
strokeData.setMiterLimit(miterLimit()); |
strokeData.setLineDash(getLineDash(), lineDashOffset()); |
- return m_path.strokeContains(transformedPoint, strokeData); |
+ return path.strokeContains(transformedPoint, strokeData); |
} |
void CanvasRenderingContext2D::clearRect(float x, float y, float width, float height) |