summaryrefslogtreecommitdiff
path: root/src/raster
diff options
context:
space:
mode:
authorAlexei Podtelezhnikov <apodtele@gmail.com>2020-09-08 22:41:53 -0400
committerAlexei Podtelezhnikov <apodtele@gmail.com>2020-09-08 22:41:53 -0400
commitcb4733136992265ba8b52c5f009864a0b7769949 (patch)
tree8a5d248d9bac2d1c8efe4331ea267fd1a7a11e3a /src/raster
parent3594eaee595f174fc6d9f39f55e9918aa4eaa9e7 (diff)
downloadfreetype2-cb4733136992265ba8b52c5f009864a0b7769949.tar.gz
[raster] Introduce SMART macro.
* src/raster/ftraster.c (SMART): New macro for smart dropout rounding. (Verstical_Sweep_Drop, Horizontal_Sweep_Drop): Use it.
Diffstat (limited to 'src/raster')
-rw-r--r--src/raster/ftraster.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/raster/ftraster.c b/src/raster/ftraster.c
index 7ef171979..14ff4d4d3 100644
--- a/src/raster/ftraster.c
+++ b/src/raster/ftraster.c
@@ -459,6 +459,9 @@
#define IS_TOP_OVERSHOOT( x ) \
(Bool)( x - FLOOR( x ) >= ras.precision_half )
+ /* smart dropout rounding */
+#define SMART( x1, x2 ) FLOOR( ( (x1) + (x2) - 1 ) / 2 + ras.precision_half )
+
#if FT_RENDER_POOL_SIZE > 2048
#define FT_MAX_BLACK_POOL ( FT_RENDER_POOL_SIZE / sizeof ( Long ) )
#else
@@ -2360,7 +2363,7 @@
break;
case 4: /* smart drop-outs including stubs */
- pxl = FLOOR( ( x1 + x2 - 1 ) / 2 + ras.precision_half );
+ pxl = SMART( x1, x2 );
break;
case 1: /* simple drop-outs excluding stubs */
@@ -2409,7 +2412,7 @@
if ( dropOutControl == 1 )
pxl = e2;
else
- pxl = FLOOR( ( x1 + x2 - 1 ) / 2 + ras.precision_half );
+ pxl = SMART( x1, x2 );
break;
default: /* modes 2, 3, 6, 7 */
@@ -2580,7 +2583,7 @@
break;
case 4: /* smart drop-outs including stubs */
- pxl = FLOOR( ( x1 + x2 - 1 ) / 2 + ras.precision_half );
+ pxl = SMART( x1, x2 );
break;
case 1: /* simple drop-outs excluding stubs */
@@ -2604,7 +2607,7 @@
if ( dropOutControl == 1 )
pxl = e2;
else
- pxl = FLOOR( ( x1 + x2 - 1 ) / 2 + ras.precision_half );
+ pxl = SMART( x1, x2 );
break;
default: /* modes 2, 3, 6, 7 */