From 4343654bc4a93812cba168a665deef0de2ebcfdd Mon Sep 17 00:00:00 2001 From: Chris Dalton Date: Thu, 13 Apr 2017 14:26:00 -0600 Subject: Improve accuracy of cubic classification - Updates the logic to reflect the Loop-Blinn paper instead of the GPU gems website. - Removes the threshold for detecting local cusps. The serpentine codepath works for these cusps anyway, so what we really want to know is whether the discriminant is negative. - Makes sure to not scale the inflection function by 1/0. - Shifts the inflection function coefficients in d[] so they match the paper. - Stores the cubic discriminant in d[0]. Bug: skia: Change-Id: I909a522a0fd27c9c8dfbc27d968bc43eeb7a416f Reviewed-on: https://skia-review.googlesource.com/13304 Reviewed-by: Greg Daniel Commit-Queue: Chris Dalton --- bench/CubicKLMBench.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'bench/CubicKLMBench.cpp') diff --git a/bench/CubicKLMBench.cpp b/bench/CubicKLMBench.cpp index 3c8f740bc7..1cdb068c08 100644 --- a/bench/CubicKLMBench.cpp +++ b/bench/CubicKLMBench.cpp @@ -22,12 +22,12 @@ public: fPoints[3].set(x3, y3); fName = "cubic_klm_"; - SkScalar d[3]; + SkScalar d[4]; switch (SkClassifyCubic(fPoints, d)) { - case kSerpentine_SkCubicType: + case SkCubicType::kSerpentine: fName.append("serp"); break; - case kLoop_SkCubicType: + case SkCubicType::kLoop: fName.append("loop"); break; default: -- cgit v1.2.3