--- src/core/SkRasterPipelineBlitter.cpp.orig +++ src/core/SkRasterPipelineBlitter.cpp @@ -457,15 +457,27 @@ memset(p, c, w); p = SkTAddOffset(p, dst->rowBytes()); } - }; break; + }; +#if defined(SK_CPU_BENDIAN) + blitter->fMemsetColor >>= 56; +#endif + break; case 1: blitter->fMemset2D = [](SkPixmap* dst, int x,int y, int w,int h, uint64_t c) { SkOpts::rect_memset16(dst->writable_addr16(x,y), c, w, dst->rowBytes(), h); - }; break; + }; +#if defined(SK_CPU_BENDIAN) + blitter->fMemsetColor >>= 48; +#endif + break; case 2: blitter->fMemset2D = [](SkPixmap* dst, int x,int y, int w,int h, uint64_t c) { SkOpts::rect_memset32(dst->writable_addr32(x,y), c, w, dst->rowBytes(), h); - }; break; + }; +#if defined(SK_CPU_BENDIAN) + blitter->fMemsetColor >>= 32; +#endif + break; case 3: blitter->fMemset2D = [](SkPixmap* dst, int x,int y, int w,int h, uint64_t c) { SkOpts::rect_memset64(dst->writable_addr64(x,y), c, w, dst->rowBytes(), h);