Alexei Podtelezhnikov pushed to branch master at FreeType / FreeType
Commits:
-
f6370e2f
by Alexei Podtelezhnikov at 2021-06-25T22:59:39-04:00
2 changed files:
Changes:
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.
|
... | ... | @@ -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 |
}
|