| OLD | NEW |
| 1 #include "SkBitmapScaler.h" | 1 #include "SkBitmapScaler.h" |
| 2 #include "SkBitmapFilter.h" | 2 #include "SkBitmapFilter.h" |
| 3 #include "SkRect.h" | 3 #include "SkRect.h" |
| 4 #include "SkTArray.h" | 4 #include "SkTArray.h" |
| 5 #include "SkErrorInternals.h" | 5 #include "SkErrorInternals.h" |
| 6 #include "SkConvolver.h" | 6 #include "SkConvolver.h" |
| 7 | 7 |
| 8 // SkResizeFilter --------------------------------------------------------------
-- | 8 // SkResizeFilter --------------------------------------------------------------
-- |
| 9 | 9 |
| 10 // Encapsulates computation and storage of the filters required for one complete | 10 // Encapsulates computation and storage of the filters required for one complete |
| (...skipping 278 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 289 destWidth, destHeight, destSubset, convolveProcs); | 289 destWidth, destHeight, destSubset, convolveProcs); |
| 290 | 290 |
| 291 // Get a source bitmap encompassing this touched area. We construct the | 291 // Get a source bitmap encompassing this touched area. We construct the |
| 292 // offsets and row strides such that it looks like a new bitmap, while | 292 // offsets and row strides such that it looks like a new bitmap, while |
| 293 // referring to the old data. | 293 // referring to the old data. |
| 294 const unsigned char* sourceSubset = | 294 const unsigned char* sourceSubset = |
| 295 reinterpret_cast<const unsigned char*>(source.getPixels()); | 295 reinterpret_cast<const unsigned char*>(source.getPixels()); |
| 296 | 296 |
| 297 // Convolve into the result. | 297 // Convolve into the result. |
| 298 SkBitmap result; | 298 SkBitmap result; |
| 299 result.setInfo(SkImageInfo::MakeN32(SkScalarCeilToInt(destSubset.width()), | 299 result.setConfig(SkImageInfo::MakeN32(SkScalarCeilToInt(destSubset.width()), |
| 300 SkScalarCeilToInt(destSubset.height()), | 300 SkScalarCeilToInt(destSubset.height())
, |
| 301 source.alphaType())); | 301 source.alphaType())); |
| 302 result.allocPixels(allocator, NULL); | 302 result.allocPixels(allocator, NULL); |
| 303 if (!result.readyToDraw()) { | 303 if (!result.readyToDraw()) { |
| 304 return false; | 304 return false; |
| 305 } | 305 } |
| 306 | 306 |
| 307 BGRAConvolve2D(sourceSubset, static_cast<int>(source.rowBytes()), | 307 BGRAConvolve2D(sourceSubset, static_cast<int>(source.rowBytes()), |
| 308 !source.isOpaque(), filter.xFilter(), filter.yFilter(), | 308 !source.isOpaque(), filter.xFilter(), filter.yFilter(), |
| 309 static_cast<int>(result.rowBytes()), | 309 static_cast<int>(result.rowBytes()), |
| 310 static_cast<unsigned char*>(result.getPixels()), | 310 static_cast<unsigned char*>(result.getPixels()), |
| 311 convolveProcs, true); | 311 convolveProcs, true); |
| 312 | 312 |
| 313 *resultPtr = result; | 313 *resultPtr = result; |
| 314 resultPtr->lockPixels(); | 314 resultPtr->lockPixels(); |
| 315 SkASSERT(NULL != resultPtr->getPixels()); | 315 SkASSERT(NULL != resultPtr->getPixels()); |
| 316 return true; | 316 return true; |
| 317 } | 317 } |
| OLD | NEW |