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 );