diff options
Diffstat (limited to 'src/quick/scenegraph/qsgadaptationlayer.cpp')
-rw-r--r-- | src/quick/scenegraph/qsgadaptationlayer.cpp | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/quick/scenegraph/qsgadaptationlayer.cpp b/src/quick/scenegraph/qsgadaptationlayer.cpp index 87b13d86d3..4e8bafbe95 100644 --- a/src/quick/scenegraph/qsgadaptationlayer.cpp +++ b/src/quick/scenegraph/qsgadaptationlayer.cpp @@ -48,8 +48,14 @@ #include <QtGui/qguiapplication.h> #include <qdir.h> +#include <QElapsedTimer> + QT_BEGIN_NAMESPACE +#ifndef QSG_NO_RENDERER_TIMING +static bool qsg_render_timing = !qgetenv("QML_RENDERER_TIMING").isEmpty(); +static QElapsedTimer qsg_render_timer; +#endif QSGDistanceFieldGlyphCache::Texture QSGDistanceFieldGlyphCache::s_emptyTexture; @@ -155,6 +161,11 @@ void QSGDistanceFieldGlyphCache::update() if (m_pendingGlyphs.isEmpty()) return; +#ifndef QSG_NO_RENDERER_TIMING + if (qsg_render_timing) + qsg_render_timer.start(); +#endif + QHash<glyph_t, QImage> distanceFields; for (int i = 0; i < m_pendingGlyphs.size(); ++i) { @@ -164,9 +175,27 @@ void QSGDistanceFieldGlyphCache::update() distanceFields.insert(glyphIndex, distanceField); } +#ifndef QSG_NO_RENDERER_TIMING + int renderTime = 0; + int count = m_pendingGlyphs.size(); + if (qsg_render_timing) + renderTime = qsg_render_timer.elapsed(); +#endif + m_pendingGlyphs.reset(); storeGlyphs(distanceFields); + +#ifndef QSG_NO_RENDERER_TIMING + if (qsg_render_timing) { + printf(" - glyphs: count=%d, render=%d, store=%d, total=%d\n", + count, + renderTime, + (int) qsg_render_timer.elapsed() - renderTime, + (int) qsg_render_timer.elapsed()); + + } +#endif } void QSGDistanceFieldGlyphCache::setGlyphsPosition(const QList<GlyphPosition> &glyphs) |