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:
parent
74d4fcea4a
commit
aac68a9ef3
@ -1482,9 +1482,10 @@ void QGL2PaintEngineEx::drawStaticTextItem(QStaticTextItem *textItem)
|
|||||||
// don't try to cache huge fonts or vastly transformed fonts
|
// don't try to cache huge fonts or vastly transformed fonts
|
||||||
QFontEngine *fontEngine = textItem->fontEngine();
|
QFontEngine *fontEngine = textItem->fontEngine();
|
||||||
if (shouldDrawCachedGlyphs(fontEngine, s->matrix)) {
|
if (shouldDrawCachedGlyphs(fontEngine, s->matrix)) {
|
||||||
QFontEngine::GlyphFormat glyphFormat = fontEngine->glyphFormat >= 0
|
|
||||||
? QFontEngine::GlyphFormat(textItem->fontEngine()->glyphFormat)
|
QFontEngine::GlyphFormat glyphFormat = fontEngine->glyphFormat != QFontEngine::Format_None
|
||||||
: d->glyphCacheFormat;
|
? fontEngine->glyphFormat : d->glyphCacheFormat;
|
||||||
|
|
||||||
if (glyphFormat == QFontEngine::Format_A32) {
|
if (glyphFormat == QFontEngine::Format_A32) {
|
||||||
if (!QGLFramebufferObject::hasOpenGLFramebufferObjects()
|
if (!QGLFramebufferObject::hasOpenGLFramebufferObjects()
|
||||||
|| d->device->alphaRequested() || s->matrix.type() > QTransform::TxTranslate
|
|| 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();
|
QTransform::TransformationType txtype = s->matrix.type();
|
||||||
|
|
||||||
QFontEngine::GlyphFormat glyphFormat = ti.fontEngine->glyphFormat >= 0
|
QFontEngine::GlyphFormat glyphFormat = ti.fontEngine->glyphFormat != QFontEngine::Format_None
|
||||||
? ti.fontEngine->glyphFormat
|
? ti.fontEngine->glyphFormat : d->glyphCacheFormat;
|
||||||
: d->glyphCacheFormat;
|
|
||||||
|
|
||||||
|
|
||||||
if (glyphFormat == QFontEngine::Format_A32) {
|
if (glyphFormat == QFontEngine::Format_A32) {
|
||||||
if (!QGLFramebufferObject::hasOpenGLFramebufferObjects()
|
if (!QGLFramebufferObject::hasOpenGLFramebufferObjects()
|
||||||
|
Loading…
Reference in New Issue
Block a user