diff options
author | 2013-03-04 13:56:38 +0000 | |
---|---|---|
committer | 2013-03-04 13:56:38 +0000 | |
commit | c490f801b063a0837501feab3d12b73d71f46312 (patch) | |
tree | ffd4472adf43e7f9536018fdb03f253325baf858 /src/core/SkMatrix.cpp | |
parent | bb963e2585efb9690906b5963fcf516ddfb1d432 (diff) |
Change random number generator for 'tests' to SkMWCRandom. Also removes some
unused headers and fixes a couple of bugs exposed by changing the random
number generator:
First, the function SkMatrix::getMaxStretch() had an error where it was testing
the square of a number against near-zero. This led to it occasionally taking a
cheaper but imprecise path for computing the eigenvalues of the matrix. It's
been replaced with a check against the square of SK_ScalarNearlyZero.
The second case was a failure in ClipStackTest, where it hit the rare case of
a practically empty clip stack (it has a single Union) and we set a tight
bounds. The bounds rect doesn't get set by GrReducedClip::ReduceClipStack() in
this case, so when it clips the reduced stack it's clipping against garbage,
and the resulting regions don't match. The solution is to initialize the
tightBounds rect.
git-svn-id: http://skia.googlecode.com/svn/trunk@7952 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'src/core/SkMatrix.cpp')
-rw-r--r-- | src/core/SkMatrix.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/core/SkMatrix.cpp b/src/core/SkMatrix.cpp index d420dd3b92..d9675f3979 100644 --- a/src/core/SkMatrix.cpp +++ b/src/core/SkMatrix.cpp @@ -1808,7 +1808,7 @@ SkScalar SkMatrix::getMaxStretch() const { SkScalar largerRoot; SkScalar bSqd = SkScalarMul(b,b); // if upper left 2x2 is orthogonal save some math - if (bSqd <= SK_ScalarNearlyZero) { + if (bSqd <= SK_ScalarNearlyZero*SK_ScalarNearlyZero) { largerRoot = SkMaxScalar(a, c); } else { SkScalar aminusc = a - c; |