[pfr] Fix handling of compound glyphs.

Extra items are indicated with different bit positions.

* src/pfr/pfrtypes.h (PFR_GlyphFlags): Replace
`PFR_GLYPH_EXTRA_ITEMS' with `PFR_GLYPH_SIMPLE_EXTRA_ITEMS' and
`PFR_GLYPH_COMPOUND_EXTRA_ITEMS'.

* src/pfr/pfrgload.c (pfr_glyph_load_simple,
pfr_glyph_load_compound): Use them.
This commit is contained in:
Werner Lemberg 2016-03-26 07:34:30 +01:00
parent 2aa6956565
commit 0003cb9162
3 changed files with 20 additions and 4 deletions

View File

@ -1,3 +1,16 @@
2016-03-25 Werner Lemberg <wl@gnu.org>
[pfr] Fix handling of compound glyphs.
Extra items are indicated with different bit positions.
* src/pfr/pfrtypes.h (PFR_GlyphFlags): Replace
`PFR_GLYPH_EXTRA_ITEMS' with `PFR_GLYPH_SIMPLE_EXTRA_ITEMS' and
`PFR_GLYPH_COMPOUND_EXTRA_ITEMS'.
* src/pfr/pfrgload.c (pfr_glyph_load_simple,
pfr_glyph_load_compound): Use them.
2016-03-25 Werner Lemberg <wl@gnu.org>
[pfr] Minor.

View File

@ -336,7 +336,7 @@
/* XXX: we ignore the secondary stroke and edge definitions */
/* since we don't support native PFR hinting */
/* */
if ( flags & PFR_GLYPH_EXTRA_ITEMS )
if ( flags & PFR_GLYPH_SINGLE_EXTRA_ITEMS )
{
error = pfr_extra_items_skip( &p, limit );
if ( error )
@ -579,7 +579,7 @@
/* ignore extra items when present */
/* */
if ( flags & PFR_GLYPH_EXTRA_ITEMS )
if ( flags & PFR_GLYPH_COMPOUND_EXTRA_ITEMS )
{
error = pfr_extra_items_skip( &p, limit );
if ( error )

View File

@ -291,8 +291,11 @@ FT_BEGIN_HEADER
typedef enum PFR_GlyphFlags_
{
PFR_GLYPH_IS_COMPOUND = 0x80,
PFR_GLYPH_EXTRA_ITEMS = 0x08,
PFR_GLYPH_IS_COMPOUND = 0x80,
PFR_GLYPH_SINGLE_EXTRA_ITEMS = 0x08,
PFR_GLYPH_COMPOUND_EXTRA_ITEMS = 0x40,
PFR_GLYPH_1BYTE_XYCOUNT = 0x04,
PFR_GLYPH_XCOUNT = 0x02,
PFR_GLYPH_YCOUNT = 0x01