85 if (
dst.colorType() !=
src.colorType()) {
88 if (
paint.getMaskFilter() ||
paint.getColorFilter() ||
paint.getImageFilter()) {
91 if (0xFF !=
paint.getAlpha()) {
112 memcpy(
dst,
src, bytesToCopy);
129 , fSrcPtr{nullptr, 0}
130 , fClipShader(
std::move(clipShader))
137 fPaintColor =
paint.getColor4f();
144 p.appendSetRGB(fAlloc, fPaintColor);
160 if (fPaintColor.fA != 1.0f) {
161 p.append(SkRasterPipelineOp::scale_1_float, &fPaintColor.fA);
166 return fBlitter !=
nullptr;
223 switch (
dst.colorType()) {
224 case kN32_SkColorType:
232 if (!blitter && !
paint.getMaskFilter()) {
@ kOpaque_SkAlphaType
pixel is opaque
@ kPremul_SkAlphaType
pixel components are premultiplied by alpha
#define SkDEBUGFAIL(message)
@ kSrcOver
r = s + (1-sa)*d
bool gSkForceRasterPipelineBlitter
SkColorSpace * sk_srgb_singleton()
SkBlitter * SkCreateRasterPipelineBlitter(const SkPixmap &, const SkPaint &, const SkMatrix &ctm, SkArenaAlloc *, sk_sp< SkShader > clipShader, const SkSurfaceProps &props)
static bool SkColorTypeIsAlphaOnly(SkColorType ct)
static SkPath clip(const SkPath &path, const SkHalfPlane &plane)
static bool left(const SkPoint &p0, const SkPoint &p1)
static bool apply(Pass *pass, SkRecord *record)
static uint32_t premul(uint32_t color)
auto make(Ctor &&ctor) -> decltype(ctor(nullptr))
SkAlphaType alphaType() const
static SkBlitter * ChooseSprite(const SkPixmap &dst, const SkPaint &, const SkPixmap &src, int left, int top, SkArenaAlloc *, sk_sp< SkShader > clipShader)
virtual void blitMask(const SkMask &, const SkIRect &clip)
virtual void blitV(int x, int y, int height, SkAlpha alpha)
Blit a vertical run of pixels with a constant alpha value.
virtual void blitRect(int x, int y, int width, int height)
Blit a solid rectangle one or more pixels wide.
SkColorType colorType() const
SkColorSpace * colorSpace() const
const SkImageInfo & info() const
int rowBytesAsPixels() const
void * writable_addr() const
const void * addr() const
int shiftPerPixel() const
void blitRect(int x, int y, int width, int height) override
Blit a solid rectangle one or more pixels wide.
bool setup(const SkPixmap &dst, int left, int top, const SkPaint &paint) override
SkRasterPipelineSpriteBlitter(const SkPixmap &src, SkArenaAlloc *alloc, sk_sp< SkShader > clipShader)
static bool Supports(const SkPixmap &dst, const SkPixmap &src, const SkPaint &paint)
void blitRect(int x, int y, int width, int height) override
Blit a solid rectangle one or more pixels wide.
SkSpriteBlitter_Memcpy(const SkPixmap &src)
SkSpriteBlitter(const SkPixmap &source)
static SkSpriteBlitter * ChooseL32(const SkPixmap &source, const SkPaint &, SkArenaAlloc *)
void blitAntiH(int x, int y, const SkAlpha antialias[], const int16_t runs[]) override
void blitV(int x, int y, int height, SkAlpha alpha) override
Blit a vertical run of pixels with a constant alpha value.
void blitRect(int x, int y, int width, int height) override=0
Blit a solid rectangle one or more pixels wide.
void blitH(int x, int y, int width) override
Blit a horizontal run of one or more pixels.
virtual bool setup(const SkPixmap &dst, int left, int top, const SkPaint &)
void blitMask(const SkMask &, const SkIRect &clip) override
FlutterSemanticsFlag flags
it will be possible to load the file into Perfetto s trace viewer disable asset Prevents usage of any non test fonts unless they were explicitly Loaded via prefetched default font Indicates whether the embedding started a prefetch of the default font manager before creating the engine run In non interactive mode
int bytesPerPixel() const