Lines Matching defs:mask
182 static bool prepare_to_draw_into_mask(const SkRect& bounds, SkMask* mask) {
183 SkASSERT(mask != nullptr);
185 mask->fBounds = bounds.roundOut();
186 mask->fRowBytes = SkAlign4(mask->fBounds.width());
187 mask->fFormat = SkMask::kA8_Format;
188 const size_t size = mask->computeImageSize();
189 mask->fImage = SkMask::AllocImage(size, SkMask::kZeroInit_Alloc);
190 if (nullptr == mask->fImage) {
196 static bool draw_rrect_into_mask(const SkRRect rrect, SkMask* mask) {
197 if (!prepare_to_draw_into_mask(rrect.rect(), mask)) {
204 bitmap.installMaskPixels(*mask);
207 canvas.translate(-SkIntToScalar(mask->fBounds.left()),
208 -SkIntToScalar(mask->fBounds.top()));
216 static bool draw_rects_into_mask(const SkRect rects[], int count, SkMask* mask) {
217 if (!prepare_to_draw_into_mask(rects[0], mask)) {
222 bitmap.installPixels(SkImageInfo::Make(mask->fBounds.width(),
223 mask->fBounds.height(),
226 mask->fImage, mask->fRowBytes);
229 canvas.translate(-SkIntToScalar(mask->fBounds.left()),
230 -SkIntToScalar(mask->fBounds.top()));
255 static SkCachedData* copy_mask_to_cacheddata(SkMask* mask) {
256 const size_t size = mask->computeTotalImageSize();
259 memcpy(data->writable_data(), mask->fImage, size);
260 SkMask::FreeImage(mask->fImage);
261 mask->fImage = (uint8_t*)data->data();
266 static SkCachedData* find_cached_rrect(SkMask* mask, SkScalar sigma, SkBlurStyle style,
268 return SkMaskCache::FindAndRef(sigma, style, rrect, mask);
271 static SkCachedData* add_cached_rrect(SkMask* mask, SkScalar sigma, SkBlurStyle style,
273 SkCachedData* cache = copy_mask_to_cacheddata(mask);
275 SkMaskCache::Add(sigma, style, rrect, *mask, cache);
280 static SkCachedData* find_cached_rects(SkMask* mask, SkScalar sigma, SkBlurStyle style,
282 return SkMaskCache::FindAndRef(sigma, style, rects, count, mask);
285 static SkCachedData* add_cached_rects(SkMask* mask, SkScalar sigma, SkBlurStyle style,
287 SkCachedData* cache = copy_mask_to_cacheddata(mask);
289 SkMaskCache::Add(sigma, style, rects, count, *mask, cache);
1083 // We cache blur masks. Use default surface props here so we can use the same cached mask
1188 // Create a cpu-side blurred-rrect mask that is close to the version the gpu would've produced.
1632 // 'maskRect' isn't snapped to the UL corner but the mask in 'src' is.