Merge branch 'tt_face_colr_blend_layer' into 'master'

Fix tt_face_colr_blend_layer for FT_PIXEL_MODE_MONO source.

See merge request freetype/freetype!424
This commit is contained in:
Jonathan Kew 2026-05-02 19:30:54 +00:00
commit d09212127b

View file

@ -1862,7 +1862,11 @@
alpha = face->palette[color_index].alpha;
}
/* XXX Convert if srcSlot.bitmap is not grey? */
/* Reject pixel modes other than GRAY/MONO. */
if ( srcSlot->bitmap.pixel_mode != FT_PIXEL_MODE_GRAY &&
srcSlot->bitmap.pixel_mode != FT_PIXEL_MODE_MONO )
return FT_Err_Invalid_Glyph_Format;
src = srcSlot->bitmap.buffer;
dst = dstSlot->bitmap.buffer +
dstSlot->bitmap.pitch * ( dstSlot->bitmap_top - srcSlot->bitmap_top ) +
@ -1872,7 +1876,9 @@
{
for ( x = 0; x < srcSlot->bitmap.width; x++ )
{
int aa = src[x];
int aa = srcSlot->bitmap.pixel_mode == FT_PIXEL_MODE_MONO
? ( src[x >> 3] & ( 0x80 >> ( x & 7 ) ) ) ? 255 : 0
: src[x];
int fa = alpha * aa / 255;
int fb = b * fa / 255;