| [3370] | 1 | /*  SFont: a simple font-library that uses special bitmaps as fonts | 
|---|
 | 2 |     Copyright (C) 2003 Karl Bartel | 
|---|
 | 3 |  | 
|---|
 | 4 |     License: GPL or LGPL (at your choice) | 
|---|
 | 5 |     WWW: http://www.linux-games.com/sfont/ | 
|---|
 | 6 |  | 
|---|
 | 7 |     This program is free software; you can redistribute it and/or modify         | 
|---|
 | 8 |     it under the terms of the GNU General Public License as published by         | 
|---|
 | 9 |     the Free Software Foundation; either version 2 of the License, or            | 
|---|
 | 10 |     (at your option) any later version.                                          | 
|---|
 | 11 |                                                                                  | 
|---|
 | 12 |     This program is distributed in the hope that it will be useful,        | 
|---|
 | 13 |     but WITHOUT ANY WARRANTY; without even the implied warranty of               | 
|---|
 | 14 |     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the                | 
|---|
 | 15 |     GNU General Public License for more details.                 | 
|---|
 | 16 |                                                                                 | 
|---|
 | 17 |     You should have received a copy of the GNU General Public License            | 
|---|
 | 18 |     along with this program; if not, write to the Free Software                  | 
|---|
 | 19 |     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA    | 
|---|
 | 20 |                                                                                  | 
|---|
 | 21 |     Karl Bartel | 
|---|
 | 22 |     Cecilienstr. 14                                                     | 
|---|
 | 23 |     12307 Berlin | 
|---|
 | 24 |     GERMANY | 
|---|
 | 25 |     karlb@gmx.net                                                       | 
|---|
 | 26 | */                                                                             | 
|---|
 | 27 |  | 
|---|
 | 28 | /************************************************************************  | 
|---|
 | 29 | *    SFONT - SDL Font Library by Karl Bartel <karlb@gmx.net>            * | 
|---|
 | 30 | *                                                                       * | 
|---|
 | 31 | *  All functions are explained below. For further information, take a   * | 
|---|
 | 32 | *  look at the example files, the links at the SFont web site, or       * | 
|---|
 | 33 | *  contact me, if you problem isn' addressed anywhere.                  * | 
|---|
 | 34 | *                                                                       * | 
|---|
 | 35 | ************************************************************************/ | 
|---|
 | 36 | #ifndef SFONT_H | 
|---|
 | 37 | #define SFONT_H | 
|---|
 | 38 |  | 
|---|
 | 39 | #include <SDL.h> | 
|---|
 | 40 |  | 
|---|
 | 41 | #ifdef __cplusplus  | 
|---|
 | 42 | extern "C" { | 
|---|
 | 43 | #endif | 
|---|
 | 44 |  | 
|---|
 | 45 | // Delcare one variable of this type for each font you are using. | 
|---|
 | 46 | // To load the fonts, load the font image into YourFont->Surface | 
|---|
 | 47 | // and call InitFont( YourFont ); | 
|---|
 | 48 | typedef struct { | 
|---|
 | 49 |         SDL_Surface *Surface;    | 
|---|
 | 50 |         int CharPos[512]; | 
|---|
 | 51 |         int MaxPos; | 
|---|
 | 52 | } SFont_Font; | 
|---|
 | 53 |  | 
|---|
 | 54 | // Initializes the font | 
|---|
 | 55 | // Font: this contains the suface with the font. | 
|---|
 | 56 | //       The Surface must be loaded before calling this function | 
|---|
 | 57 | SFont_Font* SFont_InitFont (SDL_Surface *Font); | 
|---|
 | 58 |  | 
|---|
 | 59 | // Frees the font | 
|---|
 | 60 | // Font: The font to free | 
|---|
 | 61 | //       The font must be loaded before using this function. | 
|---|
 | 62 | void SFont_FreeFont(SFont_Font* Font); | 
|---|
 | 63 |  | 
|---|
 | 64 | // Blits a string to a surface | 
|---|
 | 65 | // Destination: the suface you want to blit to | 
|---|
 | 66 | // text: a string containing the text you want to blit. | 
|---|
 | 67 | void SFont_Write(SDL_Surface *Surface, const SFont_Font *Font, int x, int y, | 
|---|
 | 68 |                                  const char *text); | 
|---|
 | 69 |  | 
|---|
 | 70 | // Returns the width of "text" in pixels | 
|---|
 | 71 | int SFont_TextWidth(const SFont_Font* Font, const char *text); | 
|---|
 | 72 | // Returns the height of "text" in pixels (which is always equal to Font->Surface->h) | 
|---|
 | 73 | int SFont_TextHeight(const SFont_Font* Font); | 
|---|
 | 74 |  | 
|---|
 | 75 | // Blits a string to Surface with centered x position | 
|---|
 | 76 | void SFont_WriteCenter(SDL_Surface *Surface, const SFont_Font* Font, int y, | 
|---|
 | 77 |                                            const char *text); | 
|---|
 | 78 |  | 
|---|
 | 79 | #ifdef __cplusplus | 
|---|
 | 80 | } | 
|---|
 | 81 | #endif | 
|---|
 | 82 |  | 
|---|
 | 83 | #endif /* SFONT_H */ | 
|---|