freetype-commit
[Top][All Lists]
Advanced

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

[freetype2] master d1876e5: [smooth] Variable type revision (part 2).


From: Alexei Podtelezhnikov
Subject: [freetype2] master d1876e5: [smooth] Variable type revision (part 2).
Date: Tue, 5 Jul 2016 03:47:49 +0000 (UTC)

branch: master
commit d1876e5832300b09529fbfe4cefbbab92e9e15a3
Author: Alexei Podtelezhnikov <address@hidden>
Commit: Alexei Podtelezhnikov <address@hidden>

    [smooth] Variable type revision (part 2).
    
    * src/smooth/ftgrays.c (TArea): Restore original definition as `int'.
    (gray_render_line) [FT_LONG64]: Updated.
    (gray_convert_glyph): 32-bit band bisection stack should be 32 bands.
    (gray_convert_glyph_inner): Trace successes and failures.
---
 ChangeLog            |    9 +++++++++
 src/smooth/ftgrays.c |   18 +++++++++++++-----
 2 files changed, 22 insertions(+), 5 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 0fb1465..25014ef 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2016-07-04  Alexei Podtelezhnikov  <address@hidden>
+
+       [smooth] Variable type revision (part 2).
+
+       * src/smooth/ftgrays.c (TArea): Restore original definition as `int'.
+       (gray_render_line) [FT_LONG64]: Updated.
+       (gray_convert_glyph): 32-bit band bisection stack should be 32 bands.
+       (gray_convert_glyph_inner): Trace successes and failures.
+
 2016-07-04  Werner Lemberg  <address@hidden>
 
        [autofit] Handle single-point contours as segments.
diff --git a/src/smooth/ftgrays.c b/src/smooth/ftgrays.c
index 8eade1c..f0e380e 100644
--- a/src/smooth/ftgrays.c
+++ b/src/smooth/ftgrays.c
@@ -387,9 +387,9 @@ typedef ptrdiff_t  FT_PtrDist;
   /* need to define them to "float" or "double" when experimenting with   */
   /* new algorithms                                                       */
 
-  typedef int   TCoord;   /* integer scanline/pixel coordinate */
   typedef long  TPos;     /* sub-pixel coordinate              */
-  typedef long  TArea;    /* cell areas, coordinate products   */
+  typedef int   TCoord;   /* integer scanline/pixel coordinate */
+  typedef int   TArea;    /* cell areas, coordinate products   */
 
 
   typedef struct TCell_*  PCell;
@@ -493,7 +493,7 @@ typedef ptrdiff_t  FT_PtrDist;
       printf( "%3d:", yindex );
 
       for ( cell = ras.ycells[yindex]; cell != NULL; cell = cell->next )
-        printf( " (%3d, c:%4d, a:%6ld)",
+        printf( " (%3d, c:%4d, a:%6d)",
                 cell->x, cell->cover, cell->area );
       printf( "\n" );
     }
@@ -928,7 +928,7 @@ typedef ptrdiff_t  FT_PtrDist;
     }
     else                                  /* any other line */
     {
-      TArea  prod = dx * fy1 - dy * fx1;
+      TPos  prod = dx * fy1 - dy * fx1;
       FT_UDIVPREP( dx );
       FT_UDIVPREP( dy );
 
@@ -1873,10 +1873,18 @@ typedef ptrdiff_t  FT_PtrDist;
       error = FT_Outline_Decompose( &ras.outline, &func_interface, &ras );
       if ( !ras.invalid )
         gray_record_cell( RAS_VAR );
+
+      FT_TRACE7(( "band [%d..%d]: %d cells\n",
+                  ras.min_ey, ras.max_ey, ras.num_cells ));
     }
     else
+    {
       error = FT_THROW( Memory_Overflow );
 
+      FT_TRACE7(( "band [%d..%d]: to be bisected\n",
+                  ras.min_ey, ras.max_ey ));
+    }
+
     return error;
   }
 
@@ -1886,7 +1894,7 @@ typedef ptrdiff_t  FT_PtrDist;
   {
     TCell        buffer[FT_MAX_GRAY_POOL];
     const int    band_size = FT_MAX_GRAY_POOL / 8;
-    gray_TBand   bands[40];
+    gray_TBand   bands[32];
     gray_TBand*  band;
     int          n, num_bands;
     TCoord       min, max, max_y;



reply via email to

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