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

Public Member Functions

SkFixed drawCap (int y, SkFixed fx, SkFixed dx, int mod64) override
 
SkFixed drawLine (int y, int stopy, SkFixed fx, SkFixed dx) override
 
- Public Member Functions inherited from SkAntiHairBlitter
 SkAntiHairBlitter ()
 
virtual ~SkAntiHairBlitter ()
 
SkBlittergetBlitter () const
 
void setup (SkBlitter *blitter)
 

Detailed Description

Definition at line 200 of file SkScan_Antihair.cpp.

Member Function Documentation

◆ drawCap()

SkFixed VLine_SkAntiHairBlitter::drawCap ( int  y,
SkFixed  fx,
SkFixed  dx,
int  mod64 
)
inlineoverridevirtual

Implements SkAntiHairBlitter.

Definition at line 202 of file SkScan_Antihair.cpp.

202 {
203 SkASSERT(0 == dx);
204 fx += SK_Fixed1/2;
205
206 int x = fx >> 16;
207 int a = (uint8_t)((fx >> 8) & 0xFF);
208
209 unsigned ma = SmallDot6Scale(a, mod64);
210 if (ma) {
211 this->getBlitter()->blitV(x, y, 1, ma);
212 }
213 ma = SmallDot6Scale(255 - a, mod64);
214 if (ma) {
215 this->getBlitter()->blitV(x - 1, y, 1, ma);
216 }
217
218 return fx - SK_Fixed1/2;
219 }
#define SkASSERT(cond)
Definition SkAssert.h:116
#define SK_Fixed1
Definition SkFixed.h:26
static int SmallDot6Scale(int value, int dot6)
SkBlitter * getBlitter() const
virtual void blitV(int x, int y, int height, SkAlpha alpha)
Blit a vertical run of pixels with a constant alpha value.
struct MyStruct a[10]
double y
double x

◆ drawLine()

SkFixed VLine_SkAntiHairBlitter::drawLine ( int  y,
int  stopy,
SkFixed  fx,
SkFixed  dx 
)
inlineoverridevirtual

Implements SkAntiHairBlitter.

Definition at line 221 of file SkScan_Antihair.cpp.

221 {
222 SkASSERT(y < stopy);
223 SkASSERT(0 == dx);
224 fx += SK_Fixed1/2;
225
226 int x = fx >> 16;
227 int a = (uint8_t)((fx >> 8) & 0xFF);
228
229 if (a) {
230 this->getBlitter()->blitV(x, y, stopy - y, a);
231 }
232 a = 255 - a;
233 if (a) {
234 this->getBlitter()->blitV(x - 1, y, stopy - y, a);
235 }
236
237 return fx - SK_Fixed1/2;
238 }

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