Lines Matching defs:mask

407     SkMask mask;
408 mask.fImage = coverage;
409 mask.fBounds = clip;
410 mask.fRowBytes = 2;
411 mask.fFormat = SkMask::kA8_Format;
413 this->blitMask(mask, clip);
420 SkMask mask;
421 mask.fImage = coverage;
422 mask.fBounds = clip;
423 mask.fRowBytes = 1;
424 mask.fFormat = SkMask::kA8_Format;
426 this->blitMask(mask, clip);
432 SkMask mask;
433 mask.fImage = α
434 mask.fBounds = clip;
435 mask.fRowBytes = 0; // so we reuse the 1 "row" for all of height
436 mask.fFormat = SkMask::kA8_Format;
438 this->blitMask(mask, clip);
441 void SkRasterPipelineBlitter::blitMask(const SkMask& mask, const SkIRect& clip) {
442 if (mask.fFormat == SkMask::kBW_Format) {
444 return INHERITED::blitMask(mask, clip);
448 SkASSERT(mask.fFormat == SkMask::kA8_Format
449 || mask.fFormat == SkMask::kLCD16_Format
450 || mask.fFormat == SkMask::k3D_Format);
452 auto extract_mask_plane = [&mask](int plane, SkRasterPipeline_MemoryCtx* ctx) {
454 size_t bpp = mask.fFormat == SkMask::kLCD16_Format ? 2 : 1;
456 // Select the right mask plane. Usually plane == 0 and this is just mask.fImage.
457 auto ptr = (uintptr_t)mask.fImage
458 + plane * mask.computeImageSize();
460 // Update ctx to point "into" this current mask, but lined up with fDstPtr at (0,0).
462 // mask.fRowBytes is a uint32_t, which would break our addressing math on 64-bit builds.
463 size_t rowBytes = mask.fRowBytes;
465 ctx->pixels = (void*)(ptr - mask.fBounds.left() * bpp
466 - mask.fBounds.top() * rowBytes);
470 if (mask.fFormat == SkMask::k3D_Format) {
475 // Lazily build whichever pipeline we need, specialized for each mask format.
476 if (mask.fFormat == SkMask::kA8_Format && !fBlitMaskA8) {
494 if (mask.fFormat == SkMask::kLCD16_Format && !fBlitMaskLCD16) {
513 if (mask.fFormat == SkMask::k3D_Format && !fBlitMask3D) {
536 switch (mask.fFormat) {