83 {
87
88
95 }
96
97
104 }
105
106
113 }
114
115
123 }
124
130 if (fillCenter) {
132 }
133
134 const int innerW = innerR.
width();
135 size_t storageSize = (innerW + 1) * (sizeof(int16_t) + sizeof(uint8_t));
137 int16_t* runs = (int16_t*)storage.get();
138 uint8_t* alpha = (uint8_t*)(runs + innerW + 1);
139
141
145 int stopY = startY + r.
height();
147 for (
int y = startY;
y < stopY; ++
y) {
152 }
153 }
154
158 int stopY = startY + r.
height();
160 for (
int y = startY;
y < stopY; ++
y) {
165 }
166 }
167
172 r,
173 0,
176 }
177
182 r,
183 0,
186 }
187}
static SkMask extractMaskSubset(const SkMask &src, SkIRect bounds, int32_t newX, int32_t newY)
static void blitClippedRect(SkBlitter *blitter, const SkIRect &rect, const SkIRect &clipR)
static void blitClippedMask(SkBlitter *blitter, const SkMask &mask, const SkIRect &bounds, const SkIRect &clipR)
virtual void blitAntiH(int x, int y, const SkAlpha antialias[], const int16_t runs[])=0
static float max(float r, float g, float b)
constexpr int32_t bottom() const
constexpr int32_t right() const
void setLTRB(int32_t left, int32_t top, int32_t right, int32_t bottom)
@ kA8_Format
8bits per pixel mask (e.g. antialiasing)
const uint8_t * getAddr8(int x, int y) const