140 lines
2.6 KiB
Plaintext
140 lines
2.6 KiB
Plaintext
README for PyFTGL
|
|
|
|
|
|
Introduction
|
|
============
|
|
|
|
FTGL is a free, open source library to enable developers to use
|
|
arbitrary fonts in their OpenGL applications. Unlike other OpenGL font
|
|
libraries FTGL uses standard font file formats and the Freetype font
|
|
library to open the fonts.
|
|
|
|
PyFTGL in turn wraps the functionality of FTGL into a Python module so
|
|
that it can be used in conjunction with PyOpenGL.
|
|
|
|
|
|
How to build
|
|
============
|
|
|
|
Prerequisites
|
|
-------------
|
|
|
|
Make sure you have the necessary libraries installed before attempting
|
|
to build PyFTGL.
|
|
|
|
* FTGL
|
|
http://homepages.paradise.net.nz/henryj/code/#FTGL
|
|
|
|
* FreeType
|
|
http://www.freetype.org/
|
|
|
|
* boost::python
|
|
http://www.boost.org/
|
|
|
|
|
|
Build
|
|
-----
|
|
|
|
$ python setup.py build
|
|
|
|
|
|
Install
|
|
-------
|
|
|
|
$ python setup.py install
|
|
|
|
|
|
How to use
|
|
==========
|
|
|
|
Overview
|
|
--------
|
|
|
|
To use PyFTGL, start by import it:
|
|
|
|
>>> import FTGL
|
|
|
|
PyFTGL supports six different rendering modes:
|
|
|
|
* Bitmap
|
|
* Anti-aliased pixmap
|
|
* Anti-aliased texture maps
|
|
* Outlines
|
|
* Polygon meshes
|
|
* Extruded polygon meshes
|
|
|
|
The first two modes draw directly to the screen raster, the texture
|
|
map mode draw textured quads, while the last three draw actual
|
|
geometry.
|
|
|
|
The indivdual modes are encapsulated in their respective class:
|
|
|
|
* BitmapFont
|
|
* PixmapFont
|
|
* TextureFont
|
|
* OutlineFont
|
|
* PolygonFont
|
|
* ExtrdFont
|
|
|
|
However, the protocol for all modes are the same:
|
|
|
|
>>> font = FTGL.PolygonFont("example.ttf")
|
|
>>> font.FaceSize(24)
|
|
True
|
|
>>> font.line_height
|
|
37.51171875
|
|
>>> font.Render("foo")
|
|
|
|
Obviously, you need to set up the OpenGL environment to make it
|
|
useful. Please see the example.py script for a demonstration of
|
|
PyFTGL.
|
|
|
|
|
|
Classes
|
|
-------
|
|
|
|
class BitmapFont()
|
|
class PixmapFont()
|
|
class TextureFont()
|
|
class OutlineFont()
|
|
class PolygonFont()
|
|
class ExtrdFont()
|
|
|
|
Methods defined here:
|
|
|
|
Advance(string)
|
|
Get the advance width for a string.
|
|
|
|
Attach(font_file_path)
|
|
Attach auxilliary file to font e.g font metrics.
|
|
Note: not all font formats implement this function.
|
|
|
|
BBox(string)
|
|
Get the bounding box for a string. Returns tuple.
|
|
|
|
Depth(depth)
|
|
Set the extrusion distance for the font. Only implemented
|
|
by ExtrdFont.
|
|
|
|
FaceSize(size[, res])
|
|
Set the char size for the current face.
|
|
|
|
Render(string)
|
|
Render a string of characters.
|
|
|
|
UseDisplayList(useList)
|
|
Enable or disable the use of Display Lists inside FTGL.
|
|
|
|
__init__(font_file_path)
|
|
|
|
Properties defined here:
|
|
|
|
ascender
|
|
The global ascender height for the face.
|
|
|
|
descender
|
|
The global descender height for the face.
|
|
|
|
line_height
|
|
The line spacing for the font.
|