Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/trunk/src/lib/graphics/text_engine/text.h @ 7233

Last change on this file since 7233 was 7221, checked in by bensch, 19 years ago

orxonox/trunk: merged the std-branche back, it runs on windows and Linux

svn merge https://svn.orxonox.net/orxonox/branches/std . -r7202:HEAD

File size: 2.6 KB
RevLine 
[4838]1/*!
[5343]2 * @file text.h
3 * @brief Definition of a text Class, that is able to render text.
[3245]4*/
[1853]5
[5343]6#ifndef _TEXT_H
7#define _TEXT_H
[1853]8
[5343]9#include "element_2d.h"
[1853]10
[5343]11#include "glincl.h"
12
13#define  TEXT_ALIGN_LEFT             E2D_ALIGN_LEFT
14#define  TEXT_ALIGN_RIGHT            E2D_ALIGN_RIGHT
15#define  TEXT_ALIGN_CENTER           E2D_ALIGN_CENTER
16#define  TEXT_ALIGN_SCREEN_CENTER    E2D_ALIGN_SCREEN_CENTER
17#define  TEXT_DEFAULT_COLOR          Vector(1.0, 1.0, 1.0)      //!< the default Color (white)
18#define  TEXT_DEFAULT_BLENDING       1.0f                       //!< the default blending of the text, (no blending at all)
19
[5421]20#define  TEXT_DEFAULT_ALIGNMENT      TEXT_ALIGN_LEFT            //!< default alignment
21#define  TEXT_DEFAULT_SIZE           20                         //!< default size of the Text
[5343]22
23
[4838]24// FORWARD DECLARATION
[5343]25class Font;
[5427]26struct SDL_Surface;
[3543]27
[5343]28//! A Struct to handel Texture Coordinates for quads
29struct TexCoord
30{
31  float    minU;              //!< The minimum U-Coordinate
32  float    maxU;              //!< The maximum U-Coordinate
33  float    minV;              //!< The minimum V-Coordinate
34  float    maxV;              //!< The maximum V-Coordinate
35};
[1853]36
[5343]37//! Represents one textElement.
38class Text : public Element2D
39{
40  public:
[7221]41    Text(const std::string& fontFile = "", unsigned int fontSize = TEXT_DEFAULT_SIZE);
[6981]42    virtual ~Text();
[5343]43    void init();
[3245]44
[7221]45    void setFont(const std::string& fontFile, unsigned int renderSize);
[5345]46
[7221]47    void setText(const std::string& text);
[5367]48
[5343]49    /** @returns the String this Text displays */
[7221]50    inline const std::string& getText() const { return this->text; };
[5343]51    /** @param blending the blending intensity to set (between 0.0 and 1.0) */
52    inline void setBlending(float blending) { this->blending = blending; };
53    /** sets the Color of the Text to render (values in [0-1]) @param r red @param g green @param b blue */
[5369]54    void setColor(float r, float g, float b) { this->color = Vector(r, g, b); };
[5367]55    /** sets the Size of the Font */
[5768]56    void setSize(float size) { this->setSizeY2D(size); };
[5369]57    /** @returns the Size of the Text */
[5378]58//    void getSize(float &x, float& y) const { return this->size; };
[5343]59
60    virtual void draw() const;
61
62    void debug() const;
63
64  // helpers.
65    static GLuint loadTexture(SDL_Surface* surface, TexCoord* texCoord);
66    static int powerOfTwo(int input);
67
68  private:
69    Font*             font;           //!< Font of this text
70
[7221]71    std::string       text;           //!< The text to display
[5343]72    Vector            color;          //!< The color of the font.
73    float             blending;       //!< The blending intensity.
[1853]74};
75
[5343]76#endif /* _TEXT_H */
Note: See TracBrowser for help on using the repository browser.