Index: src/core/SkAlphaRuns.cpp |
diff --git a/src/core/SkAlphaRuns.cpp b/src/core/SkAlphaRuns.cpp |
index 1b0415814f6fbc156a07986bb01545fbc7842485..37b1a5705ce126f63ed14eab55395b08ca092ec2 100644 |
--- a/src/core/SkAlphaRuns.cpp |
+++ b/src/core/SkAlphaRuns.cpp |
@@ -24,111 +24,6 @@ void SkAlphaRuns::reset(int width) { |
SkDEBUGCODE(this->validate();) |
} |
-void SkAlphaRuns::Break(int16_t runs[], uint8_t alpha[], int x, int count) { |
- SkASSERT(count > 0 && x >= 0); |
- |
-// SkAlphaRuns::BreakAt(runs, alpha, x); |
-// SkAlphaRuns::BreakAt(&runs[x], &alpha[x], count); |
- |
- int16_t* next_runs = runs + x; |
- uint8_t* next_alpha = alpha + x; |
- |
- while (x > 0) { |
- int n = runs[0]; |
- SkASSERT(n > 0); |
- |
- if (x < n) { |
- alpha[x] = alpha[0]; |
- runs[0] = SkToS16(x); |
- runs[x] = SkToS16(n - x); |
- break; |
- } |
- runs += n; |
- alpha += n; |
- x -= n; |
- } |
- |
- runs = next_runs; |
- alpha = next_alpha; |
- x = count; |
- |
- for (;;) { |
- int n = runs[0]; |
- SkASSERT(n > 0); |
- |
- if (x < n) { |
- alpha[x] = alpha[0]; |
- runs[0] = SkToS16(x); |
- runs[x] = SkToS16(n - x); |
- break; |
- } |
- x -= n; |
- if (x <= 0) { |
- break; |
- } |
- runs += n; |
- alpha += n; |
- } |
-} |
- |
-int SkAlphaRuns::add(int x, U8CPU startAlpha, int middleCount, U8CPU stopAlpha, |
- U8CPU maxValue, int offsetX) { |
- SkASSERT(middleCount >= 0); |
- SkASSERT(x >= 0 && x + (startAlpha != 0) + middleCount + (stopAlpha != 0) <= fWidth); |
- |
- SkASSERT(fRuns[offsetX] >= 0); |
- |
- int16_t* runs = fRuns + offsetX; |
- uint8_t* alpha = fAlpha + offsetX; |
- uint8_t* lastAlpha = alpha; |
- x -= offsetX; |
- |
- if (startAlpha) { |
- SkAlphaRuns::Break(runs, alpha, x, 1); |
- /* I should be able to just add alpha[x] + startAlpha. |
- However, if the trailing edge of the previous span and the leading |
- edge of the current span round to the same super-sampled x value, |
- I might overflow to 256 with this add, hence the funny subtract (crud). |
- */ |
- unsigned tmp = alpha[x] + startAlpha; |
- SkASSERT(tmp <= 256); |
- alpha[x] = SkToU8(tmp - (tmp >> 8)); // was (tmp >> 7), but that seems wrong if we're trying to catch 256 |
- |
- runs += x + 1; |
- alpha += x + 1; |
- x = 0; |
- lastAlpha += x; // we don't want the +1 |
- SkDEBUGCODE(this->validate();) |
- } |
- |
- if (middleCount) { |
- SkAlphaRuns::Break(runs, alpha, x, middleCount); |
- alpha += x; |
- runs += x; |
- x = 0; |
- do { |
- alpha[0] = SkToU8(alpha[0] + maxValue); |
- int n = runs[0]; |
- SkASSERT(n <= middleCount); |
- alpha += n; |
- runs += n; |
- middleCount -= n; |
- } while (middleCount > 0); |
- SkDEBUGCODE(this->validate();) |
- lastAlpha = alpha; |
- } |
- |
- if (stopAlpha) { |
- SkAlphaRuns::Break(runs, alpha, x, 1); |
- alpha += x; |
- alpha[0] = SkToU8(alpha[0] + stopAlpha); |
- SkDEBUGCODE(this->validate();) |
- lastAlpha = alpha; |
- } |
- |
- return SkToS32(lastAlpha - fAlpha); // new offsetX |
-} |
- |
#ifdef SK_DEBUG |
void SkAlphaRuns::assertValid(int y, int maxStep) const { |
int max = (y + 1) * maxStep - (y == maxStep - 1); |