00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00021 
00022 
00023 
00024 
00025 #ifndef TEDDY__GRAPHICS__FONT_H
00026 #define TEDDY__GRAPHICS__FONT_H
00027 
00028 
00029 #include "Teddy/Maths/Vector2.h"
00030 
00031 
00032 namespace Teddy    {
00033 namespace Graphics {
00034 
00035 
00036 class Texture;
00037 class View;
00038 
00039 
00051 class Font {
00052 public:
00053     Font( const char *fname, const int mode=0 ); 
00054     Font();  
00055 
00056     void drawString( const Teddy::Maths::Vector2 &pos, const char *str, View *v  );
00057     int  getWidth  ();
00058     int  getHeight ();
00059 
00060     static Font *default_font;
00061     static Font  dummy_font;
00062 
00063 public:
00064     static const int MODE_NORMAL;
00065     static const int MODE_NO_BLEND;
00066 
00067 private:
00068     Texture               *texture;     
00069     Teddy::Maths::Vector2  tx   [256];  
00070     Teddy::Maths::Vector2  tsize[4];
00071     Teddy::Maths::Vector2  psize[4];
00072     Teddy::Maths::Vector2  pos;
00073     int      mode;
00074     int      cw;       
00075     int      ch;       
00076     float    tw;       
00077     float    th;       
00078 };
00079 
00080 
00081 };  
00082 };  
00083 
00084 
00085 #endif  //  TEDDY__GRAPHICS__FONT_H
00086