8#ifndef SkBlitter_DEFINED
9#define SkBlitter_DEFINED
135#if defined(SK_SUPPORT_LEGACY_ALPHA_BITMAP_AS_COVERAGE)
245class SkRectClipCheckBlitter :
public SkBlitter {
265 return fBlitter->requestRowsPreserved();
269 return fBlitter->allocBlitMemory(sz);
static SkPath clip(const SkPath &path, const SkHalfPlane &plane)
static bool left(const SkPoint &p0, const SkPoint &p1)
constexpr uint8_t SkToU8(S x)
void * reset(size_t size=0, OnShrink shrink=kAlloc_OnShrink)
SkBlitter * apply(SkBlitter *blitter, const SkRegion *clip, const SkIRect *bounds=nullptr)
static SkBlitter * ChooseSprite(const SkPixmap &dst, const SkPaint &, const SkPixmap &src, int left, int top, SkArenaAlloc *, sk_sp< SkShader > clipShader)
void blitFatAntiRect(const SkRect &rect)
virtual void blitAntiH2(int x, int y, U8CPU a0, U8CPU a1)
static SkBlitter * Choose(const SkPixmap &dst, const SkMatrix &ctm, const SkPaint &paint, SkArenaAlloc *, bool drawCoverage, sk_sp< SkShader > clipShader, const SkSurfaceProps &props)
virtual bool isNullBlitter() const
static bool UseLegacyBlitter(const SkPixmap &, const SkPaint &, const SkMatrix &)
virtual int requestRowsPreserved() const
void blitRectRegion(const SkIRect &rect, const SkRegion &clip)
virtual void blitAntiV2(int x, int y, U8CPU a0, U8CPU a1)
virtual void blitMask(const SkMask &, const SkIRect &clip)
virtual void blitAntiRect(int x, int y, int width, int height, SkAlpha leftAlpha, SkAlpha rightAlpha)
virtual void * allocBlitMemory(size_t sz)
void blitRegion(const SkRegion &clip)
virtual void blitAntiH(int x, int y, const SkAlpha antialias[], const int16_t runs[])=0
virtual void blitH(int x, int y, int width)=0
Blit a horizontal run of one or more pixels.
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.
void blitMask(const SkMask &, const SkIRect &clip) 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
Blit a solid rectangle one or more pixels wide.
bool isNullBlitter() const override
void blitH(int x, int y, int width) override
Blit a horizontal run of one or more pixels.
void blitAntiH(int x, int y, const SkAlpha[], const int16_t runs[]) override
void blitAntiH(int x, int y, const SkAlpha[], const int16_t runs[]) override
int requestRowsPreserved() const override
void blitH(int x, int y, int width) override
Blit a horizontal run of one or more pixels.
void blitV(int x, int y, int height, SkAlpha alpha) override
Blit a vertical run of pixels with a constant alpha value.
void blitAntiRect(int x, int y, int width, int height, SkAlpha leftAlpha, SkAlpha rightAlpha) override
void blitMask(const SkMask &, const SkIRect &clip) override
void init(SkBlitter *blitter, const SkIRect &clipRect)
void blitRect(int x, int y, int width, int height) override
Blit a solid rectangle one or more pixels wide.
void * allocBlitMemory(size_t sz) override
void blitMask(const SkMask &, const SkIRect &clip) override
void blitAntiH(int x, int y, const SkAlpha[], const int16_t runs[]) override
void init(SkBlitter *blitter, const SkRegion *clipRgn)
int requestRowsPreserved() const override
void blitRect(int x, int y, int width, int height) override
Blit a solid rectangle one or more pixels wide.
void blitV(int x, int y, int height, SkAlpha alpha) override
Blit a vertical run of pixels with a constant alpha value.
void * allocBlitMemory(size_t sz) override
void blitAntiRect(int x, int y, int width, int height, SkAlpha leftAlpha, SkAlpha rightAlpha) override
void blitH(int x, int y, int width) override
Blit a horizontal run of one or more pixels.
Optional< SkRect > bounds
clipRect(r.rect, r.opAA.op(), r.opAA.aa())) template<> void Draw
sk_sp< SkBlender > blender SkRect rect