if (FTC_Manager_Lookup_Size(cacheManager, &fnt->font.font, ¤t_face, &fnt->size)<0)
#endif
{
- delete fnt;
eDebug("FTC_Manager_Lookup_Size failed!");
return 0;
}
}
pGlyph ng;
- ng.bbox.setLeft( (flags&GS_ISFIRST|cursor.x()-1)+glyph->left );
+ ng.bbox.setLeft( ((flags&GS_ISFIRST)|(cursor.x()-1))+glyph->left );
ng.bbox.setTop( cursor.y() - glyph->top );
ng.bbox.setWidth( glyph->width );
ng.bbox.setHeight( glyph->height );
if (!current_font)
return -1;
-
- if (cursor.y()==-1)
- {
- cursor=ePoint(area.x(), area.y()+(current_face->size->metrics.ascender>>6));
- left=cursor.x();
- }
-
+
#ifdef HAVE_FREETYPE2
if ((FTC_Manager_LookupFace(fontRenderClass::instance->cacheManager,
current_font->scaler.face_id,
cache_current_font=¤t_font->font.font;
}
#endif
-
+
+ if (!current_face)
+ eFatal("eTextPara::renderString: no current_face");
+ if (!current_face->size)
+ eFatal("eTextPara::renderString: no current_face->size");
+
+ if (cursor.y()==-1)
+ {
+ cursor=ePoint(area.x(), area.y()+(current_face->size->metrics.ascender>>6));
+ left=cursor.x();
+ }
+
std::vector<unsigned long> uc_string, uc_visual;
if (string)
uc_string.reserve(strlen(string));