[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[freetype2] master 761d9e4: * src/smooth/ftgrays.c (gray_hline): Improve
From: |
Alexei Podtelezhnikov |
Subject: |
[freetype2] master 761d9e4: * src/smooth/ftgrays.c (gray_hline): Improve code. |
Date: |
Wed, 22 Feb 2017 22:42:36 -0500 (EST) |
branch: master
commit 761d9e418bb76499cf9d12bfbddf8e7ae7ff96fb
Author: Alexei Podtelezhnikov <address@hidden>
Commit: Alexei Podtelezhnikov <address@hidden>
* src/smooth/ftgrays.c (gray_hline): Improve code.
---
ChangeLog | 4 ++++
src/smooth/ftgrays.c | 27 ++++++++++-----------------
2 files changed, 14 insertions(+), 17 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 63f0bfd..976efa1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2017-02-22 Alexei Podtelezhnikov <address@hidden>
+
+ * src/smooth/ftgrays.c (gray_hline): Improve code.
+
2017-02-20 Dominik Röttsches <address@hidden>
Fix some `ttnameid.h' entries (#50313).
diff --git a/src/smooth/ftgrays.c b/src/smooth/ftgrays.c
index 1fe558d..e9a3ce7 100644
--- a/src/smooth/ftgrays.c
+++ b/src/smooth/ftgrays.c
@@ -1222,31 +1222,21 @@ typedef ptrdiff_t FT_PtrDist;
static void
gray_hline( RAS_ARG_ TCoord x,
TCoord y,
- TArea area,
+ TArea coverage,
TCoord acount )
{
- int coverage;
- FT_Span span;
-
-
- /* compute the coverage line's coverage, depending on the */
- /* outline fill rule */
- /* */
- /* the coverage percentage is area/(PIXEL_BITS*PIXEL_BITS*2) */
- /* */
- coverage = (int)( area >> ( PIXEL_BITS * 2 + 1 - 8 ) );
- /* use range 0..256 */
+ /* scale the coverage from 0..(ONE_PIXEL*ONE_PIXEL*2) to 0..256 */
+ coverage >>= PIXEL_BITS * 2 + 1 - 8;
if ( coverage < 0 )
- coverage = -coverage;
+ coverage = -coverage - 1;
+ /* compute the line's coverage depending on the outline fill rule */
if ( ras.outline.flags & FT_OUTLINE_EVEN_ODD_FILL )
{
coverage &= 511;
- if ( coverage > 256 )
- coverage = 512 - coverage;
- else if ( coverage == 256 )
- coverage = 255;
+ if ( coverage >= 256 )
+ coverage = 511 - coverage;
}
else
{
@@ -1257,6 +1247,9 @@ typedef ptrdiff_t FT_PtrDist;
if ( ras.render_span ) /* for FT_RASTER_FLAG_DIRECT only */
{
+ FT_Span span;
+
+
span.x = (short)x;
span.len = (unsigned short)acount;
span.coverage = (unsigned char)coverage;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [freetype2] master 761d9e4: * src/smooth/ftgrays.c (gray_hline): Improve code.,
Alexei Podtelezhnikov <=