00001
00002
00003
00004
00005
00006 #ifndef TILEFONT_H
00007 #define TILEFONT_H
00008
00009 #include "externs.h"
00010 #include "tilebuf.h"
00011 #include "tiletex.h"
00012
00013 extern const VColour term_colours[MAX_TERM_COLOUR];
00014
00015 class FontBuffer;
00016 struct VColour;
00017 class formatted_string;
00018
00019 class FontWrapper
00020 {
00021 public:
00022
00023
00024
00025 static FontWrapper *create();
00026
00027 virtual ~FontWrapper() {}
00028
00029
00030 virtual bool load_font(const char *font_name, unsigned int font_size,
00031 bool outline) = 0;
00032
00033
00034 virtual void render_textblock(unsigned int x, unsigned int y,
00035 unsigned char *chars, unsigned char *colours,
00036 unsigned int width, unsigned int height,
00037 bool drop_shadow = false) = 0;
00038
00039
00040 virtual void render_string(unsigned int x, unsigned int y,
00041 const char *text, const coord_def &min_pos,
00042 const coord_def &max_pos,
00043 unsigned char font_colour,
00044 bool drop_shadow = false,
00045 unsigned char box_alpha = 0,
00046 unsigned char box_colour = 0,
00047 unsigned int outline = 0,
00048 bool tooltip = false) = 0;
00049
00050
00051 virtual void store(FontBuffer &buf, float &x, float &y,
00052 const std::string &s, const VColour &c) = 0;
00053 virtual void store(FontBuffer &buf, float &x, float &y,
00054 const formatted_string &fs) = 0;
00055 virtual void store(FontBuffer &buf, float &x, float &y, unsigned char c,
00056 const VColour &col) = 0;
00057
00058 virtual unsigned int char_width() const = 0;
00059 virtual unsigned int char_height() const = 0;
00060
00061 virtual unsigned int string_width(const char *text) const = 0;
00062 virtual unsigned int string_width(const formatted_string &str) const = 0;
00063 virtual unsigned int string_height(const char *text) const = 0;
00064 virtual unsigned int string_height(const formatted_string &str) const = 0;
00065
00066
00067 virtual formatted_string split(const formatted_string &str,
00068 unsigned int max_width,
00069 unsigned int max_height) = 0;
00070
00071 virtual const GenericTexture *font_tex() const = 0;
00072 };
00073
00074 #endif