summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMike Krus <mike.krus@kdab.com>2016-05-23 15:54:13 +0100
committerSean Harmer <sean.harmer@kdab.com>2016-05-23 19:21:19 +0000
commit1802f11f4b99c93dc9c2e4b5556592db005b5817 (patch)
tree90bfba77d1606bf0e525358c3feb9ea75893d12e
parentc0f13a86ffcc9c19efb6d7be24440f3df2babc23 (diff)
Avoid changing access rights to virtual methods
Added QRenderAspectTester as friend for testing Task-number: QTBUG-53569 Change-Id: Ia7adde188065a2ba02b7fd480fcfe545ccbf4720 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
-rw-r--r--src/logic/qlogicaspect.h4
-rw-r--r--src/render/frontend/qrenderaspect.h13
-rw-r--r--tests/benchmarks/render/jobs/tst_bench_jobs.cpp162
-rw-r--r--tests/benchmarks/render/render.pro4
4 files changed, 100 insertions, 83 deletions
diff --git a/src/logic/qlogicaspect.h b/src/logic/qlogicaspect.h
index 3d7e8b957..e73e2eb2d 100644
--- a/src/logic/qlogicaspect.h
+++ b/src/logic/qlogicaspect.h
@@ -56,9 +56,8 @@ public:
explicit QLogicAspect(QObject *parent = nullptr);
~QLogicAspect();
- QVector<Qt3DCore::QAspectJobPtr> jobsToExecute(qint64 time) Q_DECL_OVERRIDE;
-
private:
+ QVector<Qt3DCore::QAspectJobPtr> jobsToExecute(qint64 time) Q_DECL_OVERRIDE;
void onRegistered() Q_DECL_OVERRIDE;
void onEngineStartup() Q_DECL_OVERRIDE;
@@ -71,4 +70,3 @@ private:
QT_END_NAMESPACE
#endif // QT3DLOGIC_QLOGICASPECT_H
-
diff --git a/src/render/frontend/qrenderaspect.h b/src/render/frontend/qrenderaspect.h
index 45e982873..c6254da3a 100644
--- a/src/render/frontend/qrenderaspect.h
+++ b/src/render/frontend/qrenderaspect.h
@@ -55,6 +55,10 @@ class Renderer;
class QRenderAspectPrivate;
+#if defined(QT_BUILD_INTERNAL)
+class QRenderAspectTester;
+#endif
+
class QT3DRENDERSHARED_EXPORT QRenderAspect : public Qt3DCore::QAbstractAspect
{
Q_OBJECT
@@ -68,19 +72,22 @@ public:
explicit QRenderAspect(RenderType type, QObject *parent = nullptr);
~QRenderAspect();
- QVector<Qt3DCore::QAspectJobPtr> jobsToExecute(qint64 time) Q_DECL_OVERRIDE;
-
protected:
QRenderAspect(QRenderAspectPrivate &dd, QObject *parent);
Q_DECLARE_PRIVATE(QRenderAspect)
+private:
+ QVector<Qt3DCore::QAspectJobPtr> jobsToExecute(qint64 time) Q_DECL_OVERRIDE;
+
void onRegistered() Q_DECL_OVERRIDE;
void onUnregistered() Q_DECL_OVERRIDE;
void onEngineStartup() Q_DECL_OVERRIDE;
-private:
friend class Render::Renderer;
+#if defined(QT_BUILD_INTERNAL)
+ friend class QRenderAspectTester;
+#endif
};
}
diff --git a/tests/benchmarks/render/jobs/tst_bench_jobs.cpp b/tests/benchmarks/render/jobs/tst_bench_jobs.cpp
index 7593d2992..c0d9a34fd 100644
--- a/tests/benchmarks/render/jobs/tst_bench_jobs.cpp
+++ b/tests/benchmarks/render/jobs/tst_bench_jobs.cpp
@@ -54,90 +54,100 @@
#include <QQmlComponent>
#include <QScopedPointer>
-class TestAspect : public Qt3DRender::QRenderAspect
-{
- Q_OBJECT
-public:
- TestAspect(bool withWindow = false)
- : Qt3DRender::QRenderAspect(QRenderAspect::Synchronous)
- , m_jobManager(new Qt3DCore::QAspectJobManager())
+QT_BEGIN_NAMESPACE
+
+namespace Qt3DRender {
+
+ class QRenderAspectTester : public Qt3DRender::QRenderAspect
{
- Qt3DCore::QAbstractAspectPrivate::get(this)->m_jobManager = m_jobManager.data();
- if (!withWindow) {
- d_func()->m_renderer->createAllocators(m_jobManager.data());
- } else {
- m_window.reset(new QWindow());
- m_window->resize(1024, 768);
-
- QSurfaceFormat format;
- if (QOpenGLContext::openGLModuleType() == QOpenGLContext::LibGL) {
- format.setVersion(4, 3);
- format.setProfile(QSurfaceFormat::CoreProfile);
+ Q_OBJECT
+ public:
+ QRenderAspectTester(bool withWindow = false)
+ : Qt3DRender::QRenderAspect(QRenderAspect::Synchronous)
+ , m_jobManager(new Qt3DCore::QAspectJobManager())
+ {
+ Qt3DCore::QAbstractAspectPrivate::get(this)->m_jobManager = m_jobManager.data();
+ if (!withWindow) {
+ d_func()->m_renderer->createAllocators(m_jobManager.data());
+ } else {
+ m_window.reset(new QWindow());
+ m_window->resize(1024, 768);
+
+ QSurfaceFormat format;
+ if (QOpenGLContext::openGLModuleType() == QOpenGLContext::LibGL) {
+ format.setVersion(4, 3);
+ format.setProfile(QSurfaceFormat::CoreProfile);
+ }
+ format.setDepthBufferSize( 24 );
+ format.setSamples( 4 );
+ format.setStencilBufferSize(8);
+ m_window->setFormat(format);
+ m_window->create();
+
+ QRenderAspect::onRegistered();
}
- format.setDepthBufferSize( 24 );
- format.setSamples( 4 );
- format.setStencilBufferSize(8);
- m_window->setFormat(format);
- m_window->create();
-
- QRenderAspect::onRegistered();
}
- }
- QVector<Qt3DCore::QAspectJobPtr> worldTransformJob()
- {
- d_func()->m_worldTransformJob->setRoot(d_func()->m_renderer->sceneRoot());
- return QVector<Qt3DCore::QAspectJobPtr>() << d_func()->m_worldTransformJob;
- }
+ QVector<Qt3DCore::QAspectJobPtr> worldTransformJob()
+ {
+ d_func()->m_worldTransformJob->setRoot(d_func()->m_renderer->sceneRoot());
+ return QVector<Qt3DCore::QAspectJobPtr>() << d_func()->m_worldTransformJob;
+ }
- QVector<Qt3DCore::QAspectJobPtr> updateBoundingJob()
- {
- d_func()->m_updateBoundingVolumeJob->setRoot(d_func()->m_renderer->sceneRoot());
- return QVector<Qt3DCore::QAspectJobPtr>() << d_func()->m_updateBoundingVolumeJob;
- }
+ QVector<Qt3DCore::QAspectJobPtr> updateBoundingJob()
+ {
+ d_func()->m_updateBoundingVolumeJob->setRoot(d_func()->m_renderer->sceneRoot());
+ return QVector<Qt3DCore::QAspectJobPtr>() << d_func()->m_updateBoundingVolumeJob;
+ }
- QVector<Qt3DCore::QAspectJobPtr> calculateBoundingVolumeJob()
- {
- d_func()->m_calculateBoundingVolumeJob->setRoot(d_func()->m_renderer->sceneRoot());
- return QVector<Qt3DCore::QAspectJobPtr>() << d_func()->m_calculateBoundingVolumeJob;
- }
+ QVector<Qt3DCore::QAspectJobPtr> calculateBoundingVolumeJob()
+ {
+ d_func()->m_calculateBoundingVolumeJob->setRoot(d_func()->m_renderer->sceneRoot());
+ return QVector<Qt3DCore::QAspectJobPtr>() << d_func()->m_calculateBoundingVolumeJob;
+ }
- QVector<Qt3DCore::QAspectJobPtr> framePreparationJob()
- {
- d_func()->m_framePreparationJob->setRoot(d_func()->m_renderer->sceneRoot());
- return QVector<Qt3DCore::QAspectJobPtr>() << d_func()->m_framePreparationJob;
- }
+ QVector<Qt3DCore::QAspectJobPtr> framePreparationJob()
+ {
+ d_func()->m_framePreparationJob->setRoot(d_func()->m_renderer->sceneRoot());
+ return QVector<Qt3DCore::QAspectJobPtr>() << d_func()->m_framePreparationJob;
+ }
- QVector<Qt3DCore::QAspectJobPtr> frameCleanupJob()
- {
- d_func()->m_cleanupJob->setRoot(d_func()->m_renderer->sceneRoot());
- return QVector<Qt3DCore::QAspectJobPtr>() << d_func()->m_cleanupJob;
- }
+ QVector<Qt3DCore::QAspectJobPtr> frameCleanupJob()
+ {
+ d_func()->m_cleanupJob->setRoot(d_func()->m_renderer->sceneRoot());
+ return QVector<Qt3DCore::QAspectJobPtr>() << d_func()->m_cleanupJob;
+ }
- QVector<Qt3DCore::QAspectJobPtr> renderBinJobs()
- {
- return d_func()->m_renderer->renderBinJobs();
- }
+ QVector<Qt3DCore::QAspectJobPtr> renderBinJobs()
+ {
+ return d_func()->m_renderer->renderBinJobs();
+ }
- void onRootEntityChanged(Qt3DCore::QEntity *root)
- {
- if (!m_window) {
- const Qt3DCore::QNodeCreatedChangeGenerator generator(root);
- const QVector<Qt3DCore::QNodeCreatedChangeBasePtr> creationChanges = generator.creationChanges();
+ void onRootEntityChanged(Qt3DCore::QEntity *root)
+ {
+ if (!m_window) {
+ const Qt3DCore::QNodeCreatedChangeGenerator generator(root);
+ const QVector<Qt3DCore::QNodeCreatedChangeBasePtr> creationChanges = generator.creationChanges();
- for (const Qt3DCore::QNodeCreatedChangeBasePtr change : creationChanges)
- d_func()->createBackendNode(change);
+ for (const Qt3DCore::QNodeCreatedChangeBasePtr change : creationChanges)
+ d_func()->createBackendNode(change);
- static_cast<Qt3DRender::Render::Renderer *>(d_func()->m_renderer)->m_renderSceneRoot =
- d_func()->m_renderer->nodeManagers()
- ->lookupResource<Qt3DRender::Render::Entity, Qt3DRender::Render::EntityManager>(root->id());
+ static_cast<Qt3DRender::Render::Renderer *>(d_func()->m_renderer)->m_renderSceneRoot =
+ d_func()->m_renderer->nodeManagers()
+ ->lookupResource<Qt3DRender::Render::Entity, Qt3DRender::Render::EntityManager>(root->id());
+ }
}
- }
-private:
- QScopedPointer<Qt3DCore::QAspectJobManager> m_jobManager;
- QScopedPointer<QWindow> m_window;
-};
+ private:
+ QScopedPointer<Qt3DCore::QAspectJobManager> m_jobManager;
+ QScopedPointer<QWindow> m_window;
+ };
+
+}
+
+QT_END_NAMESPACE
+
+using namespace Qt3DRender;
Qt3DCore::QEntity *loadFromQML(const QUrl &source)
{
@@ -231,7 +241,7 @@ private Q_SLOTS:
{
// GIVEN
QFETCH(Qt3DCore::QEntity*, rootEntity);
- TestAspect aspect;
+ QRenderAspectTester aspect;
Qt3DCore::QAbstractAspectPrivate::get(&aspect)->setRootAndCreateNodes(qobject_cast<Qt3DCore::QEntity *>(rootEntity),
QVector<Qt3DCore::QNodeCreatedChangeBasePtr>());
@@ -255,7 +265,7 @@ private Q_SLOTS:
{
// GIVEN
QFETCH(Qt3DCore::QEntity*, rootEntity);
- TestAspect aspect;
+ QRenderAspectTester aspect;
Qt3DCore::QAbstractAspectPrivate::get(&aspect)->setRootAndCreateNodes(qobject_cast<Qt3DCore::QEntity *>(rootEntity),
QVector<Qt3DCore::QNodeCreatedChangeBasePtr>());
@@ -279,7 +289,7 @@ private Q_SLOTS:
{
// GIVEN
QFETCH(Qt3DCore::QEntity*, rootEntity);
- TestAspect aspect;
+ QRenderAspectTester aspect;
Qt3DCore::QAbstractAspectPrivate::get(&aspect)->setRootAndCreateNodes(qobject_cast<Qt3DCore::QEntity *>(rootEntity),
QVector<Qt3DCore::QNodeCreatedChangeBasePtr>());
@@ -303,7 +313,7 @@ private Q_SLOTS:
{
// GIVEN
QFETCH(Qt3DCore::QEntity*, rootEntity);
- TestAspect aspect;
+ QRenderAspectTester aspect;
Qt3DCore::QAbstractAspectPrivate::get(&aspect)->setRootAndCreateNodes(qobject_cast<Qt3DCore::QEntity *>(rootEntity),
QVector<Qt3DCore::QNodeCreatedChangeBasePtr>());
@@ -327,7 +337,7 @@ private Q_SLOTS:
{
// GIVEN
QFETCH(Qt3DCore::QEntity*, rootEntity);
- TestAspect aspect;
+ QRenderAspectTester aspect;
Qt3DCore::QAbstractAspectPrivate::get(&aspect)->setRootAndCreateNodes(qobject_cast<Qt3DCore::QEntity *>(rootEntity),
QVector<Qt3DCore::QNodeCreatedChangeBasePtr>());
@@ -353,7 +363,7 @@ private Q_SLOTS:
// GIVEN
QFETCH(Qt3DCore::QEntity*, rootEntity);
QScopedPointer<QThread> aspectThread(new QThread);
- TestAspect aspect(true);
+ QRenderAspectTester aspect(true);
aspect.moveToThread(aspectThread.data());
qDebug() << 1;
diff --git a/tests/benchmarks/render/render.pro b/tests/benchmarks/render/render.pro
index 6accd1788..c553199e3 100644
--- a/tests/benchmarks/render/render.pro
+++ b/tests/benchmarks/render/render.pro
@@ -1,3 +1,5 @@
TEMPLATE=subdirs
-SUBDIRS += jobs
+contains(QT_CONFIG, private_tests) {
+ SUBDIRS += jobs
+}