Go to the source code of this file.
◆ ClearLow3Bits
#define ClearLow3Bits |
( |
|
x | ) |
((unsigned)(x) >> 3 << 3) |
◆ SK_BLITBWMASK_NAME()
static void SK_BLITBWMASK_NAME |
( |
const SkPixmap & |
dstPixmap, |
|
|
const SkMask & |
srcMask, |
|
|
const SkIRect &clip |
SK_BLITBWMASK_ARGS |
|
) |
| |
|
static |
Definition at line 30 of file SkBlitBWMaskTemplate.h.
31 {
33
37 unsigned mask_rowBytes = srcMask.
fRowBytes;
38 size_t bitmap_rowBytes = dstPixmap.
rowBytes();
40
44
47
49 {
50 do {
52 unsigned rb = mask_rowBytes;
53 do {
57 } while (--rb != 0);
60 }
61 else
62 {
65 int rite_edge =
clip.fRight - maskLeft;
67
69 int rite_mask = 0xFF << (8 - (rite_edge & 7));
70 rite_mask &= 0xFF;
71 int full_runs = (rite_edge >> 3) - ((
left_edge + 7) >> 3);
72
73
74 if (rite_mask == 0)
75 {
77 full_runs -= 1;
78 rite_mask = 0xFF;
79 }
80 if (left_mask == 0xFF)
81 full_runs -= 1;
82
83
84
86
87 if (full_runs < 0)
88 {
89 left_mask &= rite_mask;
91 do {
94 bits += mask_rowBytes;
97 }
98 else
99 {
100 do {
101 int runs = full_runs;
103 const uint8_t*
b =
bits;
105
106 mask = *
b++ & left_mask;
109
110 while (--runs >= 0)
111 {
115 }
116
117 mask = *
b & rite_mask;
119
120 bits += mask_rowBytes;
123 }
124 }
125}
#define SK_BLITBWMASK_DEVTYPE
#define SK_BLITBWMASK_BLIT8(mask, dst)
static SkPoint left_edge(SkPoint pts[4], SkPath::Verb verb, SkScalar weight)
static SkPath clip(const SkPath &path, const SkHalfPlane &plane)
int32_t fLeft
smaller x-axis bounds
int32_t fRight
larger x-axis bounds
const uint8_t * getAddr1(int x, int y) const