| OLD | NEW |
| (Empty) |
| 1 Index: sgl/SkEdge.cpp | |
| 2 =================================================================== | |
| 3 --- sgl/SkEdge.cpp (revision 42965) | |
| 4 +++ sgl/SkEdge.cpp (working copy) | |
| 5 @@ -17,6 +17,7 @@ | |
| 6 | |
| 7 #include "SkEdge.h" | |
| 8 #include "SkFDot6.h" | |
| 9 +#include <limits> | |
| 10 | |
| 11 /* | |
| 12 In setLine, setQuadratic, setCubic, the first thing we do is to convert | |
| 13 @@ -76,8 +77,23 @@ | |
| 14 | |
| 15 fX = SkFDot6ToFixed(x0 + SkFixedMul(slope, (32 - y0) & 63)); //
+ SK_Fixed1/2 | |
| 16 fDX = slope; | |
| 17 - fFirstY = SkToS16(top); | |
| 18 - fLastY = SkToS16(bot - 1); | |
| 19 + fFirstY = (int16_t)(top); // inlined skToS16() | |
| 20 + if (top != (long)fFirstY) { | |
| 21 + if (fFirstY < top) { | |
| 22 + fFirstY = std::numeric_limits<int16_t>::max(); | |
| 23 + } else { | |
| 24 + fFirstY = std::numeric_limits<int16_t>::min(); | |
| 25 + } | |
| 26 + fX -= fDX * (top - (long)fFirstY); | |
| 27 + } | |
| 28 + fLastY = (int16_t)(bot - 1); // inlined SkToS16() | |
| 29 + if (bot-1 != (long)fLastY) { | |
| 30 + if (fLastY < bot-1) { | |
| 31 + fLastY = std::numeric_limits<int16_t>::max(); | |
| 32 + } else { | |
| 33 + fLastY = std::numeric_limits<int16_t>::min(); | |
| 34 + } | |
| 35 + } | |
| 36 fCurveCount = 0; | |
| 37 fWinding = SkToS8(winding); | |
| 38 fCurveShift = 0; | |
| OLD | NEW |