Home | History | Annotate | Download | only in core

Lines Matching refs:SkFixed

131     virtual void flush_if_y_changed(SkFixed y, SkFixed nextY) = 0;
163 void flush_if_y_changed(SkFixed y, SkFixed nextY) override {}
291 void flush_if_y_changed(SkFixed y, SkFixed nextY) override {
546 static inline SkAlpha trapezoidToAlpha(SkFixed l1, SkFixed l2) {
552 static inline SkFixed partialTriangleToAlpha16(SkFixed a, SkFixed b) {
560 static inline SkAlpha partialTriangleToAlpha(SkFixed a, SkFixed b) {
564 static inline SkAlpha getPartialAlpha(SkAlpha alpha, SkFixed partialHeight) {
572 // For SkFixed that's close to SK_Fixed1, we can't convert it to alpha by just shifting right.
575 static inline SkAlpha f2a(SkFixed f) {
582 static inline SkFixed approximateIntersection(SkFixed l1, SkFixed r1, SkFixed l2, SkFixed r2) {
589 static inline void computeAlphaAboveLine(SkAlpha* alphas, SkFixed l, SkFixed r,
590 SkFixed dY, SkAlpha fullAlpha) {
599 SkFixed first = SK_Fixed1 - l; // horizontal edge length of the left-most triangle
600 SkFixed last = r - ((R - 1) << 16); // horizontal edge length of the right-most triangle
601 SkFixed firstH = SkFixedMul(first, dY); // vertical edge of the left-most triangle
603 SkFixed alpha16 = firstH + (dY >> 1); // rectangle plus triangle
614 SkAlpha* alphas, SkFixed l, SkFixed r, SkFixed dY, SkAlpha fullAlpha) {
623 SkFixed first = SK_Fixed1 - l; // horizontal edge length of the left-most triangle
624 SkFixed last = r - ((R - 1) << 16); // horizontal edge length of the right-most triangle
625 SkFixed lastH = SkFixedMul(last, dY); // vertical edge of the right-most triangle
627 SkFixed alpha16 = lastH + (dY >> 1); // rectangle plus triangle
700 SkFixed ul, SkFixed ur, SkFixed ll, SkFixed lr,
701 SkFixed lDY, SkFixed rDY, SkAlpha fullAlpha, SkAlpha* maskRow,
739 SkFixed first = SkIntToFixed(uL) + SK_Fixed1 - ul;
740 SkFixed second = ll - ul - first;
760 SkFixed first = SkIntToFixed(uR) + SK_Fixed1 - ur;
761 SkFixed second = lr - ur - first;
801 SkFixed ul, SkFixed ur, SkFixed ll, SkFixed lr,
802 SkFixed lDY, SkFixed rDY, SkAlpha fullAlpha,
835 SkFixed joinLeft = SkFixedCeilToFixed(ll);
836 SkFixed joinRite = SkFixedFloorToFixed(ur);
845 SkFixed first = joinLeft - SK_Fixed1 - ul;
846 SkFixed second = ll - ul - first;
871 SkFixed first = joinRite + SK_Fixed1 - ur;
872 SkFixed second = lr - ur - first;
923 SkFixed y = SkIntToFixed(-32768);
938 static bool update_edge(SkAnalyticEdge* edge, SkFixed last_y) {
1003 AdditiveBlitter* blitter, int start_y, int stop_y, SkFixed leftBound, SkFixed riteBound,
1011 SkFixed y = SkTMax(leftE->fUpperY, riteE->fUpperY);
1059 SkFixed local_bot_fixed = SkMin32(leftE->fLowerY, riteE->fLowerY);
1065 SkFixed left = SkTMax(leftBound, leftE->fX);
1066 SkFixed dLeft = leftE->fDX;
1067 SkFixed rite = SkTMin(riteBound, riteE->fX);
1068 SkFixed dRite = riteE->fDX;
1072 SkFixed partialLeft = SkIntToFixed(fullLeft) - left;
1073 SkFixed partialRite = rite - SkIntToFixed(fullRite);
1076 SkFixed partialTop = SkIntToFixed(fullTop) - y;
1077 SkFixed partialBot = local_bot_fixed - SkIntToFixed(fullBot);
1140 const SkFixed kSnapDigit = SK_Fixed1 >> 4;
1141 const SkFixed kSnapHalf = kSnapDigit >> 1;
1142 const SkFixed kSnapMask = (-1 ^ (kSnapDigit - 1));
1169 SkFixed nextY = SkFixedCeilToFixed(y + 1);
1170 SkFixed dY = nextY - y;
1171 SkFixed nextLeft = left + SkFixedMul(dLeft, dY);
1172 SkFixed nextRite = rite + SkFixedMul(dRite, dY);
1188 SkFixed nextY = y + SK_Fixed1, nextLeft = left + dLeft, nextRite = rite + dRite;
1204 SkFixed dY = local_bot_fixed - y; // partial-row on the bottom
1209 SkFixed nextLeft = SkTMax(left + SkFixedMul(dLeft, dY), leftBound + kSnapHalf);
1210 SkFixed nextRite = SkTMin(rite + SkFixedMul(dRite, dY), riteBound + kSnapHalf);
1235 static inline void updateNextNextY(SkFixed y, SkFixed nextY, SkFixed* nextNextY) {
1239 static inline void checkIntersection(const SkAnalyticEdge* edge, SkFixed nextY, SkFixed* nextNextY)
1246 static void insert_new_edges(SkAnalyticEdge* newEdge, SkFixed y, SkFixed* nextNextY) {
1288 static void validate_edges_for_y(const SkAnalyticEdge* edge, SkFixed y) {
1302 static inline bool edges_too_close(SkAnalyticEdge* prev, SkAnalyticEdge* next, SkFixed lowerY) {
1316 static inline bool edges_too_close(int prevRite, SkFixed ul, SkFixed ll) {
1320 static inline void blit_saved_trapezoid(SkAnalyticEdge* leftE, SkFixed lowerY,
1321 SkFixed lowerLeft, SkFixed lowerRite,
1323 SkFixed leftClip, SkFixed rightClip) {
1346 SkFixed left, SkFixed leftDY, // don't save leftE->fX/fDY as they may have been updated
1347 SkFixed y, SkFixed nextY, bool isIntegralNextY, bool leftEnds, bool riteEnds,
1349 SkFixed leftClip, SkFixed rightClip, int yShift) {
1376 SkFixed leftClip, SkFixed rightClip, bool isUsingMask, bool forceRLE, bool useDeferred,
1380 SkFixed y = SkTMax(prevHead->fNext->fUpperY, SkIntToFixed(start_y));
1381 SkFixed nextNextY = SK_MaxS32;
1413 SkFixed prevX = prevHead->fX;
1414 SkFixed nextY = SkTMin(nextNextY, SkFixedCeilToFixed(y + 1));
1418 SkFixed left = leftClip;
1419 SkFixed leftDY = 0;
1486 SkFixed rite = currE->fX;
1512 SkFixed newX;
1655 SkFixed leftBound = SkIntToFixed(rect.fLeft);
1656 SkFixed rightBound = SkIntToFixed(rect.fRight);