fontconfig-pure-0.4.0.0: Pure-functional language bindings to FontConfig
Safe HaskellNone
LanguageHaskell2010

FreeType.FontConfig

Synopsis

Documentation

ftCharIndex :: FT_Face -> Char -> Word Source #

Maps a Unicode char to a glyph index. This function uses information from several possible underlying encoding tables to work around broken fonts. As a result, this function isn't designed to be used in performance sensitive areas; results from this function are intended to be cached by higher level functions.

ftCharSet :: FT_Face -> CharSet Source #

Scans a FreeType face and returns the set of encoded Unicode chars.

ftQuery :: FilePath -> Int -> IO (Pattern, Int) Source #

Constructs a pattern representing the idth face in fst. The number of faces in file is returned in snd.

ftQueryAll :: FilePath -> Int -> IO (FontSet, Int) Source #

Constructs patterns found in filename. If id is -1, then all patterns found in filename are added to fst. Otherwise, this function works exactly like ftQuery. The number of faces in filename is returned in snd.

ftQueryFace :: FT_Face -> FilePath -> Int -> IO Pattern Source #

Constructs a pattern representing face. filename and id are used solely as data for pattern elements.

data FTFC_Metrics Source #

Results queried from FontConfig with caller-relevant properties, notably relating to layout.

data FTFC_Subpixel Source #

Defines subpixel order to use. Note that this is *ignored* if antialiasing has been disabled.

instantiatePattern :: FT_Library -> Pattern -> (Double, Double) -> IO FTFC_Instance Source #

Converts the results of a FontConfig query requesting a specific size into a FT_Face & related properties. Throw exceptions.

glyphForIndex :: FTFC_Instance -> Word32 -> FTFC_Subpixel -> (FT_Bitmap -> IO a) -> IO (FTFC_Glyph a) Source #

Looks up a given glyph in a FTFC_Instance & its underlying FT_Face Taking into account additional properties from FontConfig. Runs a provided callback to render the glyph into a reusable datastructure. The FT_Bitmap given to this callback must not be used outside it. Throws exceptions.