* src/smooth/ftgrays.c (FT_GRAY_SET): Adjust for better code.
This commit is contained in:
parent
8f43d324d1
commit
c653b8d2f1
@ -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.
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user