aboutsummaryrefslogtreecommitdiffstats
path: root/src/base/UFont.pas
diff options
context:
space:
mode:
Diffstat (limited to 'src/base/UFont.pas')
-rw-r--r--src/base/UFont.pas10
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