Fix texture glyph cache setup in old OpenGL paint engine

Caused assert-crash reported on Windows.

Task-number: QTBUG-37027
Change-Id: If84b970a153570115afb344797728a0b1a04db5b
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
This commit is contained in:
Tor Arne Vestbø 2014-02-24 11:34:20 +01:00 committed by The Qt Project
parent 74d4fcea4a
commit aac68a9ef3

View File

@ -1482,9 +1482,10 @@ void QGL2PaintEngineEx::drawStaticTextItem(QStaticTextItem *textItem)
// don't try to cache huge fonts or vastly transformed fonts
QFontEngine *fontEngine = textItem->fontEngine();
if (shouldDrawCachedGlyphs(fontEngine, s->matrix)) {
QFontEngine::GlyphFormat glyphFormat = fontEngine->glyphFormat >= 0
? QFontEngine::GlyphFormat(textItem->fontEngine()->glyphFormat)
: d->glyphCacheFormat;
QFontEngine::GlyphFormat glyphFormat = fontEngine->glyphFormat != QFontEngine::Format_None
? fontEngine->glyphFormat : d->glyphCacheFormat;
if (glyphFormat == QFontEngine::Format_A32) {
if (!QGLFramebufferObject::hasOpenGLFramebufferObjects()
|| d->device->alphaRequested() || s->matrix.type() > QTransform::TxTranslate
@ -1532,10 +1533,8 @@ void QGL2PaintEngineEx::drawTextItem(const QPointF &p, const QTextItem &textItem
QTransform::TransformationType txtype = s->matrix.type();
QFontEngine::GlyphFormat glyphFormat = ti.fontEngine->glyphFormat >= 0
? ti.fontEngine->glyphFormat
: d->glyphCacheFormat;
QFontEngine::GlyphFormat glyphFormat = ti.fontEngine->glyphFormat != QFontEngine::Format_None
? ti.fontEngine->glyphFormat : d->glyphCacheFormat;
if (glyphFormat == QFontEngine::Format_A32) {
if (!QGLFramebufferObject::hasOpenGLFramebufferObjects()