freetype-commit
[Top][All Lists]
Advanced

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

[Git][freetype/freetype][master] [raster] Adjust sub-band bisecting limi


From: Alexei Podtelezhnikov (@apodtele)
Subject: [Git][freetype/freetype][master] [raster] Adjust sub-band bisecting limits.
Date: Sat, 26 Jun 2021 03:00:44 +0000

Alexei Podtelezhnikov pushed to branch master at FreeType / FreeType

Commits:

2 changed files:

Changes:

  • ChangeLog
    1
    +2021-06-25  Alexei Podtelezhnikov  <apodtele@gmail.com>
    
    2
    +
    
    3
    +	[raster] Adjust sub-band bisecting limits.
    
    4
    +
    
    5
    +	We can bisect a band until it is just a single scan line.  This might
    
    6
    +	be slow and cause time-outs but if we need to impose limits it should
    
    7
    +	be elsewhere.
    
    8
    +
    
    9
    +	* src/raster/ftraster.c (Render_Single_Pass): Tweak sub-banding.
    
    10
    +
    
    1 11
     2021-06-25  Alexei Podtelezhnikov  <apodtele@gmail.com>
    
    2 12
     
    
    3 13
     	* src/raster/ftraster.c (Render_Single_Pass): Remove dead code.
    

  • src/raster/ftraster.c
    ... ... @@ -528,6 +528,7 @@
    528 528
         TPoint      arcs[3 * MaxBezier + 1]; /* The Bezier stack               */
    
    529 529
     
    
    530 530
         black_TBand  band_stack[16];    /* band stack used for sub-banding     */
    
    531
    +                                    /* enough for signed short bands       */
    
    531 532
         Int          band_top;          /* band stack top                      */
    
    532 533
     
    
    533 534
       };
    
    ... ... @@ -3054,19 +3055,19 @@
    3054 3055
             i = ras.band_stack[ras.band_top].y_min;
    
    3055 3056
             j = ras.band_stack[ras.band_top].y_max;
    
    3056 3057
     
    
    3057
    -        k = (Short)( ( i + j ) / 2 );
    
    3058
    -
    
    3059
    -        if ( ras.band_top >= 7 || k < i )
    
    3058
    +        if ( i == j )
    
    3060 3059
             {
    
    3061 3060
               ras.band_top = 0;
    
    3062 3061
     
    
    3063 3062
               return ras.error;  /* still Raster_Overflow */
    
    3064 3063
             }
    
    3065 3064
     
    
    3066
    -        ras.band_stack[ras.band_top + 1].y_min = k;
    
    3065
    +        k = (Short)( ( i + j ) / 2 );
    
    3066
    +
    
    3067
    +        ras.band_stack[ras.band_top + 1].y_min = (Short)( k + 1 );
    
    3067 3068
             ras.band_stack[ras.band_top + 1].y_max = j;
    
    3068 3069
     
    
    3069
    -        ras.band_stack[ras.band_top].y_max = (Short)( k - 1 );
    
    3070
    +        ras.band_stack[ras.band_top].y_max = k;
    
    3070 3071
     
    
    3071 3072
             ras.band_top++;
    
    3072 3073
           }
    


  • reply via email to

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