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

Unified Diff: src/core/SkGeometry.cpp

Issue 18258005: Add implicit hairline conic rendering to GPU (Closed) Base URL: https://skia.googlecode.com/svn/trunk
Patch Set: Created 7 years, 5 months 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: src/core/SkGeometry.cpp
diff --git a/src/core/SkGeometry.cpp b/src/core/SkGeometry.cpp
index a12f961948c77b6695ce2e250fa66d94e3eef96c..e6049f9f7bd993804d1fc7e8948b936cb02fad6f 100644
--- a/src/core/SkGeometry.cpp
+++ b/src/core/SkGeometry.cpp
@@ -382,20 +382,8 @@ int SkChopQuadAtXExtrema(const SkPoint src[3], SkPoint dst[5])
return 0;
}
-// F(t) = a (1 - t) ^ 2 + 2 b t (1 - t) + c t ^ 2
-// F'(t) = 2 (b - a) + 2 (a - 2b + c) t
-// F''(t) = 2 (a - 2b + c)
-//
-// A = 2 (b - a)
-// B = 2 (a - 2b + c)
-//
-// Maximum curvature for a quadratic means solving
-// Fx' Fx'' + Fy' Fy'' = 0
-//
-// t = - (Ax Bx + Ay By) / (Bx ^ 2 + By ^ 2)
-//
-int SkChopQuadAtMaxCurvature(const SkPoint src[3], SkPoint dst[5])
-{
+float SkGetTQuadAtMaxCurvature(const SkPoint src[3]) {
+
SkScalar Ax = src[1].fX - src[0].fX;
SkScalar Ay = src[1].fY - src[0].fY;
SkScalar Bx = src[0].fX - src[1].fX - src[1].fX + src[2].fX;
@@ -427,7 +415,24 @@ int SkChopQuadAtMaxCurvature(const SkPoint src[3], SkPoint dst[5])
}
}
#endif
+ return t;
+}
+// F(t) = a (1 - t) ^ 2 + 2 b t (1 - t) + c t ^ 2
bsalomon 2013/07/10 15:14:36 Maybe these comments belong with the new function
+// F'(t) = 2 (b - a) + 2 (a - 2b + c) t
+// F''(t) = 2 (a - 2b + c)
+//
+// A = 2 (b - a)
+// B = 2 (a - 2b + c)
+//
+// Maximum curvature for a quadratic means solving
+// Fx' Fx'' + Fy' Fy'' = 0
+//
+// t = - (Ax Bx + Ay By) / (Bx ^ 2 + By ^ 2)
+//
+int SkChopQuadAtMaxCurvature(const SkPoint src[3], SkPoint dst[5])
+{
+ SkScalar t = SkGetTQuadAtMaxCurvature(src);
if (t == 0)
{
memcpy(dst, src, 3 * sizeof(SkPoint));

Powered by Google App Engine
This is Rietveld 408576698