You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
55 lines
1.8 KiB
55 lines
1.8 KiB
//========= Copyright Valve Corporation, All rights reserved. ============// |
|
// |
|
// Baked Bitmap fonts |
|
// |
|
//=========================================================================== |
|
|
|
#ifndef _BITMAPFONT_H_ |
|
#define _BITMAPFONT_H_ |
|
|
|
#include "vguifont.h" |
|
#include "BitmapFontFile.h" |
|
|
|
class ITexture; |
|
|
|
//----------------------------------------------------------------------------- |
|
// Purpose: encapsulates a windows font |
|
//----------------------------------------------------------------------------- |
|
class CBitmapFont : public font_t |
|
{ |
|
public: |
|
CBitmapFont(); |
|
virtual ~CBitmapFont(); |
|
|
|
// creates the font. returns false if the compiled font does not exist. |
|
virtual bool Create(const char *windowsFontName, float scalex, float scaley, int flags); |
|
|
|
// returns true if the font is equivalent to that specified |
|
virtual bool IsEqualTo(const char *windowsFontName, float scalex, float scaley, int flags); |
|
|
|
// gets the abc widths for a character |
|
virtual void GetCharABCWidths(int ch, int &a, int &b, int &c); |
|
|
|
// writes the char into the specified 32bpp texture. We're overloading this because |
|
// we derive off font_t, and the implementation there doesn't work for bitmap fonts. |
|
virtual void GetCharRGBA( wchar_t ch, int rgbaWide, int rgbaTall, unsigned char *prgba ); |
|
|
|
// gets the width of ch given its position around before and after chars |
|
virtual void GetKernedCharWidth( wchar_t ch, wchar_t chBefore, wchar_t chAfter, float &wide, float &abcA, float &abcC ); |
|
|
|
// gets the texture coords in the compiled texture page |
|
void GetCharCoords( int ch, float *left, float *top, float *right, float *bottom ); |
|
|
|
// sets the scale of the font. |
|
void SetScale( float sx, float sy ); |
|
|
|
// gets the compiled texture page |
|
ITexture *GetTexturePage(); |
|
|
|
private: |
|
int m_bitmapFontHandle; |
|
float m_scalex; |
|
float m_scaley; |
|
}; |
|
|
|
#endif // _BITMAPFONT_H
|
|
|