freetype
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [ft] Stray pixel from FT_Outline_Get_Bitmap()?


From: Werner LEMBERG
Subject: Re: [ft] Stray pixel from FT_Outline_Get_Bitmap()?
Date: Thu, 05 Aug 2010 07:09:28 +0200 (CEST)

> Might there be a key place that does some sort of equivalent of a
> "PutPixel(i, j, value)" that I could watch while debugging my
> Cairo-based case?  Or does the algorithm not lend itself to that?  I
> figure someone must be turning on that offending pixel, and
> detecting that case might illuminate the problem.

The two central routines are Vertical_Sweep_Span and
Horizontal_Sweep_Span in combination with the drop-out control
functions Vertical_Sweep_Drop and Horizontal_Sweep_Drop.  The generic
calls to them happen in the function Draw_Sweep.  The first pass
handles the vertical sweep, the second pass (if asked for) does a
horizontal sweep which basically only checks for drop-outs.

For each scanline, the start and end points of spans are calculated,
sorted, and passed to the *_Sweep_Span routines.  They blacken all
pixels fully covered by the spans – this is trivial – and then decide
how to render the partially covered ones and what to do with gaps –
this is tricky.  I've tried to improve the drop-out handling in 2.3.10
(the documentation in the TrueType specification is very bad
unfortunately); I've probably worsened your particular case.


    Werner

reply via email to

[Prev in Thread] Current Thread [Next in Thread]