Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

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

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

merged the new Font-Implementation back here
merged with svn merge https://svn.orxonox.net/orxonox/branches/fontdata . -r8752:HEAD
no conflicts, naturally

File size: 1.9 KB
Line 
1/*!
2 * @file font.h
3 * brief Definition of the FONT-loading class
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.
8 */
9
10#ifndef _FONT_H
11#define _FONT_H
12
13#include "material.h"
14
15#include "font_data.h"
16
17
18//! A class to handle a Font of a certain ttf-File/image-file, Size.
19class Font : public Material /* TODO Material it should be */
20{
21
22public:
23  Font();
24  Font(const std::string& fontFile, unsigned int renderSize);
25  Font(const std::string& imageFile);
26  Font(char** xpmArray);
27  virtual ~Font();
28
29  Font& operator=(const Font& font);
30  /** @brief compare two fonts @param font the comparator, @returns true if they match */
31  bool operator==(const Font& font) const { return this->data == font.data; };
32
33
34  /// LOADING new Fonts
35  bool loadFontFromTTF(const std::string& fontFile, unsigned int renderSize);
36  bool loadFontFromSDL_Surface(SDL_Surface* surface);
37
38  void setStyle(const std::string& renderStyle);
39
40  /** @returns a Pointer to the Array of Glyphs */
41  inline Glyph** getGlyphArray() const { return this->data->getGlyphArray(); };
42  /** @returns the a pointer to the TTF */
43  inline TTF_Font* getTTF() const { return this->data->getTTF(); };
44
45  int getMaxHeight() const;
46  int getMaxAscent() const;
47  int getMaxDescent() const;
48
49  void createAsciiImage(const std::string& fileName, unsigned int size) const;
50
51  void debug() const;
52
53private:
54  void init();
55  void initGlyphs(Uint16 from, Uint16 count);
56  bool getGlyphMetrics(Glyph* glyph, Uint16 character);
57  static void initDefaultFont();
58
59  int findOptimalFastTextureSize();
60  bool createFastTexture();
61
62  bool setTexture(GLuint texture);
63
64
65private:
66  static FontDataPointer    defaultFontData;     //!< a default font, that is used, if other fonts were unable to be loaded.
67
68  FontDataPointer           data;                //!< A Data-Pointer to a Font.
69};
70
71#endif /* _FONT_H */
Note: See TracBrowser for help on using the repository browser.