Use context as glyph cache key in GL paint engine

Switch from ctx->shareGroup() to ctx. The original intention to use the
same cache instance for sharing GL contexts is reasonable, but can only
work when there are only shareable resources involved. The FBO used by
QOpenGLTextureGlyphCache is not one of these.

Text rendering in Qt Quick already uses the same approach and uses
per-context glyph caches.

Change-Id: Ie7e521769f28b4902ca714eb029acfbf52814309
Task-number: QTBUG-58276
Reviewed-by: Joni Poikelin <joni.poikelin@qt.io>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
This commit is contained in:
Laszlo Agocs 2017-01-23 16:07:36 +01:00
parent 6a3e728e9b
commit e0f0850cd4

View File

@ -1664,7 +1664,7 @@ void QOpenGL2PaintEngineExPrivate::drawCachedGlyphs(QFontEngine::GlyphFormat gly
QOpenGL2PaintEngineState *s = q->state();
void *cacheKey = ctx->shareGroup();
void *cacheKey = ctx; // use context, not the shareGroup() -> the GL glyph cache uses FBOs which may not be shareable
bool recreateVertexArrays = false;
QTransform glyphCacheTransform;