52 lines
2.0 KiB
C
52 lines
2.0 KiB
C
|
#ifndef TEXT_FONT_H
|
||
|
#define TEXT_FONT_H
|
||
|
|
||
|
typedef void FontManagerSetCurrentFontProc(int font);
|
||
|
typedef void FontManagerDrawTextProc(unsigned char* buffer, const char* string, int length, int pitch, int color);
|
||
|
typedef int FontManagerGetLineHeightProc();
|
||
|
typedef int FontManagerGetStringWidthProc(const char* string);
|
||
|
typedef int FontManagerGetCharacterWidthProc(int ch);
|
||
|
typedef int FontManagerGetMonospacedStringWidthProc(const char* string);
|
||
|
typedef int FontManagerGetLetterSpacingProc();
|
||
|
typedef int FontManagerGetBufferSizeProc(const char* string);
|
||
|
typedef int FontManagerGetMonospacedCharacterWidth();
|
||
|
|
||
|
typedef struct FontManager {
|
||
|
int minFont;
|
||
|
int maxFont;
|
||
|
FontManagerSetCurrentFontProc* setCurrentProc;
|
||
|
FontManagerDrawTextProc* drawTextProc;
|
||
|
FontManagerGetLineHeightProc* getLineHeightProc;
|
||
|
FontManagerGetStringWidthProc* getStringWidthProc;
|
||
|
FontManagerGetCharacterWidthProc* getCharacterWidthProc;
|
||
|
FontManagerGetMonospacedStringWidthProc* getMonospacedStringWidthProc;
|
||
|
FontManagerGetLetterSpacingProc* getLetterSpacingProc;
|
||
|
FontManagerGetBufferSizeProc* getBufferSizeProc;
|
||
|
FontManagerGetMonospacedCharacterWidth* getMonospacedCharacterWidthProc;
|
||
|
} FontManager;
|
||
|
|
||
|
#define FONT_SHADOW (0x10000)
|
||
|
#define FONT_UNDERLINE (0x20000)
|
||
|
#define FONT_MONO (0x40000)
|
||
|
|
||
|
extern FontManager gTextFontManager;
|
||
|
extern int gCurrentFont;
|
||
|
extern int gFontManagersCount;
|
||
|
extern FontManagerDrawTextProc* fontDrawText;
|
||
|
extern FontManagerGetLineHeightProc* fontGetLineHeight;
|
||
|
extern FontManagerGetStringWidthProc* fontGetStringWidth;
|
||
|
extern FontManagerGetCharacterWidthProc* fontGetCharacterWidth;
|
||
|
extern FontManagerGetMonospacedStringWidthProc* fontGetMonospacedStringWidth;
|
||
|
extern FontManagerGetLetterSpacingProc* fontGetLetterSpacing;
|
||
|
extern FontManagerGetBufferSizeProc* fontGetBufferSize;
|
||
|
extern FontManagerGetMonospacedCharacterWidth* fontGetMonospacedCharacterWidth;
|
||
|
|
||
|
int textFontsInit();
|
||
|
void textFontsExit();
|
||
|
int textFontLoad(int font);
|
||
|
int fontManagerAdd(FontManager* fontManager);
|
||
|
int fontGetCurrent();
|
||
|
void fontSetCurrent(int font);
|
||
|
|
||
|
#endif /* TEXT_FONT_H */
|