Go to file
Louai Al-Khanji bfa0d149f6 Direct2D QPA: Speed up text rendering
After analysing text drawing performance two things seem to take up most
of the time. The first is font lookup, the second is QVector
initialization.

To address the first point a per paint engine instance font cache is
introduced. At the moment no mechanism exists to clear this cache and
it is unbounded.

To address the second point, we simply switch to using QVarLengthArray
instead of QVector.

In an artificial benchmark that draws text in a tight loop, the first
change raised fps from ~70 to ~100. The second change further raised this
number to ~115 fps.

Change-Id: Iafa25c3e35bc42bd7c1582b0636e721c5193b494
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2014-05-07 18:01:37 +02:00
bin automate handling of generated headers some more 2014-02-28 03:17:11 +01:00
config.tests Allow building against static ICU libs also on Unix 2014-04-29 14:42:26 +02:00
dist Update changelog for iOS 2014-05-02 07:17:34 +02:00
doc Merge remote-tracking branch 'origin/release' into stable 2014-04-23 12:42:48 +03:00
examples Update AddressBook Example 2014-04-28 13:54:44 +02:00
lib Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02:00
mkspecs Use the "gcc" feature in simd.prf 2014-05-06 22:36:08 +02:00
qmake Xcode generator: resolve QMAKE_BUNDLE_RESOURCES from project source 2014-05-06 16:35:56 +02:00
src Direct2D QPA: Speed up text rendering 2014-05-07 18:01:37 +02:00
tests Fix visual index lookup in QTreeViewPrivate::adjustViewOptionsForIndex(). 2014-05-06 16:35:56 +02:00
tools Merge remote-tracking branch 'origin/release' into stable 2014-04-23 12:42:48 +03:00
util Introduce QChar::JoiningType enum and QChar::joiningType() method 2014-01-29 23:19:47 +01:00
.gitattributes Update the git-archive export options 2012-09-07 15:39:31 +02:00
.gitignore Add .dylib and .d to .gitignore 2014-03-29 00:40:46 +01:00
.qmake.conf Enable -Werror for all of qtbase 2013-09-04 01:50:10 +02:00
.tag Update the git-archive export options 2012-09-07 15:39:31 +02:00
configure Merge "Merge remote-tracking branch 'origin/release' into stable" into refs/staging/stable 2014-04-25 10:55:31 +02:00
configure.bat get rid of syncqt wrapper scripts 2013-05-13 21:54:48 +02:00
header.BSD Update copyright year in Digia's license headers 2013-01-18 09:07:35 +01:00
header.FDL Update copyright year in Digia's license headers 2013-01-18 09:07:35 +01:00
header.LGPL Update copyright year in Digia's license headers 2013-01-18 09:07:35 +01:00
header.LGPL-ONLY Update copyright year in Digia's license headers 2013-01-18 09:07:35 +01:00
INSTALL Doc: Update links in INSTALL file 2014-01-16 20:37:25 +01:00
LGPL_EXCEPTION.txt Change copyrights from Nokia to Digia 2012-09-22 19:20:11 +02:00
LICENSE.FDL Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02:00
LICENSE.GPL Add the LICENSE.GPL file to the module referenced from license headers 2012-05-20 22:41:08 +02:00
LICENSE.LGPL Update copyright year in LICENSE.LGPL 2014-03-31 12:36:33 +02:00
LICENSE.PREVIEW.COMMERCIAL Update LICENSE.PREVIEW.COMMERCIAL license 2013-06-03 20:04:26 +02:00
qtbase.pro untangle use of system vs. shell path(-list) semantics 2014-04-30 16:56:54 +02:00
sync.profile automate handling of generated headers some more 2014-02-28 03:17:11 +01:00