diff options
-rw-r--r-- | src/base/UFont.pas | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/base/UFont.pas b/src/base/UFont.pas index 99fae037..0249b665 100644 --- a/src/base/UFont.pas +++ b/src/base/UFont.pas @@ -844,6 +844,12 @@ const 0, 0, 1, 0, 0, 0, 0, 1 ); + cShearMatrixInv: array[0..15] of GLfloat = ( + 1, 0, 0, 0, + -cShearFactor, 1, 0, 0, + 0, 0, 1, 0, + 0, 0, 0, 1 + ); var LibraryInst: FT_Library; @@ -2221,6 +2227,7 @@ var OuterNumPoints, InnerNumPoints, GlyphNumPoints: FT_UInt; OuterNumContours, InnerNumContours, GlyphNumContours: FT_UInt; OuterBorder, InnerBorder: FT_StrokerBorder; + OutlineFlags: FT_Int; UseStencil: boolean; begin // It is possible to extrude the borders of a glyph with FT_Glyph_Stroke @@ -2304,6 +2311,9 @@ begin GlyphNumPoints := InnerNumPoints + OuterNumPoints; GlyphNumContours := InnerNumContours + OuterNumContours; + // save flags before deletion (TODO: set them on the resulting outline) + OutlineFlags := Outline.flags; + // resize glyph outline to hold inner and outer border FT_Outline_Done(Glyph.Library_, Outline); if (FT_Outline_New(Glyph.Library_, GlyphNumPoints, GlyphNumContours, Outline) <> 0) then |