本文整理汇总了C++中FontMetrics::floatHeight方法的典型用法代码示例。如果您正苦于以下问题:C++ FontMetrics::floatHeight方法的具体用法?C++ FontMetrics::floatHeight怎么用?C++ FontMetrics::floatHeight使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类FontMetrics
的用法示例。
在下文中一共展示了FontMetrics::floatHeight方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: switch
float CanvasRenderingContext2D::getFontBaseline(
const FontMetrics& fontMetrics) const {
// If the font is so tiny that the lroundf operations result in two
// different types of text baselines to return the same baseline, use
// floating point metrics (crbug.com/338908).
// If you changed the heuristic here, for consistency please also change it
// in SimpleFontData::platformInit().
bool useFloatAscentDescent =
fontMetrics.ascent() < 3 || fontMetrics.height() < 2;
switch (state().getTextBaseline()) {
case TopTextBaseline:
return useFloatAscentDescent ? fontMetrics.floatAscent()
: fontMetrics.ascent();
case HangingTextBaseline:
// According to
// http://wiki.apache.org/xmlgraphics-fop/LineLayout/AlignmentHandling
// "FOP (Formatting Objects Processor) puts the hanging baseline at 80% of
// the ascender height"
return useFloatAscentDescent ? (fontMetrics.floatAscent() * 4.0) / 5.0
: (fontMetrics.ascent() * 4) / 5;
case BottomTextBaseline:
case IdeographicTextBaseline:
return useFloatAscentDescent ? -fontMetrics.floatDescent()
: -fontMetrics.descent();
case MiddleTextBaseline:
return useFloatAscentDescent
? -fontMetrics.floatDescent() + fontMetrics.floatHeight() / 2.0
: -fontMetrics.descent() + fontMetrics.height() / 2;
case AlphabeticTextBaseline:
default:
// Do nothing.
break;
}
return 0;
}