summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tests/benchmarks/declarative/text/tst_text.cpp34
1 files changed, 34 insertions, 0 deletions
diff --git a/tests/benchmarks/declarative/text/tst_text.cpp b/tests/benchmarks/declarative/text/tst_text.cpp
index 5c57633..e69ecd8 100644
--- a/tests/benchmarks/declarative/text/tst_text.cpp
+++ b/tests/benchmarks/declarative/text/tst_text.cpp
@@ -58,8 +58,10 @@ public:
private slots:
void layout();
void paintLayoutToPixmap();
+ void paintLayoutToPixmap_painterFill();
void document();
void paintDocToPixmap();
+ void paintDocToPixmap_painterFill();
private:
QString m_text;
@@ -125,6 +127,21 @@ void tst_text::paintLayoutToPixmap()
}
}
+void tst_text::paintLayoutToPixmap_painterFill()
+{
+ QTextLayout layout(m_text);
+ QSize size = setupTextLayout(&layout);
+
+ QBENCHMARK {
+ QPixmap img(size);
+ QPainter p(&img);
+ p.setCompositionMode(QPainter::CompositionMode_Source);
+ p.fillRect(0, 0, img.width(), img.height(), Qt::transparent);
+ p.setCompositionMode(QPainter::CompositionMode_SourceOver);
+ layout.draw(&p, QPointF(0, 0));
+ }
+}
+
void tst_text::document()
{
QTextControl *control = new QTextControl(m_text);
@@ -151,5 +168,22 @@ void tst_text::paintDocToPixmap()
}
}
+void tst_text::paintDocToPixmap_painterFill()
+{
+ QTextControl *control = new QTextControl;
+ QTextDocument *doc = control->document();
+ doc->setHtml(m_text);
+ QSize size = doc->size().toSize();
+
+ QBENCHMARK {
+ QPixmap img(size);
+ QPainter p(&img);
+ p.setCompositionMode(QPainter::CompositionMode_Source);
+ p.fillRect(0, 0, img.width(), img.height(), Qt::transparent);
+ p.setCompositionMode(QPainter::CompositionMode_SourceOver);
+ control->drawContents(&p, QRectF(QPointF(0, 0), QSizeF(size)));
+ }
+}
+
QTEST_MAIN(tst_text)
#include "tst_text.moc"