From 76f0ff2e192d18f8e9aed6d7f56c864a1678133c Mon Sep 17 00:00:00 2001 From: Michael Brasser Date: Tue, 15 Dec 2009 13:55:16 +1000 Subject: Expand text benchmark. --- src/declarative/graphicsitems/qmlgraphicstext.cpp | 2 - tests/benchmarks/declarative/text/text.pro | 1 - tests/benchmarks/declarative/text/tst_text.cpp | 47 ++++++++++++++++++++--- 3 files changed, 41 insertions(+), 9 deletions(-) diff --git a/src/declarative/graphicsitems/qmlgraphicstext.cpp b/src/declarative/graphicsitems/qmlgraphicstext.cpp index 03baaae..6ec72ef 100644 --- a/src/declarative/graphicsitems/qmlgraphicstext.cpp +++ b/src/declarative/graphicsitems/qmlgraphicstext.cpp @@ -578,8 +578,6 @@ QSize QmlGraphicsTextPrivate::setupTextLayout(QTextLayout *layout) Q_Q(QmlGraphicsText); layout->setCacheEnabled(true); - QFontMetrics fm = QFontMetrics(font); - int height = 0; qreal widthUsed = 0; qreal lineWidth = 0; diff --git a/tests/benchmarks/declarative/text/text.pro b/tests/benchmarks/declarative/text/text.pro index e4840b1..3320f53 100644 --- a/tests/benchmarks/declarative/text/text.pro +++ b/tests/benchmarks/declarative/text/text.pro @@ -1,5 +1,4 @@ load(qttest_p4) -QT += script TEMPLATE = app TARGET = tst_text macx:CONFIG -= app_bundle diff --git a/tests/benchmarks/declarative/text/tst_text.cpp b/tests/benchmarks/declarative/text/tst_text.cpp index 4fd84e6..5c57633 100644 --- a/tests/benchmarks/declarative/text/tst_text.cpp +++ b/tests/benchmarks/declarative/text/tst_text.cpp @@ -44,16 +44,25 @@ #include #include #include +#include class tst_text : public QObject { Q_OBJECT public: - tst_text() {} + tst_text() + { + m_text = "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."; + } private slots: void layout(); - void paintToPixmap(); + void paintLayoutToPixmap(); + void document(); + void paintDocToPixmap(); + +private: + QString m_text; }; QSize setupTextLayout(QTextLayout *layout) @@ -94,18 +103,18 @@ QSize setupTextLayout(QTextLayout *layout) void tst_text::layout() { //get rid of initialization effects - QTextLayout layout("Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."); + QTextLayout layout(m_text); setupTextLayout(&layout); QBENCHMARK { - QTextLayout layout("Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."); + QTextLayout layout(m_text); setupTextLayout(&layout); } } -void tst_text::paintToPixmap() +void tst_text::paintLayoutToPixmap() { - QTextLayout layout("Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."); + QTextLayout layout(m_text); QSize size = setupTextLayout(&layout); QBENCHMARK { @@ -116,5 +125,31 @@ void tst_text::paintToPixmap() } } +void tst_text::document() +{ + QTextControl *control = new QTextControl(m_text); + + QBENCHMARK { + QTextControl *control = new QTextControl; + QTextDocument *doc = control->document(); + doc->setHtml(m_text); + } +} + +void tst_text::paintDocToPixmap() +{ + QTextControl *control = new QTextControl; + QTextDocument *doc = control->document(); + doc->setHtml(m_text); + QSize size = doc->size().toSize(); + + QBENCHMARK { + QPixmap img(size); + img.fill(Qt::transparent); + QPainter p(&img); + control->drawContents(&p, QRectF(QPointF(0, 0), QSizeF(size))); + } +} + QTEST_MAIN(tst_text) #include "tst_text.moc" -- cgit v0.12