| Index: src/core/SkSpriteBlitter_RGB16.cpp
|
| diff --git a/src/core/SkSpriteBlitter_RGB16.cpp b/src/core/SkSpriteBlitter_RGB16.cpp
|
| index 3cd8306c9b7137f06106261b0773679c237fd8dc..ce4b2a992374fc1b287468a94e754f58edb06352 100644
|
| --- a/src/core/SkSpriteBlitter_RGB16.cpp
|
| +++ b/src/core/SkSpriteBlitter_RGB16.cpp
|
| @@ -32,12 +32,9 @@ static inline void D16_S32A_Blend_Pixel_helper(uint16_t* dst, SkPMColor sc,
|
| db = SkAlphaBlend(SkPacked32ToB16(sc), SkGetPackedB16(dc), src_scale);
|
| } else {
|
| unsigned dst_scale = 255 - SkAlphaMul(sa, src_scale);
|
| - dr = (SkPacked32ToR16(sc) * src_scale +
|
| - SkGetPackedR16(dc) * dst_scale) >> 8;
|
| - dg = (SkPacked32ToG16(sc) * src_scale +
|
| - SkGetPackedG16(dc) * dst_scale) >> 8;
|
| - db = (SkPacked32ToB16(sc) * src_scale +
|
| - SkGetPackedB16(dc) * dst_scale) >> 8;
|
| + dr = (SkPacked32ToR16(sc) * src_scale + SkGetPackedR16(dc) * dst_scale) >> 8;
|
| + dg = (SkPacked32ToG16(sc) * src_scale + SkGetPackedG16(dc) * dst_scale) >> 8;
|
| + db = (SkPacked32ToB16(sc) * src_scale + SkGetPackedB16(dc) * dst_scale) >> 8;
|
| }
|
| *dst = SkPackRGB16(dr, dg, db);
|
| }
|
| @@ -50,15 +47,14 @@ static inline void D16_S32A_Blend_Pixel_helper(uint16_t* dst, SkPMColor sc,
|
|
|
| class Sprite_D16_S16_Opaque : public SkSpriteBlitter {
|
| public:
|
| - Sprite_D16_S16_Opaque(const SkBitmap& source)
|
| - : SkSpriteBlitter(source) {}
|
| + Sprite_D16_S16_Opaque(const SkPixmap& source) : SkSpriteBlitter(source) {}
|
|
|
| // overrides
|
| void blitRect(int x, int y, int width, int height) override {
|
| uint16_t* SK_RESTRICT dst = fDevice->getAddr16(x, y);
|
| - const uint16_t* SK_RESTRICT src = fSource->addr16(x - fLeft, y - fTop);
|
| + const uint16_t* SK_RESTRICT src = fSource.addr16(x - fLeft, y - fTop);
|
| size_t dstRB = fDevice->rowBytes();
|
| - size_t srcRB = fSource->rowBytes();
|
| + size_t srcRB = fSource.rowBytes();
|
|
|
| while (--height >= 0) {
|
| memcpy(dst, src, width << 1);
|
| @@ -257,35 +253,30 @@ static void blitrow_d16_si8(uint16_t* SK_RESTRICT dst,
|
|
|
| class Sprite_D16_S32_BlitRowProc : public SkSpriteBlitter {
|
| public:
|
| - Sprite_D16_S32_BlitRowProc(const SkBitmap& source)
|
| - : SkSpriteBlitter(source) {}
|
| + Sprite_D16_S32_BlitRowProc(const SkPixmap& source) : SkSpriteBlitter(source) {}
|
|
|
| - bool setup(const SkBitmap& device, int left, int top,
|
| - const SkPaint& paint) override {
|
| - if (!this->INHERITED::setup(device, left, top, paint)) {
|
| - return false;
|
| - }
|
| + void setup(const SkBitmap& device, int left, int top, const SkPaint& paint) override {
|
| + this->INHERITED::setup(device, left, top, paint);
|
|
|
| unsigned flags = 0;
|
|
|
| if (paint.getAlpha() < 0xFF) {
|
| flags |= SkBlitRow::kGlobalAlpha_Flag;
|
| }
|
| - if (!fSource->isOpaque()) {
|
| + if (!fSource.isOpaque()) {
|
| flags |= SkBlitRow::kSrcPixelAlpha_Flag;
|
| }
|
| if (paint.isDither()) {
|
| flags |= SkBlitRow::kDither_Flag;
|
| }
|
| fProc = SkBlitRow::Factory16(flags);
|
| - return true;
|
| }
|
|
|
| void blitRect(int x, int y, int width, int height) override {
|
| uint16_t* SK_RESTRICT dst = fDevice->getAddr16(x, y);
|
| - const SkPMColor* SK_RESTRICT src = fSource->addr32(x - fLeft, y - fTop);
|
| + const SkPMColor* SK_RESTRICT src = fSource.addr32(x - fLeft, y - fTop);
|
| size_t dstRB = fDevice->rowBytes();
|
| - size_t srcRB = fSource->rowBytes();
|
| + size_t srcRB = fSource.rowBytes();
|
| SkBlitRow::Proc16 proc = fProc;
|
| U8CPU alpha = fPaint->getAlpha();
|
|
|
| @@ -305,8 +296,8 @@ private:
|
|
|
| ///////////////////////////////////////////////////////////////////////////////
|
|
|
| -SkSpriteBlitter* SkSpriteBlitter::ChooseD16(const SkBitmap& source, const SkPaint& paint,
|
| - SkTBlitterAllocator* allocator) {
|
| +SkSpriteBlitter* SkSpriteBlitter::ChooseD16(const SkPixmap& source, const SkPaint& paint,
|
| + SkTBlitterAllocator* allocator) {
|
|
|
| SkASSERT(allocator != NULL);
|
|
|
|
|