-----------------------------------< SFont >------------------------------------
License: GPL or LGPL (at your choice)
Author: Karl Bartel <karlb@gmx.net>
WWW: http://www.linux-games.com
- Usage
-
- Load a font and place it in an SDL_Surface *. If your are using the SDL_image library you can do this with Font = IMG_Load("filename");
- Initialize the font by using InitFont(surface *Font);
- Now you can use the font in you SDL program. Please take a look at SFont.h to get info about the funtions.
- FileFormat
The font file can be any type image file. The characters start with ASCII symbol #33. They are seperated by pink(255,0,255) lines at the top of the image. The space between these lines is the width of the caracter. Just take a look at the font, and you'll be able to understand what I tried to explain here. The easiest way to create a new font is to use the GIMP's Logo function. Use the following string as text (ASCII 33-127 with escape sequences and spaces between the letters): ! \" # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \\ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~
Example for the font file format:
____ _____ _____ _____ <- This is the pink line at the top
# ##### ####
# # # # #
# # # # #
# # ##### #
##### # # #
# # # # #
# # ##### ####
|----|
Width of the character
|----------|
Part of the font surface that is beeing blitted
- ChangeLog
1.71
really fixed serious bug
1.7
removed one warning by adding #include <stdlib.h> added license info at the top of sfont.c/.h fixed serious bug (thanks Sulaiman)
1.6
added #ifndef SFONT_H etc to SFont.h to allow it to be
included multiple times with causing errors To handle larger charsets (>127 chars) the type of
the 'text[i]' variable has been changed in
PutString2 and TextWidth2
1.5
fixed a bug in xcenteredstring2
added return on error in GetPixel in SoFont.cpp
SFont can be used either under the GPL or LGPL
unicode state is restored at the end of SFont_Input
added extern "C" defines for usage in C++ programs
Added lock and unlock for hardware surfaces
Added blinking cursor to SFont_Input
Added check for ASCII<33 in SFont_Input
TextWidth returned a too high value -> fixed
1.4
Added support for multiple fonts in one program Add a missing "*" in the SFont.h file Proper '\0' at the end of stings produced by SFont_Input Fixed problems in SFont_Input, which were creating '\b' in the string Fixed two other bugs in SFont_Input Added the SFontViewer adn new test programs
1.3
Fixed three wrong interpretations of the file format
- wrong division (float had to be used)
- detection of right ends of pink lines (were one pixel too far right)
- blit destination (all blits were too far right) support for non-alpha mapped fonts some fonts updated
1.2
added XCenteredString
1.1
renamed font.c to SFont.c and font.h to SFont.h
better Makefile
1.0
Added the Input function
Added a check whether the Font has been loaded
0.9
better Makefile for the example (using sdl-config)
better Neon Font
0.8
First Release
If you have any Questions please write a mail!
-- Karl
