Flutter Engine
The Flutter Engine
|
#include <SkSpriteBlitter.h>
Public Member Functions | |
SkSpriteBlitter (const SkPixmap &source) | |
virtual bool | setup (const SkPixmap &dst, int left, int top, const SkPaint &) |
void | blitH (int x, int y, int width) override |
Blit a horizontal run of one or more pixels. More... | |
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. More... | |
void | blitMask (const SkMask &, const SkIRect &clip) override |
void | blitRect (int x, int y, int width, int height) override=0 |
Blit a solid rectangle one or more pixels wide. More... | |
Public Member Functions inherited from SkBlitter | |
virtual | ~SkBlitter () |
virtual void | blitH (int x, int y, int width)=0 |
Blit a horizontal run of one or more pixels. More... | |
virtual void | blitAntiH (int x, int y, const SkAlpha antialias[], const int16_t runs[])=0 |
virtual void | blitV (int x, int y, int height, SkAlpha alpha) |
Blit a vertical run of pixels with a constant alpha value. More... | |
virtual void | blitRect (int x, int y, int width, int height) |
Blit a solid rectangle one or more pixels wide. More... | |
virtual void | blitAntiRect (int x, int y, int width, int height, SkAlpha leftAlpha, SkAlpha rightAlpha) |
void | blitFatAntiRect (const SkRect &rect) |
virtual void | blitMask (const SkMask &, const SkIRect &clip) |
virtual void | blitAntiH2 (int x, int y, U8CPU a0, U8CPU a1) |
virtual void | blitAntiV2 (int x, int y, U8CPU a0, U8CPU a1) |
virtual bool | isNullBlitter () const |
virtual int | requestRowsPreserved () const |
virtual void * | allocBlitMemory (size_t sz) |
void | blitRectRegion (const SkIRect &rect, const SkRegion &clip) |
void | blitRegion (const SkRegion &clip) |
Static Public Member Functions | |
static SkSpriteBlitter * | ChooseL32 (const SkPixmap &source, const SkPaint &, SkArenaAlloc *) |
Static Public Member Functions inherited from SkBlitter | |
static bool | UseLegacyBlitter (const SkPixmap &, const SkPaint &, const SkMatrix &) |
static SkBlitter * | Choose (const SkPixmap &dst, const SkMatrix &ctm, const SkPaint &paint, SkArenaAlloc *, bool drawCoverage, sk_sp< SkShader > clipShader, const SkSurfaceProps &props) |
static SkBlitter * | ChooseSprite (const SkPixmap &dst, const SkPaint &, const SkPixmap &src, int left, int top, SkArenaAlloc *, sk_sp< SkShader > clipShader) |
Protected Attributes | |
SkPixmap | fDst |
const SkPixmap | fSource |
int | fLeft |
int | fTop |
const SkPaint * | fPaint |
Protected Attributes inherited from SkBlitter | |
SkAutoMalloc | fBlitMemory |
Definition at line 20 of file SkSpriteBlitter.h.
SkSpriteBlitter::SkSpriteBlitter | ( | const SkPixmap & | source | ) |
Definition at line 39 of file SkBlitter_Sprite.cpp.
|
overridevirtual |
Blit a horizontal run of antialiased pixels; runs[] is a sparse zero-terminated run-length encoding of spans of constant alpha values. The runs[] and antialias[] work together to represent long runs of pixels with the same alphas. The runs[] contains the number of pixels with the same alpha, and antialias[] contain the coverage value for that number of pixels. The runs[] (and antialias[]) are encoded in a clever way. The runs array is zero terminated, and has enough entries for each pixel plus one, in most cases some of the entries will not contain valid data. An entry in the runs array contains the number of pixels (np) that have the same alpha value. The next np value is found np entries away. For example, if runs[0] = 7, then the next valid entry will by at runs[7]. The runs array and antialias[] are coupled by index. So, if the np entry is at runs[45] = 12 then the alpha value can be found at antialias[45] = 0x88. This would mean to use an alpha value of 0x88 for the next 12 pixels starting at pixel 45.
Implements SkBlitter.
Definition at line 57 of file SkBlitter_Sprite.cpp.
Blit a horizontal run of one or more pixels.
Implements SkBlitter.
Definition at line 50 of file SkBlitter_Sprite.cpp.
Blit a pattern of pixels defined by a rectangle-clipped mask; typically used for text.
Reimplemented from SkBlitter.
Definition at line 70 of file SkBlitter_Sprite.cpp.
Blit a solid rectangle one or more pixels wide.
Reimplemented from SkBlitter.
Implemented in SkSpriteBlitter_Memcpy, SkRasterPipelineSpriteBlitter, and Sprite_D32_S32.
Blit a vertical run of pixels with a constant alpha value.
Reimplemented from SkBlitter.
Definition at line 63 of file SkBlitter_Sprite.cpp.
|
static |
Definition at line 64 of file SkSpriteBlitter_ARGB32.cpp.
|
virtual |
Reimplemented in SkRasterPipelineSpriteBlitter.
Definition at line 42 of file SkBlitter_Sprite.cpp.
|
protected |
Definition at line 38 of file SkSpriteBlitter.h.
|
protected |
Definition at line 40 of file SkSpriteBlitter.h.
|
protected |
Definition at line 41 of file SkSpriteBlitter.h.
|
protected |
Definition at line 39 of file SkSpriteBlitter.h.
|
protected |
Definition at line 40 of file SkSpriteBlitter.h.