不良习惯害死人啊!
下面代码对吗?
unsigned char maskData = glyphData.pGlyphData[j * glyphData.pitch + k >> 3];
随手写的,却坑了自己2小时。反复看了好几次文档,也没搞明白哪错了。
正确写法:
unsigned char maskData = glyphData.pGlyphData[j * glyphData.pitch + (k >> 3)]; // + 比 >> 优先级高
附上自己封装的FreeType给大家参考:
#include <ft2build.h>
#include FT_FREETYPE_H
#include <windows.h>
#include <tchar.h>
typedef struct stGFX2D_Font_Impl {
GFX2D_UB8 width;
GFX2D_UB8 height;
GFX2D_UB8 weight;
GFX2D_ENUM face;
GFX2D_ENUM charSet;
FT_Face pFTFace;
PFONTCALL fontcall;
PCHARSETOPS charsetops;
} GFX2D_Font_Impl, *GFX2D_Font_Impl_Handle;
static FT_Library s_pFTLib;
const char fontpath[] = "c:\\WINDOWS\\fonts\\msmincho.ttc";
GFX2D_STAT FontLib_FreeType_Init ()
{
GFX2D_STAT rtn = GFX2D_SUCCESS;
FT_Init_FreeType(&s_pFTLib);
return rtn;
}
GFX2D_STAT FontLib_FreeType_Exit ()
{
GFX2D_STAT rtn = GFX2D_SUCCESS;
FT_Done_FreeType(s_pFTLib);
s_pFTLib = NULL;
return rtn;
}
GFX2D_STAT FontLib_FreeType_Fo