* src/smooth/ftgrays.c (FT_GRAY_SET): Adjust for better code.

This commit is contained in:
Alexei Podtelezhnikov 2021-05-12 16:17:21 -04:00
parent 8f43d324d1
commit c653b8d2f1
2 changed files with 20 additions and 17 deletions

View File

@ -1,4 +1,8 @@
2021-05-07 Alexei Podtelezhnikov <apodtele@gmail.com>
2021-05-11 Alexei Podtelezhnikov <apodtele@gmail.com>
* src/smooth/ftgrays.c (FT_GRAY_SET): Adjust for better code.
2021-05-11 Alexei Podtelezhnikov <apodtele@gmail.com>
[smooth] Faster bitmap sweeping.

View File

@ -409,22 +409,21 @@ typedef ptrdiff_t FT_PtrDist;
/* It is faster to write small spans byte-by-byte than calling */
/* `memset'. This is mainly due to the cost of the function call. */
#define FT_GRAY_SET( d, s, count ) \
FT_BEGIN_STMNT \
unsigned char* q = d; \
unsigned char c = (unsigned char)s; \
switch ( count ) \
{ \
case 7: *q++ = c; /* fall through */ \
case 6: *q++ = c; /* fall through */ \
case 5: *q++ = c; /* fall through */ \
case 4: *q++ = c; /* fall through */ \
case 3: *q++ = c; /* fall through */ \
case 2: *q++ = c; /* fall through */ \
case 1: *q = c; /* fall through */ \
case 0: break; \
default: FT_MEM_SET( d, s, count ); \
} \
#define FT_GRAY_SET( d, s, count ) \
FT_BEGIN_STMNT \
unsigned char* q = d; \
switch ( count ) \
{ \
case 7: *q++ = (unsigned char)s; /* fall through */ \
case 6: *q++ = (unsigned char)s; /* fall through */ \
case 5: *q++ = (unsigned char)s; /* fall through */ \
case 4: *q++ = (unsigned char)s; /* fall through */ \
case 3: *q++ = (unsigned char)s; /* fall through */ \
case 2: *q++ = (unsigned char)s; /* fall through */ \
case 1: *q = (unsigned char)s; /* fall through */ \
case 0: break; \
default: FT_MEM_SET( d, s, count ); \
} \
FT_END_STMNT