Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
Public Member Functions | List of all members
HLine_SkAntiHairBlitter Class Reference
Inheritance diagram for HLine_SkAntiHairBlitter:
SkAntiHairBlitter

Public Member Functions

SkFixed drawCap (int x, SkFixed fy, SkFixed slope, int mod64) override
 
SkFixed drawLine (int x, int stopx, SkFixed fy, SkFixed slope) override
 
- Public Member Functions inherited from SkAntiHairBlitter
 SkAntiHairBlitter ()
 
virtual ~SkAntiHairBlitter ()
 
SkBlittergetBlitter () const
 
void setup (SkBlitter *blitter)
 

Detailed Description

Definition at line 124 of file SkScan_Antihair.cpp.

Member Function Documentation

◆ drawCap()

SkFixed HLine_SkAntiHairBlitter::drawCap ( int  x,
SkFixed  fy,
SkFixed  slope,
int  mod64 
)
inlineoverridevirtual

Implements SkAntiHairBlitter.

Definition at line 126 of file SkScan_Antihair.cpp.

126 {
127 fy += SK_Fixed1/2;
128
129 int y = fy >> 16;
130 uint8_t a = (uint8_t)((fy >> 8) & 0xFF);
131
132 // lower line
133 unsigned ma = SmallDot6Scale(a, mod64);
134 if (ma) {
135 call_hline_blitter(this->getBlitter(), x, y, 1, ma);
136 }
137
138 // upper line
139 ma = SmallDot6Scale(255 - a, mod64);
140 if (ma) {
141 call_hline_blitter(this->getBlitter(), x, y - 1, 1, ma);
142 }
143
144 return fy - SK_Fixed1/2;
145 }
#define SK_Fixed1
Definition SkFixed.h:26
static void call_hline_blitter(SkBlitter *blitter, int x, int y, int count, U8CPU alpha)
static int SmallDot6Scale(int value, int dot6)
SkBlitter * getBlitter() const
struct MyStruct a[10]
double y
double x

◆ drawLine()

SkFixed HLine_SkAntiHairBlitter::drawLine ( int  x,
int  stopx,
SkFixed  fy,
SkFixed  slope 
)
inlineoverridevirtual

Implements SkAntiHairBlitter.

Definition at line 147 of file SkScan_Antihair.cpp.

147 {
148 SkASSERT(x < stopx);
149 int count = stopx - x;
150 fy += SK_Fixed1/2;
151
152 int y = fy >> 16;
153 uint8_t a = (uint8_t)((fy >> 8) & 0xFF);
154
155 // lower line
156 if (a) {
157 call_hline_blitter(this->getBlitter(), x, y, count, a);
158 }
159
160 // upper line
161 a = 255 - a;
162 if (a) {
163 call_hline_blitter(this->getBlitter(), x, y - 1, count, a);
164 }
165
166 return fy - SK_Fixed1/2;
167 }
int count
#define SkASSERT(cond)
Definition SkAssert.h:116

The documentation for this class was generated from the following file: