| Index: src/core/SkConfig8888.h
 | 
| diff --git a/src/core/SkConfig8888.h b/src/core/SkConfig8888.h
 | 
| index 041773e6df433c22297bb2dd82d9d625b02c862a..97a3433ad24281f289d50c3b00c708a8066c9cf7 100644
 | 
| --- a/src/core/SkConfig8888.h
 | 
| +++ b/src/core/SkConfig8888.h
 | 
| @@ -5,75 +5,27 @@
 | 
|   * found in the LICENSE file.
 | 
|   */
 | 
|  
 | 
| -#ifndef SkConfig8888_DEFINED
 | 
| -#define SkConfig8888_DEFINED
 | 
| +#ifndef SkPixelInfo_DEFINED
 | 
| +#define SkPixelInfo_DEFINED
 | 
|  
 | 
| -#include "SkCanvas.h"
 | 
| -#include "SkColorPriv.h"
 | 
| +#include "SkImageInfo.h"
 | 
|  
 | 
| -/**
 | 
| - * Converts pixels from one Config8888 to another Config8888
 | 
| - */
 | 
| -void SkConvertConfig8888Pixels(uint32_t* dstPixels,
 | 
| -                               size_t dstRowBytes,
 | 
| -                               SkCanvas::Config8888 dstConfig,
 | 
| -                               const uint32_t* srcPixels,
 | 
| -                               size_t srcRowBytes,
 | 
| -                               SkCanvas::Config8888 srcConfig,
 | 
| -                               int width,
 | 
| -                               int height);
 | 
| -
 | 
| -/**
 | 
| - * Packs a, r, g, b, values into byte order specified by config.
 | 
| - */
 | 
| -uint32_t SkPackConfig8888(SkCanvas::Config8888 config,
 | 
| -                          uint32_t a,
 | 
| -                          uint32_t r,
 | 
| -                          uint32_t g,
 | 
| -                          uint32_t b);
 | 
| -
 | 
| -///////////////////////////////////////////////////////////////////////////////
 | 
| -// Implementation
 | 
| -
 | 
| -namespace {
 | 
| +struct SkPixelInfo {
 | 
| +    SkColorType fColorType;
 | 
| +    SkAlphaType fAlphaType;
 | 
| +    size_t      fRowBytes;
 | 
| +};
 | 
|  
 | 
| -/**
 | 
| -  Copies all pixels from a bitmap to a dst ptr with a given rowBytes and
 | 
| -  Config8888. The bitmap must have kARGB_8888_Config.
 | 
| - */
 | 
| -
 | 
| -static inline void SkCopyBitmapToConfig8888(uint32_t* dstPixels,
 | 
| -                                     size_t dstRowBytes,
 | 
| -                                     SkCanvas::Config8888 dstConfig8888,
 | 
| -                                     const SkBitmap& srcBmp) {
 | 
| -    SkASSERT(SkBitmap::kARGB_8888_Config == srcBmp.config());
 | 
| -    SkAutoLockPixels alp(srcBmp);
 | 
| -    int w = srcBmp.width();
 | 
| -    int h = srcBmp.height();
 | 
| -    size_t srcRowBytes = srcBmp.rowBytes();
 | 
| -    const uint32_t* srcPixels = reinterpret_cast<uint32_t*>(srcBmp.getPixels());
 | 
| -
 | 
| -    SkConvertConfig8888Pixels(dstPixels, dstRowBytes, dstConfig8888, srcPixels, srcRowBytes, SkCanvas::kNative_Premul_Config8888, w, h);
 | 
| -}
 | 
| -
 | 
| -/**
 | 
| -  Copies over all pixels in a bitmap from a src ptr with a given rowBytes and
 | 
| -  Config8888. The bitmap must have pixels and be kARGB_8888_Config.
 | 
| - */
 | 
| -static inline void SkCopyConfig8888ToBitmap(const SkBitmap& dstBmp,
 | 
| -                                     const uint32_t* srcPixels,
 | 
| -                                     size_t srcRowBytes,
 | 
| -                                     SkCanvas::Config8888 srcConfig8888) {
 | 
| -    SkASSERT(SkBitmap::kARGB_8888_Config == dstBmp.config());
 | 
| -    SkAutoLockPixels alp(dstBmp);
 | 
| -    int w = dstBmp.width();
 | 
| -    int h = dstBmp.height();
 | 
| -    size_t dstRowBytes = dstBmp.rowBytes();
 | 
| -    uint32_t* dstPixels = reinterpret_cast<uint32_t*>(dstBmp.getPixels());
 | 
| +struct SkDstPixelInfo : SkPixelInfo {
 | 
| +    void* fPixels;
 | 
| +};
 | 
|  
 | 
| -    SkConvertConfig8888Pixels(dstPixels, dstRowBytes, SkCanvas::kNative_Premul_Config8888, srcPixels, srcRowBytes, srcConfig8888, w, h);
 | 
| -}
 | 
| +struct SkSrcPixelInfo : SkPixelInfo {
 | 
| +    const void* fPixels;
 | 
|  
 | 
| -}
 | 
| +    // Guaranteed to work even if src.fPixels and dst.fPixels are the same
 | 
| +    // (but not if they overlap partially)
 | 
| +    bool convertPixelsTo(SkDstPixelInfo* dst, int width, int height) const;
 | 
| +};
 | 
|  
 | 
|  #endif
 | 
| 
 |