40static void rect_memcpy(
void* dst,
size_t dstRB,
const void* src,
size_t srcRB,
41 size_t copyBytes,
int rows) {
42 for (
int i = 0; i < rows; ++i) {
43 memcpy(dst, src, copyBytes);
44 dst = (
char*)dst + dstRB;
45 src = (
const char*)src + srcRB;
58 dst->bounds() = src.fBounds;
59 dst->rowBytes() = src.fBounds.width();
62 if (src.fImage ==
nullptr) {
63 dst->image() =
nullptr;
66 size_t size = dst->computeImageSize();
73 rect_memcpy(dst->image(), dst->fRowBytes, src.fImage, src.fRowBytes,
74 src.fBounds.width() *
sizeof(uint8_t), src.fBounds.height());
78 if (!
bitmap.installMaskPixels(*dst)) {
83 paint.setShader(fShader);
98void SkShaderMaskFilter::RegisterFlattenables() {
static bool rect_memcpy(const SkImageInfo &dstInfo, void *dstPixels, size_t dstRB, const SkImageInfo &srcInfo, const void *srcPixels, size_t srcRB, const SkColorSpaceXformSteps &steps)
#define SK_REGISTER_FLATTENABLE(type)
static void rect_memcpy(void *dst, size_t dstRB, const void *src, size_t srcRB, size_t copyBytes, int rows)
void translate(SkScalar dx, SkScalar dy)
void drawPaint(const SkPaint &paint)
void concat(const SkMatrix &matrix)
static void Register(const char name[], Factory)
bool filterMask(SkMaskBuilder *dst, const SkMask &src, const SkMatrix &, SkIPoint *margin) const override
void flatten(SkWriteBuffer &) const override
static sk_sp< SkMaskFilter > Make(sk_sp< SkShader > shader)
static const uint8_t buffer[]
void set(int32_t x, int32_t y)
static uint8_t * AllocImage(size_t bytes, AllocType=kUninit_Alloc)
@ kA8_Format
8bits per pixel mask (e.g. antialiasing)