/* render/text.h This file is part of the Osirion project and is distributed under the terms of the GNU General Public License version 2 */ #ifndef __INCLUDED_RENDER_TEXT_H__ #define __INCLUDED_RENDER_TEXT_H__ #include #include #include "math/color.h" namespace render { class Text { public: static void init(); static void shutdown(); /// assign system colors static void assign_color(const char c, const math::Color &color); /** * @brief draw a single character */ static void draw(const float x, const float y, const char ascii); /** * @brief draw a text string * end-of-characters will be respected */ static void draw(const float x, const float y, const char *text); /** * @brief draw a text string * end-of-characters will be respected */ inline static void draw(const float x, const float y, const std::string & text) { draw(x, y, text.c_str()); } /* * * @brief draw a text stream * If the stream contains multiple lines, each new line will be * drawn at the same x value. The stream is cleared after reading */ //static void draw(float x, float y, std::stringstream & textstream); /// set the font static void setfont(const char *texture, const float width, const float height); /// set the color static void setcolor(const char color); /// current font width static inline float fontwidth() { return text_fontwidth; } /// current font height static inline float fontheight() { return text_fontheight; } enum Color {Black = 0, Red = 1, Green = 2, Yellow = 3, Blue = 4, Cyan = 5, Magenta = 6, White = 7}; static math::Color * base_color[10]; static math::Color * core_color[26]; private: static float text_fontwidth; static float text_fontheight; }; } #endif //__INCLUDED_RENDER_TEXT_H__