Index: src/pathops/SkPathOpsBounds.cpp |
diff --git a/src/pathops/SkPathOpsBounds.cpp b/src/pathops/SkPathOpsBounds.cpp |
index e5b26eec2528a9f3795b312c5021ef1c9b5d5d3c..ea13e2ed2cd12901b45c9ace159ddd2e83847202 100644 |
--- a/src/pathops/SkPathOpsBounds.cpp |
+++ b/src/pathops/SkPathOpsBounds.cpp |
@@ -5,11 +5,21 @@ |
* found in the LICENSE file. |
*/ |
#include "SkPathOpsBounds.h" |
+#include "SkPathOpsConic.h" |
#include "SkPathOpsCubic.h" |
#include "SkPathOpsLine.h" |
#include "SkPathOpsQuad.h" |
-void SkPathOpsBounds::setCubicBounds(const SkPoint a[4]) { |
+void SkPathOpsBounds::setConicBounds(const SkPoint a[3], SkScalar weight) { |
+ SkDConic conic; |
+ conic.set(a, weight); |
+ SkDRect dRect; |
+ dRect.setBounds(conic); |
+ set(SkDoubleToScalar(dRect.fLeft), SkDoubleToScalar(dRect.fTop), |
+ SkDoubleToScalar(dRect.fRight), SkDoubleToScalar(dRect.fBottom)); |
+} |
+ |
+void SkPathOpsBounds::setCubicBounds(const SkPoint a[4], SkScalar ) { |
SkDCubic cubic; |
cubic.set(a); |
SkDRect dRect; |
@@ -18,12 +28,12 @@ void SkPathOpsBounds::setCubicBounds(const SkPoint a[4]) { |
SkDoubleToScalar(dRect.fRight), SkDoubleToScalar(dRect.fBottom)); |
} |
-void SkPathOpsBounds::setLineBounds(const SkPoint a[2]) { |
+void SkPathOpsBounds::setLineBounds(const SkPoint a[2], SkScalar ) { |
setPointBounds(a[0]); |
add(a[1]); |
} |
-void SkPathOpsBounds::setQuadBounds(const SkPoint a[3]) { |
+void SkPathOpsBounds::setQuadBounds(const SkPoint a[3], SkScalar ) { |
SkDQuad quad; |
quad.set(a); |
SkDRect dRect; |
@@ -32,9 +42,10 @@ void SkPathOpsBounds::setQuadBounds(const SkPoint a[3]) { |
SkDoubleToScalar(dRect.fRight), SkDoubleToScalar(dRect.fBottom)); |
} |
-void (SkPathOpsBounds::* const SetCurveBounds[])(const SkPoint[]) = { |
+void (SkPathOpsBounds::* const SetCurveBounds[])(const SkPoint[], SkScalar weight) = { |
NULL, |
&SkPathOpsBounds::setLineBounds, |
&SkPathOpsBounds::setQuadBounds, |
+ &SkPathOpsBounds::setConicBounds, |
&SkPathOpsBounds::setCubicBounds |
}; |