00001
00016 #ifndef CUI_FIXEDBMFONT_H
00017 #define CUI_FIXEDBMFONT_H
00018
00019 #include "UI_Lib.h"
00020 #include "UI_types.h"
00021 #include "IUI_Renderer.h"
00022 #include "IUI_Font.h"
00023
00025
00029 class GLGUI_ENTRY CUI_FixedBMFont : public IUI_Font
00030 {
00031 public:
00033
00042 CUI_FixedBMFont( IUI_Shader *shader = NULL,
00043 int charx = 16, int chary = 24, int xres = 256, int yres = 256,
00044 int startoffset = 0 );
00045
00047 virtual ~CUI_FixedBMFont();
00048
00050 virtual bool CalculateLookupTable( );
00051
00053
00058 virtual bool RenderText( double dtime, IUI_Renderer *renderer, char *text );
00059
00061
00064 virtual bool RenderText( double dtime, IUI_Renderer *renderer, char *text, unsigned int columns, unsigned int rows,
00065 unsigned int startColumn, unsigned int startRow, bool wrap,
00066 unsigned int &textColumns, unsigned int &textRows,
00067 bool invert = false,
00068 unsigned int cursorPosition = 0, unsigned short cursorType = UI_CURSOR_NONE
00069 );
00070
00072 virtual bool Count( char *text, unsigned int columns, unsigned int rows,
00073 bool wrap, unsigned int &textColumns, unsigned int &textRows );
00074
00076 virtual bool SetShader( IUI_Shader *shader )
00077 { m_shader = shader; CalculateLookupTable(); return false; }
00078
00080 virtual bool SetCharSize( int charx, int chary )
00081 { m_charx = charx; m_chary = chary; CalculateLookupTable(); return false; }
00082
00084 virtual bool SetBitmapResolution( int resx, int resy )
00085 { m_resx = resx; m_resy = resy; CalculateLookupTable(); return false; }
00086
00088 virtual bool SetCharPerRow( int charperrow )
00089 { m_charperrow = charperrow; CalculateLookupTable(); return false; }
00090
00092 virtual bool SetOffset( int offset )
00093 { m_startoffset = offset; CalculateLookupTable(); return false; }
00094
00095 protected:
00096
00098 IUI_Shader *m_shader;
00099
00101 int m_charx;
00103 int m_chary;
00105 int m_resx;
00107 int m_resy;
00109 int m_charperrow;
00110
00112 int m_startoffset;
00113
00115 v4_f *m_textureTable;
00116
00117 };
00118
00119 #endif