bool
_FontFt2::AddCache(unsigned long glyphIndex, _Util::FixedPoint26_6 size, int style, Glyph* pGlyph)
{
+ if (pGlyph->xAdvance == 0 && pGlyph->image.width == 0)
+ {
+ return false;
+ }
+
return (__fontCache.get()) ? __fontCache->Add(glyphIndex, size, style, pGlyph) : false;
}
// bidi cache underdevelop
_IFont::Glyph* pFontGlyphData;
-/*
+
bool rtn = FindCache(glyphIndex, __fontAttrib.size, __fontAttrib.style, &pFontGlyphData);
if (rtn)
continue;
}
-*/
+
if (isSynthetic)
{
error = FT_Load_Glyph(pFace, glyphIndex, FT_LOAD_DEFAULT | FT_LOAD_NO_BITMAP);
pFontGlyphData->xOffset = _Util::FixedPoint22_10(pSlot->bitmap_left);
pFontGlyphData->yOffset = _Util::FixedPoint22_10(pSlot->bitmap_top);
- //AddCache(glyphIndex, __fontAttrib.size, __fontAttrib.style, pFontGlyphData);
+ AddCache(glyphIndex, __fontAttrib.size, __fontAttrib.style, pFontGlyphData);
pFontGlyphData->hasOwnerShip = 1;
}