diff options
author | Thiago Macieira <thiago.macieira@nokia.com> | 2010-09-22 14:55:00 +0200 |
---|---|---|
committer | Thiago Macieira <thiago.macieira@nokia.com> | 2010-09-22 14:55:00 +0200 |
commit | 9a5a12a5fe5bdf848756ddad20dabe288a6873de (patch) | |
tree | 4116fe2b23d8689f7f10688d338c7fc8abe46b1e /src/gui/painting/qtextureglyphcache.cpp | |
parent | 0d446ec758aacd131f2da0fa67a081fd93cff898 (diff) | |
parent | b7ba409b0dabd382876310a6c110a96cf0e3c6bf (diff) |
Merge remote branch 'origin/4.7' into qt-master-from-4.7
Conflicts:
src/gui/painting/qtextureglyphcache_p.h
src/opengl/gl2paintengineex/qtextureglyphcache_gl.cpp
Diffstat (limited to 'src/gui/painting/qtextureglyphcache.cpp')
-rw-r--r-- | src/gui/painting/qtextureglyphcache.cpp | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/src/gui/painting/qtextureglyphcache.cpp b/src/gui/painting/qtextureglyphcache.cpp index e992bb2a59..2bb8ccee89 100644 --- a/src/gui/painting/qtextureglyphcache.cpp +++ b/src/gui/painting/qtextureglyphcache.cpp @@ -47,10 +47,6 @@ #include "private/qnativeimage_p.h" #include "private/qfontengine_ft_p.h" -#ifndef QT_DEFAULT_TEXTURE_GLYPH_CACHE_WIDTH -#define QT_DEFAULT_TEXTURE_GLYPH_CACHE_WIDTH 256 -#endif - QT_BEGIN_NAMESPACE // #define CACHE_DEBUG @@ -212,10 +208,18 @@ void QTextureGlyphCache::populate(QFontEngine *fontEngine, int numGlyphs, const m_currentRowHeight = qMax(m_currentRowHeight, c.h + margin * 2); if (m_cx + c.w > m_w) { - // no room on the current line, start new glyph strip - m_cx = 0; - m_cy += m_currentRowHeight + paddingDoubled; - m_currentRowHeight = 0; // New row + int new_width = m_w*2; + while (new_width < m_cx + c.w) + new_width *= 2; + if (new_width <= maxTextureWidth()) { + resizeTextureData(new_width, m_h); + m_w = new_width; + } else { + // no room on the current line, start new glyph strip + m_cx = 0; + m_cy += m_currentRowHeight + paddingDoubled; + m_currentRowHeight = 0; // New row + } } c.x = m_cx; |