1 module ft.outline;
2 
3 import ft.freetype : FT_GlyphSlot, FT_Library;
4 import ft.image : FT_BBox, FT_Bitmap, FT_Outline, FT_Outline_Funcs, FT_Raster_Params, FT_Pos;
5 import ft.system : FT_Memory;
6 import ft.types : FT_Error, FT_Matrix, FT_Int, FT_UInt;
7 
8 extern(C) nothrow @nogc:
9 
10 FT_Error
11 FT_Outline_Decompose( FT_Outline*              outline,
12                       const(FT_Outline_Funcs)* func_interface,
13                       void*                    user );
14 
15 FT_Error
16 FT_Outline_New( FT_Library   library,
17                 FT_UInt      numPoints,
18                 FT_Int       numContours,
19                 FT_Outline*  anoutline );
20 
21 FT_Error
22 FT_Outline_New_Internal( FT_Memory    memory,
23                          FT_UInt      numPoints,
24                          FT_Int       numContours,
25                          FT_Outline*  anoutline );
26 
27 FT_Error
28 FT_Outline_Done( FT_Library   library,
29                  FT_Outline*  outline );
30 
31 FT_Error
32 FT_Outline_Done_Internal( FT_Memory    memory,
33                           FT_Outline*  outline );
34 
35 FT_Error
36 FT_Outline_Check( FT_Outline*  outline );
37 
38 void
39 FT_Outline_Get_CBox( const(FT_Outline)* outline,
40                      FT_BBox*           acbox );
41 
42 void
43 FT_Outline_Translate( const(FT_Outline)* outline,
44                       FT_Pos             xOffset,
45                       FT_Pos             yOffset );
46 
47 FT_Error
48 FT_Outline_Copy( const(FT_Outline)* source,
49                  FT_Outline*        target );
50 
51 void
52 FT_Outline_Transform( const(FT_Outline)* outline,
53                       const(FT_Matrix)*  matrix );
54 
55 FT_Error
56 FT_Outline_Embolden( FT_Outline*  outline,
57                      FT_Pos       strength );
58 
59 FT_Error
60 FT_Outline_EmboldenXY( FT_Outline*  outline,
61                        FT_Pos       xstrength,
62                        FT_Pos       ystrength );
63 
64 void
65 FT_Outline_Reverse( FT_Outline*  outline );
66 
67 FT_Error
68 FT_Outline_Get_Bitmap( FT_Library        library,
69                        FT_Outline*       outline,
70                        const(FT_Bitmap)* abitmap );
71 
72 FT_Error
73 FT_Outline_Render( FT_Library         library,
74                    FT_Outline*        outline,
75                    FT_Raster_Params*  params );
76 
77 enum FT_Orientation
78 {
79     FT_ORIENTATION_TRUETYPE   = 0,
80     FT_ORIENTATION_POSTSCRIPT = 1,
81     FT_ORIENTATION_FILL_RIGHT = FT_ORIENTATION_TRUETYPE,
82     FT_ORIENTATION_FILL_LEFT  = FT_ORIENTATION_POSTSCRIPT,
83     FT_ORIENTATION_NONE
84 }
85 
86 enum FT_ORIENTATION_TRUETYPE    = FT_Orientation.FT_ORIENTATION_TRUETYPE;
87 enum FT_ORIENTATION_POSTSCRIPT  = FT_Orientation.FT_ORIENTATION_POSTSCRIPT;
88 enum FT_ORIENTATION_FILL_RIGHT  = FT_Orientation.FT_ORIENTATION_FILL_RIGHT;
89 enum FT_ORIENTATION_FILL_LEFT   = FT_Orientation.FT_ORIENTATION_FILL_LEFT;
90 enum FT_ORIENTATION_NONE        = FT_Orientation.FT_ORIENTATION_NONE;
91 
92 FT_Orientation
93 FT_Outline_Get_Orientation( FT_Outline*  outline );