[Top] | [Contents] | [Index] | [ ? ] |
1. Overview The README from the SDL_ttf distribution
2. Getting Started Using SDL_ttf
3. Functions Functions supported by the SDL_ttf API 4. Types Types used with the SDL_ttf API 5. Defines Defined values/macros in the SDL_ttf API
6. Glossary Terms used in this document
Index Index of selected words
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
I am currently, as I write this document, a programmer for Raytheon. There I do all sorts of communications, network, GUI, and other general programming tasks in C/C++ on the Solaris and sometimes Linux Operating Systems. I've used SDL_ttf as one of the many methods of putting text on my SDL applications, and use it in my own SDL GUI code as well. While this document doesn't explain how and where to get fonts to use, it will explain how to use them with SDL_ttf.
Feel free to contact me: jcatki@jcatki.no-ip.org
The latest version of this library is available from:
SDL_ttf Homepage
I am also usually on IRC at irc.freenode.net in the #SDL channel as LIM
This is the README in the SDL_ttf source archive.
This library is a wrapper around the excellent FreeType 1.2 library,
available at:
Freetype Homepage
WARNING: There may be patent issues with using the FreeType library. Check the FreeType website for up-to-date details. This library allows you to use TrueType fonts to render text in SDL applications. To make the library, first install the FreeType library, then type 'make' to build the SDL truetype library and 'make all' to build the demo application. Be careful when including fonts with your application, as many of them are copyrighted. The Microsoft fonts, for example, are not freely redistributable and even the free "web" fonts they provide are only redistributable in their special executable installer form (May 1998). There are plenty of freeware and shareware fonts available on the Internet though, and may suit your purposes. Please see the file "COPYING" for license information for this library. Enjoy! -Sam Lantinga slouken@devolution.com (5/1/98) |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
This assumes you have gotten SDL_ttf and installed it on your system. SDL_ttf has an INSTALL document in the source distribution to help you get it compiled and installed.
Generally, installation consists of:
|
SDL_ttf supports loading fonts from TrueType font files, normally ending in .ttf, though some .fon files are also valid for use. Note that most fonts are copyrighted, check the license on the font before you use and redistribute.
You may also want to look at some demonstration code which may be downloaded from:
http://jcatki.no-ip.org/SDL_ttf/
2.1 Includes The include files to use for SDL_ttf 2.2 Compiling Using the SDL_ttf library and header file.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
To use SDL_ttf functions in a C/C++ source code file, you must use the SDL_ttf.h include file:
#include "SDL_ttf.h"
|
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
To link with SDL_ttf you should use sdl-config to get the required SDL
compilation options. After that, compiling with SDL_ttf is quite easy.
Note: Some systems may not have the SDL_ttf library and include file in the same place as the SDL library and includes are located, in that case you will need to add more -I and -L paths to these command lines.
Simple Example for compiling an object file:
Simple Example for compiling an object file:
|
Now myprogram
is ready to run.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
These are the functions in the SDL_ttf API.
3.1 General API activation, info, and error handling 3.2 Management Loading fonts from files or memory 3.3 Attributes Getting and Setting font attributes 3.4 Render Drawing strings and glyphs with a font
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
These functions are useful, as they are the only/best ways to work with SDL_ttf.
Info
Activation
3.1.1 TTF_Linked_Version Get version number
Errors
3.1.2 TTF_Init Initialize API 3.1.3 TTF_WasInit Query API initialization status 3.1.4 TTF_Quit Cleanup API
3.1.5 TTF_SetError Set the current error string 3.1.6 TTF_GetError Get the current error string
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
const SDL_version *TTF_Linked_Version()
void TTF_VERSION(SDL_version *compile_version)
This works similar to SDL_Linked_Version
and SDL_VERSION.
Using these you can compare the runtime version to the version that you compiled with.
|
See Also:
3.1.2 TTF_Init
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
int TTF_Init()
Initialize the truetype font API.
This must be called before using other functions in this library, excepting TTF_WasInit
.
SDL does not have to be initialized before this call.
Returns: 0 on success, -1 on errors
|
See Also:
3.1.4 TTF_Quit,
3.1.3 TTF_WasInit
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
int TTF_WasInit()
Query the initilization status of the truetype font API.
You may, of course, use this before TTF_Init
to avoid initilizing twice in a row.
Or use this to determine if you need to call TTF_Quit
.
|
See Also:
3.1.2 TTF_Init,
3.1.4 TTF_Quit
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
void TTF_Quit()
Shutdown and cleanup the truetype font API.
After calling this the SDL_ttf functions should not be used, excepting TTF_WasInit
.
You may, of course, use TTF_Init
to use the functionality again.
|
See Also:
3.1.2 TTF_Init,
3.1.3 TTF_WasInit
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
void TTF_SetError(const char *fmt, ...)
This is the same as SDL_SetError
, which sets the error string which may be fetched with TTF_GetError
(or SDL_GetError
).
This functions acts like printf, except that it is limited to SDL_ERRBUFIZE(1024) chars in length. It only accepts the following format types: %s, %d, %f, %p
. No variations are supported, like %.2f
would not work. For any more specifics read the SDL docs.
|
See Also:
3.1.6 TTF_GetError
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
char *TTF_GetError()
This is the same as SDL_GetError
, which returns the last error set as a string
which you may use to tell the user what happened when an error status has been returned
from an SDL_ttf function call.
Returns: a char pointer (string) containing a human readable version or the reason for the last error that occured.
|
See Also:
3.1.5 TTF_SetError
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
These functions deal with loading and freeing a TTF_Font.
Loading
Freeing
3.2.1 TTF_OpenFont From a file 3.2.2 TTF_OpenFontRW Using RWops 3.2.3 TTF_OpenFontIndex From a file, with an index 3.2.4 TTF_OpenFontIndexRW From memory, with an index
3.2.5 TTF_CloseFont Free a loaded font
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
TTF_Font *TTF_OpenFont(const char *file, int ptsize)
Load file for use as a font, at ptsize size. This is actually TTF_OpenFontIndex(file, ptsize, 0)
. This can load TTF and FON files.
Returns: a pointer to the font as a TTF_Font
. NULL is returned on errors.
|
See Also:
3.2.3 TTF_OpenFontIndex,
3.2.2 TTF_OpenFontRW,
3.2.5 TTF_CloseFont
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
TTF_Font *TTF_OpenFontRW(SDL_RWops *src, int freesrc, int ptsize)
Load src for use as a font, at ptsize size.
This is actually TTF_OpenFontIndexRW(src, freesrc, ptsize, 0)
This can load TTF and FON formats.
Using SDL_RWops
is not covered here, but they enable you to load from almost any source.
NOTE: src is not checked for NULL, so be careful.
Returns: a pointer to the font as a TTF_Font
. NULL is returned on errors.
|
SDL_RWFromFile
's returned pointer.
See Also:
3.2.4 TTF_OpenFontIndexRW,
3.2.1 TTF_OpenFont,
3.2.5 TTF_CloseFont
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
TTF_Font *TTF_OpenFontIndex(const char *file, int ptsize, long index)
Load file, face index, for use as a font, at ptsize size. This is actually TTF_OpenFontIndexRW(SDL_RWFromFile(file), ptsize, index)
, but checks that the RWops it creates is not NULL. This can load TTF and FON files.
Returns: a pointer to the font as a TTF_Font
. NULL is returned on errors.
|
See Also:
3.2.4 TTF_OpenFontIndexRW,
3.2.1 TTF_OpenFont,
3.2.5 TTF_CloseFont
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
TTF_Font *TTF_OpenFontIndexRW(SDL_RWops *src, int freesrc, int ptsize, long index)
Load src, face index, for use as a font, at ptsize size.
This can load TTF and FON formats.
Using SDL_RWops
is not covered here, but they enable you to load from almost any source.
NOTE: src is not checked for NULL, so be careful.
Returns: a pointer to the font as a TTF_Font
. NULL is returned on errors.
|
SDL_RWFromFile
's returned pointer.
See Also:
3.2.3 TTF_OpenFontIndex,
3.2.2 TTF_OpenFontRW,
3.2.5 TTF_CloseFont
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
void TTF_CloseFont(TTF_Font *font)
Free the memory used by font, and free font itself as well. Do not use font after this without loading a new font to it.
|
See Also:
3.2.1 TTF_OpenFont,
3.2.2 TTF_OpenFontRW,
3.2.3 TTF_OpenFontIndex,
3.2.4 TTF_OpenFontIndexRW
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
These functions deal with TTF_Font, and global, attributes.
Global
Font Style
3.3.1 TTF_ByteSwappedUNICODE Set default UNICODE byte swapping mode
TTF_GetFontStyle:: Get font render style
TTF_SetFontStyle:: Set font render style
Font
TTF_FontHeight:: Get font max height
TTF_FontAscent:: Get font max ascent
TTF_FontDescent:: Get font min descent
TTF_FontLineSkip:: Get font recommended line spacing
Face
TTF_FontFaces:: Get the number of faces in a font
TTF_FontFaceIsFixedWidth:: Get whether font is monospaced or not
TTF_FontFaceFamilyName:: Get current font face family name string
TTF_FontFaceStyleName:: Get current font face style name string
Glyph
TTF_GlyphMetrics:: Get individual font glyph metrics
Text
TTF_SizeText:: Get size of LATIN1 text string as would be rendered
TTF_SizeUTF8:: Get size of UTF8 text string as would be rendered
TTF_SizeUNICODE:: Get size of UNICODE text string as would be rendered
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
void TTF_ByteSwappedUNICODE(int swapped)
This function tells SDL_ttf whether UNICODE (Uint16 per character) text is generally byteswapped. A UNICODE_BOM_NATIVE or UNICODE_BOM_SWAPPED character in a string will temporarily override this setting for the remainder of that string, however this setting will be restored for the next one. The default mode is non-swapped, native endianess of the CPU.
|
See Also:
5. Defines
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
These functions render text using a TTF_Font
.
There are three modes of rendering:
Solid
3.4.1 TTF_RenderText_Solid Draw
TTF_RenderUTF8_Solid:: Draw
TTF_RenderUNICODE_Solid:: Draw
TTF_RenderGlyph_Solid:: Draw
Shaded
TTF_RenderText_Shaded:: Draw
TTF_RenderUTF8_Shaded:: Draw
TTF_RenderUNICODE_Shaded:: Draw
TTF_RenderGlyph_Shaded:: Draw
Blended
TTF_RenderText_Blended:: Draw
TTF_RenderUTF8_Blended:: Draw
TTF_RenderUNICODE_Blended:: Draw
TTF_RenderGlyph_Blended:: Draw
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
void TTF_RenderText_Solid(TTF_Font *font,
const char *text, SDL_Color fg)
Render the text using font with fg color onto a new surface, using the Solid mode (see section Solid).
Returns: a pointer to a new SDL_Surface. NULL is returned on errors.
|
See Also:
TTF_SizeText,
TTF_RenderUTF8_Solid,
TTF_RenderUNICODE_Solid,
TTF_RenderGlyph_Solid,
TTF_RenderText_Shaded,
TTF_RenderText_Blended
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
These types are defined and used by the SDL_ttf API.
4.1 TTF_Font The opaque holder of a loaded font
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
|
The opaque holder of a loaded font. You should always be using a pointer of this type, as in TTF_Font*
,
and not just plain TTF_Font
.
This stores the font data in a struct that is exposed only by using the API functions to get information. You should not try to access the struct data directly, since the struct may change in different versions of the API, and thus your program would be unreliable.
See Also:
3.2 Management
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
2
0
7
0xFEFF
0xFFFE
0x00
0x01
0x02
0x04
See Also:
6. Glossary,
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Byte Order
Latin-1 is an extension of ASCII, where ASCII only defines characters 0 through 127. Latin-1 continues and adds more common international symbols to define through character 255. |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Jump to: | A B L M R S T U |
---|
Jump to: | A B L M R S T U |
---|
[Top] | [Contents] | [Index] | [ ? ] |
[Top] | [Contents] | [Index] | [ ? ] |
1. Overview
2. Getting Started
3. Functions
4. Types
5. Defines
6. Glossary
Index
[Top] | [Contents] | [Index] | [ ? ] |
Button | Name | Go to | From 1.2.3 go to |
---|---|---|---|
[ < ] | Back | previous section in reading order | 1.2.2 |
[ > ] | Forward | next section in reading order | 1.2.4 |
[ << ] | FastBack | previous or up-and-previous section | 1.1 |
[ Up ] | Up | up section | 1.2 |
[ >> ] | FastForward | next or up-and-next section | 1.3 |
[Top] | Top | cover (top) of document | |
[Contents] | Contents | table of contents | |
[Index] | Index | concept index | |
[ ? ] | About | this page |