aboutsummaryrefslogtreecommitdiff
path: root/benchmarks
diff options
context:
space:
mode:
authorArmin Berres <armin.berres@basyskom.de>2010-08-18 13:32:27 +0200
committerTomas Junnonen <tomas.junnonen@nokia.com>2010-08-20 17:22:37 +0300
commit13bf2871410b1dfaa34395a2ca79a484ac1bff08 (patch)
treef4b4ca4b2c6a1e9257a72b692da9763e086cd84f /benchmarks
parent75406f4928606d79d23e6d3e1eb0cf1bdb269da8 (diff)
Changes: add benchmark for initialization of MGLES2Renderer
RevBy: TrustMe
Diffstat (limited to 'benchmarks')
-rw-r--r--benchmarks/benchmarks.pro1
-rw-r--r--benchmarks/pt_mgles2renderer/.gitignore1
-rw-r--r--benchmarks/pt_mgles2renderer/pt_mgles2renderer.cpp97
-rw-r--r--benchmarks/pt_mgles2renderer/pt_mgles2renderer.h65
-rw-r--r--benchmarks/pt_mgles2renderer/pt_mgles2renderer.pro10
5 files changed, 174 insertions, 0 deletions
diff --git a/benchmarks/benchmarks.pro b/benchmarks/benchmarks.pro
index 2cdaea19..03d2ddda 100644
--- a/benchmarks/benchmarks.pro
+++ b/benchmarks/benchmarks.pro
@@ -14,6 +14,7 @@ SUBDIRS = \
pt_mcalendar \
pt_mcomponentcache \
pt_mcomponentdata \
+ pt_mgles2renderer \
pt_mimagewidget \
pt_mmenu \
pt_minimalmapplication \
diff --git a/benchmarks/pt_mgles2renderer/.gitignore b/benchmarks/pt_mgles2renderer/.gitignore
new file mode 100644
index 00000000..19c6db00
--- /dev/null
+++ b/benchmarks/pt_mgles2renderer/.gitignore
@@ -0,0 +1 @@
+pt_mgles2renderer
diff --git a/benchmarks/pt_mgles2renderer/pt_mgles2renderer.cpp b/benchmarks/pt_mgles2renderer/pt_mgles2renderer.cpp
new file mode 100644
index 00000000..bdde9045
--- /dev/null
+++ b/benchmarks/pt_mgles2renderer/pt_mgles2renderer.cpp
@@ -0,0 +1,97 @@
+/***************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (directui@nokia.com)
+**
+** This file is part of libmeegotouch.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at directui@nokia.com.
+**
+** This library is free software; you can redistribute it and/or
+** modify it under the terms of the GNU Lesser General Public
+** License version 2.1 as published by the Free Software Foundation
+** and appearing in the file LICENSE.LGPL included in the packaging
+** of this file.
+**
+****************************************************************************/
+
+#include "pt_mgles2renderer.h"
+
+#include <mbenchmark.h>
+#include <MTheme>
+#include <MGLES2Renderer>
+
+#include <QtTest/QtTest>
+#include <QGLWidget>
+
+void Pt_MGLES2Renderer::initTestCase()
+{
+ glWidget = new QGLWidget();
+ painter = new QPainter();
+}
+
+void Pt_MGLES2Renderer::cleanupTestCase()
+{
+ delete glWidget;
+ delete painter;
+}
+
+void Pt_MGLES2Renderer::firstInstanceCall()
+{
+ MBENCHMARK_ONCE (
+ MGLES2Renderer::instance(glWidget);
+ )
+}
+
+void Pt_MGLES2Renderer::activate()
+{
+ MBENCHMARK_ONCE (
+ MGLES2Renderer::activate(glWidget);
+ )
+}
+
+void Pt_MGLES2Renderer::secondInstanceCall()
+{
+ MBENCHMARK_ONCE (
+ MGLES2Renderer::instance();
+ )
+}
+
+void Pt_MGLES2Renderer::begin()
+{
+ MBENCHMARK_ONCE (
+ MGLES2Renderer::instance()->begin(painter);
+ )
+}
+
+void Pt_MGLES2Renderer::end()
+{
+ MBENCHMARK_ONCE (
+ MGLES2Renderer::instance()->end();
+ )
+}
+
+void Pt_MGLES2Renderer::begin2()
+{
+ MBENCHMARK_ONCE (
+ MGLES2Renderer::instance()->begin(painter);
+ )
+}
+
+void Pt_MGLES2Renderer::end2()
+{
+ MBENCHMARK_ONCE (
+ MGLES2Renderer::instance()->end();
+ )
+}
+
+void Pt_MGLES2Renderer::destroy()
+{
+ MBENCHMARK_ONCE (
+ MGLES2Renderer::destroy(glWidget);
+ )
+}
+
+QTEST_MAIN(Pt_MGLES2Renderer)
diff --git a/benchmarks/pt_mgles2renderer/pt_mgles2renderer.h b/benchmarks/pt_mgles2renderer/pt_mgles2renderer.h
new file mode 100644
index 00000000..92ac12b4
--- /dev/null
+++ b/benchmarks/pt_mgles2renderer/pt_mgles2renderer.h
@@ -0,0 +1,65 @@
+/***************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (directui@nokia.com)
+**
+** This file is part of libmeegotouch.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at directui@nokia.com.
+**
+** This library is free software; you can redistribute it and/or
+** modify it under the terms of the GNU Lesser General Public
+** License version 2.1 as published by the Free Software Foundation
+** and appearing in the file LICENSE.LGPL included in the packaging
+** of this file.
+**
+****************************************************************************/
+
+#ifndef Pt_MGLES2Renderer_H
+#define Pt_MGLES2Renderer_H
+
+#include <QObject>
+
+class QGLWidget;
+class MGLES2Renderer;
+class QPainter;
+
+class Pt_MGLES2Renderer : public QObject
+{
+ Q_OBJECT
+
+private slots:
+ void initTestCase();
+ void cleanupTestCase();
+
+ /**
+ * Benchmark the time needed to create an initialize the renderer.
+ */
+ void firstInstanceCall();
+
+ void activate();
+
+ /**
+ * Renderer is already created. No time should be needed here.
+ */
+ void secondInstanceCall();
+
+ void begin();
+
+ void end();
+
+ // execute begin and end one more time to the time difference between the first and following calls
+ void begin2();
+
+ void end2();
+
+ void destroy();
+
+private:
+ QGLWidget *glWidget;
+ QPainter *painter;
+};
+
+#endif
diff --git a/benchmarks/pt_mgles2renderer/pt_mgles2renderer.pro b/benchmarks/pt_mgles2renderer/pt_mgles2renderer.pro
new file mode 100644
index 00000000..503a85da
--- /dev/null
+++ b/benchmarks/pt_mgles2renderer/pt_mgles2renderer.pro
@@ -0,0 +1,10 @@
+include(../common_top.pri)
+INCLUDEPATH += $$MSRCDIR/include
+DEPENDPATH += $$INCLUDEPATH
+TARGET = pt_mgles2renderer
+
+QT += opengl
+
+SOURCES += pt_mgles2renderer.cpp
+
+HEADERS += pt_mgles2renderer.h