SVGFonts
This library parses the SVG-Fonts format which is in XML, so it is easy to manipulate by hand (See http://www.w3.org/TR/SVG/fonts.html).
Features:
- Complete implementation of the SVG-Font format
- Outline generation with elimination of holes for easy extrusion
- Kerning (i.e. the two characters in "VA" have a shorter distance than in "VV")
- Rasterization with with antialiasing (subsampling with 256 grey values) (soon)
- Font-Cache
Usage:
You can convert your favourite font (i.e. .ttf) into a .svg file with fontforge (the menu item under
"Save All"). If a font converted on your own doesn't work, try the repair options, and if this still
doens't work edit the file by hand or even cooler: help me with a patch to make this library more robust.
Remember that a lot of fonts are not allowed to be distributed freely.
src/Test/Font.hs is an example how to use this library.
You can navigate around the 3d string with w,a,s,d, + arrows
The main function to generate a visual representation of a string is:
displayString :: String -> (Int,Int) -> Mode -> Spacing -> O -> V -> V -> P -> [AObj]
The list [AObj] can contain various data:
- Textures that can be used directly by OpenGL (TextureObject)
- Names of texture files in the fontcache (collada-output needs this)
- Extruded or non extruded outlines
The data to generate can be specified by the last argument, the property-function:
type P = [Char] -> [(Char,[CharProp])]
that assigns properties to every character of the string (i.e. color of a char in syntaxhighlighting, Font)
The [AObj] list has to be converted to whatever types you use