summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexei Podtelezhnikov <apodtele@gmail.com>2021-08-26 15:31:11 +0000
committerAlexei Podtelezhnikov <apodtele@gmail.com>2021-08-26 15:31:11 +0000
commit3785393d1a3c12fb1b4a3995cc0e953a58531cfe (patch)
treea2e7ca4f88d8c73d5b160a06353f21eb03ec7f75
parent686e2a5eb38b00b6eda2070228e42b7101ee2ce1 (diff)
downloadfreetype2-3785393d1a3c12fb1b4a3995cc0e953a58531cfe.tar.gz
Expand comment (cont'd).
-rw-r--r--src/smooth/ftgrays.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/smooth/ftgrays.c b/src/smooth/ftgrays.c
index 5ae791872..c550c3303 100644
--- a/src/smooth/ftgrays.c
+++ b/src/smooth/ftgrays.c
@@ -380,6 +380,12 @@ typedef ptrdiff_t FT_PtrDist;
/* each slanted line. Nevertheless, these divisions are noticeable */
/* in the overall performance because flattened curves produce a */
/* very large number of slanted lines. */
+ /* */
+ /* The division results here are always within ONE_PIXEL. Therefore */
+ /* the shift magnitude should be at least PIXEL_BITS wider than the */
+ /* divisors to provide sufficient accuracy of the multiply-shift. */
+ /* It should not exceed (64 - PIXEL_BITS) to prevent overflowing and */
+ /* leave enough room for 64-bit unsigned multiplication however. */
#define FT_UDIVPREP( c, b ) \
FT_Int64 b ## _r = c ? (FT_Int64)( ~(FT_UInt64)0 >> PIXEL_BITS ) / ( b ) \
: 0