ref: 686e2a5eb38b00b6eda2070228e42b7101ee2ce1
parent: f7f9cb0dde4a09bcac365313721b87bcd64dd49b
author: Alexei Podtelezhnikov <apodtele@gmail.com>
date: Wed Aug 25 19:18:43 EDT 2021
Expand comment.
--- a/src/smooth/ftgrays.c
+++ b/src/smooth/ftgrays.c
@@ -373,8 +373,13 @@
#endif /* __arm__ */
- /* These macros speed up repetitive divisions by replacing them */
- /* with multiplications and right shifts. */
+ /* Calculating coverages for a slanted line requires a division each */
+ /* time the line crosses from cell to cell. These macros speed up */
+ /* the repetitive divisions by replacing them with multiplications */
+ /* and right shifts so that at most two divisions are performed for */
+ /* each slanted line. Nevertheless, these divisions are noticeable */
+ /* in the overall performance because flattened curves produce a */
+ /* very large number of slanted lines. */
#define FT_UDIVPREP( c, b ) \
FT_Int64 b ## _r = c ? (FT_Int64)( ~(FT_UInt64)0 >> PIXEL_BITS ) / ( b ) \
: 0