本文整理汇总了C++中QPlatformIntegration::createPlatformSharedGraphicsCache方法的典型用法代码示例。如果您正苦于以下问题:C++ QPlatformIntegration::createPlatformSharedGraphicsCache方法的具体用法?C++ QPlatformIntegration::createPlatformSharedGraphicsCache怎么用?C++ QPlatformIntegration::createPlatformSharedGraphicsCache使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类QPlatformIntegration
的用法示例。
在下文中一共展示了QPlatformIntegration::createPlatformSharedGraphicsCache方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: QByteArray
/*!
Factory function for scene graph backends of the distance-field glyph cache.
*/
QSGDistanceFieldGlyphCache *QSGContext::distanceFieldGlyphCache(const QRawFont &font)
{
Q_D(QSGContext);
if (!d->distanceFieldCacheManager)
d->distanceFieldCacheManager = new QSGDistanceFieldGlyphCacheManager;
QSGDistanceFieldGlyphCache *cache = d->distanceFieldCacheManager->cache(font);
if (!cache) {
QPlatformIntegration *platformIntegration = QGuiApplicationPrivate::platformIntegration();
if (platformIntegration != 0
&& platformIntegration->hasCapability(QPlatformIntegration::SharedGraphicsCache)) {
QFontEngine *fe = QRawFontPrivate::get(font)->fontEngine;
if (!fe->faceId().filename.isEmpty()) {
QByteArray keyName = fe->faceId().filename;
if (font.style() != QFont::StyleNormal)
keyName += QByteArray(" I");
if (font.weight() != QFont::Normal)
keyName += ' ' + QByteArray::number(font.weight());
keyName += QByteArray(" DF");
QPlatformSharedGraphicsCache *sharedGraphicsCache =
platformIntegration->createPlatformSharedGraphicsCache(keyName);
if (sharedGraphicsCache != 0) {
sharedGraphicsCache->ensureCacheInitialized(keyName,
QPlatformSharedGraphicsCache::OpenGLTexture,
QPlatformSharedGraphicsCache::Alpha8);
cache = new QSGSharedDistanceFieldGlyphCache(keyName,
sharedGraphicsCache,
d->distanceFieldCacheManager,
glContext(),
font);
}
}
}
if (!cache)
cache = new QSGDefaultDistanceFieldGlyphCache(d->distanceFieldCacheManager, glContext(), font);
d->distanceFieldCacheManager->insertCache(font, cache);
}
return cache;
}