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.
|