Fix a case missed in r3198 where left/right direction of setOrthog matters (matrix computed from a degenerate quad).
git-svn-id: http://skia.googlecode.com/svn/trunk@3200 2bbb7eff-a529-9590-31e7-b0007b416f81
This commit is contained in:
parent
60abb078e5
commit
20e542e00e
@ -254,8 +254,11 @@ void GrPathUtils::quadDesignSpaceToUVCoordsMatrix(const SkPoint qPts[3],
|
|||||||
// We could have a tolerance here, not sure if it would improve anything
|
// We could have a tolerance here, not sure if it would improve anything
|
||||||
if (maxD > 0) {
|
if (maxD > 0) {
|
||||||
// Set the matrix to give (u = 0, v = distance_to_line)
|
// Set the matrix to give (u = 0, v = distance_to_line)
|
||||||
GrVec lineVec = qPts[maxEdge] - qPts[(maxEdge + 1)%3];
|
GrVec lineVec = qPts[(maxEdge + 1)%3] - qPts[maxEdge];
|
||||||
lineVec.setOrthog(lineVec);
|
// when looking from the point 0 down the line we want positive
|
||||||
|
// distances to be to the left. This matches the non-degenerate
|
||||||
|
// case.
|
||||||
|
lineVec.setOrthog(lineVec, GrPoint::kLeft_Side);
|
||||||
lineVec.dot(qPts[0]);
|
lineVec.dot(qPts[0]);
|
||||||
matrix->setAll(0, 0, 0,
|
matrix->setAll(0, 0, 0,
|
||||||
lineVec.fX, lineVec.fY, -lineVec.dot(qPts[maxEdge]),
|
lineVec.fX, lineVec.fY, -lineVec.dot(qPts[maxEdge]),
|
||||||
|
Loading…
Reference in New Issue
Block a user