00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 #ifndef FLFONT_H
00014 #define FLFONT_H
00015
00016 #include "flGlobal.h"
00017
00018 #if FL_FONT != 0
00019
00020 #if FL_TEXTURE != 0
00021 #include "flTexture.h"
00022 #endif
00023
00024 #ifdef __cplusplus
00025 extern "C" {
00026 #endif
00027
00028 #define FONT_TYPE_NONE 0
00029 #define FONT_TYPE_TEXTURE 1
00030 #define FONT_TYPE_DEBUG 2
00031 #define FONT_TYPE_TEXTURE_MONO 3
00032
00033 typedef struct {
00034 u8 fontType;
00035 void* fontData;
00036 int fontHSpace;
00037 int fontVSpace;
00038 u32 fontColor;
00039 u32 fontBackColor;
00040 bool fontFixedWidth;
00041 bool fontDataGlobal;
00042 } Font;
00043
00044 extern Font* fontDefault;
00045
00046 extern void fontInit();
00047 extern Font* fontLoad(char* inPath);
00048 extern bool fontSave(char* inPath, Font* inFont);
00049 #if FL_TEXTURE != 0
00050 extern Font* fontCreateTexture(Texture* inTex, int inHSpace, int inVSpace, u32 inColor);
00051 #endif
00052 extern Font* fontCreateDebug(int inHSpace, int inVSpace, u32 inColor);
00053 #if FL_GRAPHICS != 0
00054 extern bool fontCreateDebugTex();
00055 extern void fontDebugSetColor(u32 inColor, u32 inBackColor);
00056 #endif
00057 extern void fontFree(Font* inFont);
00058
00059 extern int fontHeight(Font* inFont);
00060 extern int fontCharWidth(Font* inFont, char inChar);
00061 extern int fontStringWidth(Font* inFont, char* inString);
00062 extern int fontStringHeight(Font* inFont, char* inString);
00063
00064 extern bool fontDraw2dChar(int inX, int inY, Font* inFont, char inChar);
00065 extern void fontDraw2dString(int inX, int inY, Font* inFont, char* inString);
00066 extern void fontDraw2dStringCenter(int inY, Font* inFont, char* inString);
00067
00068 #define fontDraw2dStringFromRight(inX, inY, inFont, inString) fontDraw2dString((inX - fontStringWidth(inFont, inString)), inY, inFont, inString);
00069
00070 #ifdef __cplusplus
00071 }
00072 #endif
00073
00074 #endif
00075
00076 #endif