Index: src/core/SkBitmapScaler.cpp |
diff --git a/src/core/SkBitmapScaler.cpp b/src/core/SkBitmapScaler.cpp |
index dc04691c79b6bcef1ae7d8deb909966823bc7db9..c69ac2a950b7ca736b834a8330c8bb2e2131cbfb 100644 |
--- a/src/core/SkBitmapScaler.cpp |
+++ b/src/core/SkBitmapScaler.cpp |
@@ -144,42 +144,20 @@ void SkResizeFilter::computeFilters(int srcSize, |
// downscale should "cover" the pixels around the pixel with *its center* |
// at coordinates (2.5, 2.5) in the source, not those around (0, 0). |
// Hence we need to scale coordinates (0.5, 0.5), not (0, 0). |
-#ifdef SK_SUPPORT_LEGACY_BITMAP_FILTER |
- int destLimit = SkScalarTruncToInt(SkScalarCeilToScalar(destSubsetHi) |
- - SkScalarFloorToScalar(destSubsetLo)); |
-#else |
destSubsetLo = SkScalarFloorToScalar(destSubsetLo); |
destSubsetHi = SkScalarCeilToScalar(destSubsetHi); |
float srcPixel = (destSubsetLo + 0.5f) * invScale; |
int destLimit = SkScalarTruncToInt(destSubsetHi - destSubsetLo); |
-#endif |
output->reserveAdditional(destLimit, SkScalarCeilToInt(destLimit * srcSupport * 2)); |
-#ifdef SK_SUPPORT_LEGACY_BITMAP_FILTER |
- for (int destSubsetI = SkScalarFloorToInt(destSubsetLo); destSubsetI < SkScalarCeilToInt(destSubsetHi); |
- destSubsetI++) |
-#else |
for (int destI = 0; destI < destLimit; srcPixel += invScale, destI++) |
-#endif |
{ |
// Compute the (inclusive) range of source pixels the filter covers. |
-#ifdef SK_SUPPORT_LEGACY_BITMAP_FILTER |
- float srcPixel = (static_cast<float>(destSubsetI) + 0.5f) * invScale; |
- int srcBegin = SkTMax(0, SkScalarFloorToInt(srcPixel - srcSupport)); |
- int srcEnd = SkTMin(srcSize - 1, SkScalarCeilToInt(srcPixel + srcSupport)); |
-#else |
float srcBegin = SkTMax(0.f, SkScalarFloorToScalar(srcPixel - srcSupport)); |
float srcEnd = SkTMin(srcSize - 1.f, SkScalarCeilToScalar(srcPixel + srcSupport)); |
-#endif |
// Compute the unnormalized filter value at each location of the source |
// it covers. |
-#ifdef SK_SUPPORT_LEGACY_BITMAP_FILTER |
- float filterSum = 0.0f; // Sub of the filter values for normalizing. |
- int filterCount = srcEnd - srcBegin + 1; |
- filterValuesArray.reset(filterCount); |
- for (int curFilterPixel = srcBegin; curFilterPixel <= srcEnd; |
- curFilterPixel++) { |
-#endif |
+ |
// Sum of the filter values for normalizing. |
// Distance from the center of the filter, this is the filter coordinate |
// in source space. We also need to consider the center of the pixel |
@@ -187,42 +165,22 @@ void SkResizeFilter::computeFilters(int srcSize, |
// example used above the distance from the center of the filter to |
// the pixel with coordinates (2, 2) should be 0, because its center |
// is at (2.5, 2.5). |
-#ifdef SK_SUPPORT_LEGACY_BITMAP_FILTER |
- float srcFilterDist = |
- ((static_cast<float>(curFilterPixel) + 0.5f) - srcPixel); |
- |
- // Since the filter really exists in dest space, map it there. |
- float destFilterDist = srcFilterDist * clampedScale; |
- |
- // Compute the filter value at that location. |
- float filterValue = fBitmapFilter->evaluate(destFilterDist); |
- filterValuesArray[curFilterPixel - srcBegin] = filterValue; |
- |
- filterSum += filterValue; |
- } |
-#else |
float destFilterDist = (srcBegin + 0.5f - srcPixel) * clampedScale; |
int filterCount = SkScalarTruncToInt(srcEnd - srcBegin) + 1; |
SkASSERT(filterCount > 0); |
filterValuesArray.reset(filterCount); |
float filterSum = fBitmapFilter->evaluate_n(destFilterDist, clampedScale, filterCount, |
filterValuesArray.begin()); |
-#endif |
+ |
// The filter must be normalized so that we don't affect the brightness of |
// the image. Convert to normalized fixed point. |
int fixedSum = 0; |
fixedFilterValuesArray.reset(filterCount); |
const float* filterValues = filterValuesArray.begin(); |
SkConvolutionFilter1D::ConvolutionFixed* fixedFilterValues = fixedFilterValuesArray.begin(); |
-#ifndef SK_SUPPORT_LEGACY_BITMAP_FILTER |
float invFilterSum = 1 / filterSum; |
-#endif |
for (int fixedI = 0; fixedI < filterCount; fixedI++) { |
-#ifdef SK_SUPPORT_LEGACY_BITMAP_FILTER |
- int curFixed = SkConvolutionFilter1D::FloatToFixed(filterValues[fixedI] / filterSum); |
-#else |
int curFixed = SkConvolutionFilter1D::FloatToFixed(filterValues[fixedI] * invFilterSum); |
-#endif |
fixedSum += curFixed; |
fixedFilterValues[fixedI] = SkToS16(curFixed); |
} |
@@ -237,11 +195,7 @@ void SkResizeFilter::computeFilters(int srcSize, |
fixedFilterValues[filterCount / 2] += leftovers; |
// Now it's ready to go. |
-#ifdef SK_SUPPORT_LEGACY_BITMAP_FILTER |
- output->AddFilter(srcBegin, fixedFilterValues, filterCount); |
-#else |
output->AddFilter(SkScalarFloorToInt(srcBegin), fixedFilterValues, filterCount); |
-#endif |
} |
if (convolveProcs.fApplySIMDPadding) { |