本文整理汇总了C++中XeTeXFontInst::pointsToUnits方法的典型用法代码示例。如果您正苦于以下问题:C++ XeTeXFontInst::pointsToUnits方法的具体用法?C++ XeTeXFontInst::pointsToUnits怎么用?C++ XeTeXFontInst::pointsToUnits使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类XeTeXFontInst
的用法示例。
在下文中一共展示了XeTeXFontInst::pointsToUnits方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: getMathKernAt
int
get_ot_math_kern(int f, int g, int sf, int sg, int cmd, int shift)
{
int rval = 0;
if (fontarea[f] == OTGR_FONT_FLAG) {
XeTeXFontInst* font = (XeTeXFontInst*)getFont((XeTeXLayoutEngine)fontlayoutengine[f]);
int kern = 0, skern = 0;
float corr_height_top = 0.0, corr_height_bot = 0.0;
shift = Fix2D(shift);
if (cmd == sup_cmd) { // superscript
corr_height_top = font->pointsToUnits(glyph_height(f, g));
corr_height_bot = -font->pointsToUnits(glyph_depth(sf, sg) + shift);
kern = getMathKernAt(f, g, topRight, corr_height_top);
skern = getMathKernAt(sf, sg, bottomLeft, corr_height_top);
rval = kern + skern;
kern = getMathKernAt(f, g, topRight, corr_height_bot);
skern = getMathKernAt(sf, sg, bottomLeft, corr_height_bot);
if ((kern + skern) < rval)
rval = kern + skern;
} else if (cmd == sub_cmd) { // subscript
corr_height_top = font->pointsToUnits(glyph_height(sf, sg) - shift);
corr_height_bot = -font->pointsToUnits(glyph_depth(f, g));
kern = getMathKernAt(f, g, bottomRight, corr_height_top);
skern = getMathKernAt(sf, sg, topLeft, corr_height_top);
rval = kern + skern;
kern = getMathKernAt(f, g, bottomRight, corr_height_bot);
skern = getMathKernAt(sf, sg, topLeft, corr_height_bot);
if ((kern + skern) < rval)
rval = kern + skern;
} else {
assert(0); // we should not reach here
}
rval = D2Fix(font->unitsToPoints(rval));
}
return rval;
}