Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/trunk/src/lib/graphics/text_engine/font.h @ 8758

Last change on this file since 8758 was 8751, checked in by bensch, 18 years ago

orxonox/trunk: Preparing for FONT-DATA

File size: 1.7 KB
RevLine 
[4838]1/*!
[5343]2 * @file font.h
3 * brief Definition of the FONT-loading class
[5344]4 *
5 * !! IMPORTANT !! When using ttf fonts clear the license issues prior to
6 * adding them to orxonox. This is really important, because we do not want
7 * to offend anyone.
[5343]8 */
[1853]9
[5343]10#ifndef _FONT_H
11#define _FONT_H
[1853]12
[5768]13#include "texture.h"
[1853]14
[8751]15#include "font_data.h"
[5343]16
17
[5347]18//! A class to handle a Font of a certain ttf-File/image-file, Size.
[5768]19class Font : public Texture
[5343]20{
[3245]21
[8751]22public:
23  Font(const std::string& fontFile,
24       unsigned int renderSize);
25  Font(const std::string& imageFile);
26  Font(char** xpmArray);
27  virtual ~Font();
28
[5768]29  //  font
[8751]30  bool loadFontFromTTF(const std::string& fontFile);
31  bool loadFontFromSDL_Surface(SDL_Surface* surface);
[5343]32
[8751]33  void setStyle(const std::string& renderStyle);
[5343]34
[8751]35  /** @returns a Pointer to the Array of Glyphs */
36  inline Glyph** getGlyphArray() const { return this->data->getGlyphArray(); };
37  /** @returns the a pointer to the TTF */
38  inline TTF_Font* getTTF() const { return this->data->getTTF(); };
[5343]39
[8751]40  int getMaxHeight() const;
41  int getMaxAscent() const;
42  int getMaxDescent() const;
[7450]43
[8751]44  /** @returns the default Font */
45  inline static Font* getDefaultFont() { if (Font::defaultFont == NULL) initDefaultFont(); return Font::defaultFont; };
[5768]46
[8751]47  void createAsciiImage(const std::string& fileName, unsigned int size) const;
48  static void initDefaultFont();
49  static void removeDefaultFont();
[5343]50
51
[8751]52private:
53  void init();
54  bool getGlyphMetrics(Glyph* glyph, Uint16 character);
[5343]55
[8751]56  bool createFastTexture();
[5343]57
[8751]58  void initGlyphs(Uint16 from, Uint16 count);
59  int findOptimalFastTextureSize();
[5343]60
[8751]61  void debug();
[5343]62
[8751]63private:
64  static Font*  defaultFont;         //!< a default font, that is used, if other fonts were unable to be loaded.
65
66  fontDataPointer data;
[1853]67};
68
[5343]69#endif /* _FONT_H */
Note: See TracBrowser for help on using the repository browser.