summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>2011-07-05 10:33:59 +0200
committerQt by Nokia <qt-info@nokia.com>2011-07-05 12:38:50 +0200
commitd010d0893a8796e2973327a06f71988ea5fde14d (patch)
treec3d32808e85066482816dd574022c676f6c88c05
parent8226443b16f91aba62125c8f1e1f114cb9c1739b (diff)
Don't issue GL calls when the geometry is empty
This works as a band-aid and optimization for QT-5104, because in the text in the example, which contains latin text and has a latin default font set, will think of all spaces between the cyrillic characters as latin characters, hence it will make separate text items for them and issue separate glDrawElements() calls. By cutting off if there are no glyphs to draw, we can avoid hitting the actual bug for this and several other use cases, making it less likely to happen. Task-number: QT-5104 Reviewed-by: Samuel (cherry picked from commit f51b5fe09c63e4b3c2ab5a4d06e162c43d38207d) Change-Id: Id80f55ce403a7aa112c3abb314d080aa43c0078b Reviewed-on: http://codereview.qt.nokia.com/1158 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
-rw-r--r--src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp b/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp
index a07b8b0b07..cf5fddbf84 100644
--- a/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp
+++ b/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp
@@ -1692,6 +1692,8 @@ void QGL2PaintEngineExPrivate::drawCachedGlyphs(QFontEngineGlyphCache::Type glyp
}
int numGlyphs = vertexCoordinates->vertexCount() / 4;
+ if (numGlyphs == 0)
+ return;
if (elementIndices.size() < numGlyphs*6) {
Q_ASSERT(elementIndices.size() % 6 == 0);