本文整理汇总了C++中SkTypeface::isItalic方法的典型用法代码示例。如果您正苦于以下问题:C++ SkTypeface::isItalic方法的具体用法?C++ SkTypeface::isItalic怎么用?C++ SkTypeface::isItalic使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SkTypeface
的用法示例。
在下文中一共展示了SkTypeface::isItalic方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: createFontPlatformData
FontPlatformData* FontCache::createFontPlatformData(const FontDescription& fontDescription, const AtomicString& family)
{
char* storage = 0;
const char* name = 0;
FontPlatformData* result = 0;
if (family.length()) {
storage = AtomicStringToUTF8String(family);
name = storage;
} else
name = getFallbackFontName(fontDescription);
int style = SkTypeface::kNormal;
#ifndef FONT_SOFTWARE_RENDER
if (fontDescription.weight() >= FontWeightBold)
style |= SkTypeface::kBold;
if (fontDescription.italic())
style |= SkTypeface::kItalic;
#endif
// CreateFromName always returns a typeface, falling back to a default font
// if the one requested is not found. Calling Equal() with a null pointer
// serves to compare the returned font against the default, with the caveat
// that the default is always of normal style. If we detect the default, we
// ignore it and allow WebCore to give us the next font on the CSS fallback
// list. The only exception is if the family name is a commonly used generic
// family, as when called by getSimilarFontPlatformData() and
// getLastResortFallbackFont(). In this case, the default font is an
// acceptable result.
SkTypeface* tf = SkTypeface::CreateFromName(name, SkTypeface::kNormal);
if (!SkTypeface::Equal(tf, 0) || isFallbackFamily(family.string())) {
// We had to use normal styling to see if this was a default font. If
// we need bold or italic, replace with the corrected typeface.
if (style != SkTypeface::kNormal) {
tf->unref();
tf = SkTypeface::CreateFromName(name, (SkTypeface::Style)style);
}
result = new FontPlatformData(tf, fontDescription.computedSize(),
(style & SkTypeface::kBold),
(style & SkTypeface::kItalic) && !tf->isItalic(),
fontDescription.orientation(),
fontDescription.textOrientation());
}
tf->unref();
sk_free(storage);
return result;
}
示例2: createFontPlatformData
FontPlatformData* FontCache::createFontPlatformData(const FontDescription& fontDescription, const AtomicString& family)
{
const char* name = 0;
// If a fallback font is being created (e.g. "-webkit-monospace"), convert
// it in to the fallback name (e.g. "monospace").
if (!family.length() || family.startsWith("-webkit-"))
name = getFallbackFontName(fontDescription);
else
name = family.string().utf8().data();
int style = SkTypeface::kNormal;
if (fontDescription.weight() >= FontWeightBold)
style |= SkTypeface::kBold;
if (fontDescription.italic())
style |= SkTypeface::kItalic;
SkTypeface* typeface = SkTypeface::CreateFromName(name, SkTypeface::kNormal);
FontPlatformData* result = 0;
// CreateFromName always returns a typeface, falling back to a default font
// if the one requested could not be found. Calling Equal() with a null
// pointer will compare the returned font against the default, with the
// caveat that the default is always of normal style. When that happens,
// ignore the default font and allow WebCore to provide the next font on the
// CSS fallback list. The only exception to this occurs when the family name
// is a commonly used generic family, which is the case when called by
// getSimilarFontPlatformData() or getLastResortFallbackFont(). In that case
// the default font is an acceptable result.
if (!SkTypeface::Equal(typeface, 0) || isFallbackFamily(family.string())) {
if (style != SkTypeface::kNormal) {
typeface->unref();
typeface = SkTypeface::CreateFromName(name, static_cast<SkTypeface::Style>(style));
}
result = new FontPlatformData(typeface, name, fontDescription.computedSize(),
(style & SkTypeface::kBold) && !typeface->isBold(),
(style & SkTypeface::kItalic) && !typeface->isItalic(),
fontDescription.orientation(),
fontDescription.textOrientation());
}
typeface->unref();
return result;
}