summaryrefslogtreecommitdiffstats
path: root/src/extras/defaults
diff options
context:
space:
mode:
authorKevin Ottens <kevin.ottens@kdab.com>2017-01-25 13:22:46 +0100
committerKevin Ottens <kevin.ottens@kdab.com>2017-01-27 14:58:48 +0000
commitc5768dd2c04ebdb3a411e88bfa8af2767aa33368 (patch)
tree713fff74e1619c2392ec59d30ba1a188aafca555 /src/extras/defaults
parent0b031ca3c828e83772aaf5605722a5cc54a5683e (diff)
Align QForwardRenderer API with its QML counterpart
The QML based ForwardRenderer was slightly different: * window property instead of surface, so we provide an alias window name for surface in QForwardRenderer * frustumCulling property to control the corresponding node, also added here. Change-Id: I7ec51ee27e97c612ba09b73a43cf4d1baba343bf Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'src/extras/defaults')
-rw-r--r--src/extras/defaults/qforwardrenderer.cpp38
-rw-r--r--src/extras/defaults/qforwardrenderer.h5
2 files changed, 43 insertions, 0 deletions
diff --git a/src/extras/defaults/qforwardrenderer.cpp b/src/extras/defaults/qforwardrenderer.cpp
index d556b58d3..7790313e3 100644
--- a/src/extras/defaults/qforwardrenderer.cpp
+++ b/src/extras/defaults/qforwardrenderer.cpp
@@ -134,6 +134,7 @@ QForwardRenderer::QForwardRenderer(QNode *parent)
QObject::connect(d->m_cameraSelector, &QCameraSelector::cameraChanged, this, &QForwardRenderer::cameraChanged);
QObject::connect(d->m_surfaceSelector, &QRenderSurfaceSelector::surfaceChanged, this, &QForwardRenderer::surfaceChanged);
QObject::connect(d->m_surfaceSelector, &QRenderSurfaceSelector::externalRenderTargetSizeChanged, this, &QForwardRenderer::externalRenderTargetSizeChanged);
+ QObject::connect(d->m_frustumCulling, &QFrustumCulling::enabledChanged, this, &QForwardRenderer::frustumCullingEnabledChanged);
d->init();
}
@@ -171,6 +172,12 @@ void QForwardRenderer::setExternalRenderTargetSize(const QSize &size)
d->m_surfaceSelector->setExternalRenderTargetSize(size);
}
+void QForwardRenderer::setFrustumCullingEnabled(bool enabled)
+{
+ Q_D(QForwardRenderer);
+ d->m_frustumCulling->setEnabled(enabled);
+}
+
/*!
\qmlproperty rect ForwardRenderer::viewportRect
@@ -226,6 +233,21 @@ Qt3DCore::QEntity *QForwardRenderer::camera() const
}
/*!
+ \qmlproperty Object ForwardRenderer::window
+
+ Holds the current render surface.
+
+ \deprecated
+*/
+/*!
+ \property QForwardRenderer::window
+
+ Holds the current render surface.
+
+ \deprecated
+*/
+
+/*!
\qmlproperty Object ForwardRenderer::surface
Holds the current render surface.
@@ -247,6 +269,22 @@ QSize QForwardRenderer::externalRenderTargetSize() const
return d->m_surfaceSelector->externalRenderTargetSize();
}
+/*!
+ \qmlproperty color ForwardRenderer::frustumCulling
+
+ Indicates if the renderer applies frustum culling to the scene.
+*/
+/*!
+ \property QForwardRenderer::frustumCulling
+
+ Indicates if the renderer applies frustum culling to the scene.
+*/
+bool QForwardRenderer::isFrustumCullingEnabled() const
+{
+ Q_D(const QForwardRenderer);
+ return d->m_frustumCulling->isEnabled();
+}
+
} // namespace Qt3DExtras
QT_END_NAMESPACE
diff --git a/src/extras/defaults/qforwardrenderer.h b/src/extras/defaults/qforwardrenderer.h
index 01f50f452..6a2773029 100644
--- a/src/extras/defaults/qforwardrenderer.h
+++ b/src/extras/defaults/qforwardrenderer.h
@@ -57,10 +57,12 @@ class QT3DEXTRASSHARED_EXPORT QForwardRenderer : public Qt3DRender::QTechniqueFi
{
Q_OBJECT
Q_PROPERTY(QObject *surface READ surface WRITE setSurface NOTIFY surfaceChanged)
+ Q_PROPERTY(QObject *window READ surface WRITE setSurface NOTIFY surfaceChanged)
Q_PROPERTY(QRectF viewportRect READ viewportRect WRITE setViewportRect NOTIFY viewportRectChanged)
Q_PROPERTY(QColor clearColor READ clearColor WRITE setClearColor NOTIFY clearColorChanged)
Q_PROPERTY(Qt3DCore::QEntity *camera READ camera WRITE setCamera NOTIFY cameraChanged)
Q_PROPERTY(QSize externalRenderTargetSize READ externalRenderTargetSize WRITE setExternalRenderTargetSize NOTIFY externalRenderTargetSizeChanged)
+ Q_PROPERTY(bool frustumCulling READ isFrustumCullingEnabled WRITE setFrustumCullingEnabled NOTIFY frustumCullingEnabledChanged)
public:
explicit QForwardRenderer(Qt3DCore::QNode *parent = nullptr);
~QForwardRenderer();
@@ -70,6 +72,7 @@ public:
Qt3DCore::QEntity *camera() const;
QObject *surface() const;
QSize externalRenderTargetSize() const;
+ bool isFrustumCullingEnabled() const;
public Q_SLOTS:
void setViewportRect(const QRectF &viewportRect);
@@ -77,6 +80,7 @@ public Q_SLOTS:
void setCamera(Qt3DCore::QEntity *camera);
void setSurface(QObject * surface);
void setExternalRenderTargetSize(const QSize &size);
+ void setFrustumCullingEnabled(bool enabled);
Q_SIGNALS:
void viewportRectChanged(const QRectF &viewportRect);
@@ -84,6 +88,7 @@ Q_SIGNALS:
void cameraChanged(Qt3DCore::QEntity *camera);
void surfaceChanged(QObject *surface);
void externalRenderTargetSizeChanged(const QSize &size);
+ void frustumCullingEnabledChanged(bool enabled);
private:
Q_DECLARE_PRIVATE(QForwardRenderer)