summaryrefslogtreecommitdiffstats
path: root/src/extras/defaults
diff options
context:
space:
mode:
authorKevin Ottens <kevin.ottens@kdab.com>2017-01-31 17:27:32 +0100
committerSean Harmer <sean.harmer@kdab.com>2017-01-31 16:53:06 +0000
commit574fab140f3c389c59d955c092d30e0ad1d0bafb (patch)
tree7417d6ede589f1e6ef5583011a167eac51ced59c /src/extras/defaults
parenta9965e7e984d519079e52a9672ba6116931c741a (diff)
QForwardRenderer exposes the gamma of its viewport
Change-Id: I67d5d23bdec1c01ef3e31cfdd47f4e4dd8eeacf4 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'src/extras/defaults')
-rw-r--r--src/extras/defaults/qforwardrenderer.cpp23
-rw-r--r--src/extras/defaults/qforwardrenderer.h4
2 files changed, 27 insertions, 0 deletions
diff --git a/src/extras/defaults/qforwardrenderer.cpp b/src/extras/defaults/qforwardrenderer.cpp
index 7790313e3..3a5c6803b 100644
--- a/src/extras/defaults/qforwardrenderer.cpp
+++ b/src/extras/defaults/qforwardrenderer.cpp
@@ -135,6 +135,7 @@ QForwardRenderer::QForwardRenderer(QNode *parent)
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);
+ QObject::connect(d->m_viewport, &QViewport::gammaChanged, this, &QForwardRenderer::gammaChanged);
d->init();
}
@@ -178,6 +179,12 @@ void QForwardRenderer::setFrustumCullingEnabled(bool enabled)
d->m_frustumCulling->setEnabled(enabled);
}
+void QForwardRenderer::setGamma(float gamma)
+{
+ Q_D(QForwardRenderer);
+ d->m_viewport->setGamma(gamma);
+}
+
/*!
\qmlproperty rect ForwardRenderer::viewportRect
@@ -285,6 +292,22 @@ bool QForwardRenderer::isFrustumCullingEnabled() const
return d->m_frustumCulling->isEnabled();
}
+/*!
+ \qmlproperty color ForwardRenderer::gamma
+
+ Holds the gamma value the renderer applies to the scene.
+*/
+/*!
+ \property QForwardRenderer::gamma
+
+ Holds the gamma value the renderer applies to the scene.
+*/
+float QForwardRenderer::gamma() const
+{
+ Q_D(const QForwardRenderer);
+ return d->m_viewport->gamma();
+}
+
} // namespace Qt3DExtras
QT_END_NAMESPACE
diff --git a/src/extras/defaults/qforwardrenderer.h b/src/extras/defaults/qforwardrenderer.h
index 6a2773029..160236462 100644
--- a/src/extras/defaults/qforwardrenderer.h
+++ b/src/extras/defaults/qforwardrenderer.h
@@ -63,6 +63,7 @@ class QT3DEXTRASSHARED_EXPORT QForwardRenderer : public Qt3DRender::QTechniqueFi
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)
+ Q_PROPERTY(float gamma READ gamma WRITE setGamma NOTIFY gammaChanged)
public:
explicit QForwardRenderer(Qt3DCore::QNode *parent = nullptr);
~QForwardRenderer();
@@ -73,6 +74,7 @@ public:
QObject *surface() const;
QSize externalRenderTargetSize() const;
bool isFrustumCullingEnabled() const;
+ float gamma() const;
public Q_SLOTS:
void setViewportRect(const QRectF &viewportRect);
@@ -81,6 +83,7 @@ public Q_SLOTS:
void setSurface(QObject * surface);
void setExternalRenderTargetSize(const QSize &size);
void setFrustumCullingEnabled(bool enabled);
+ void setGamma(float gamma);
Q_SIGNALS:
void viewportRectChanged(const QRectF &viewportRect);
@@ -89,6 +92,7 @@ Q_SIGNALS:
void surfaceChanged(QObject *surface);
void externalRenderTargetSizeChanged(const QSize &size);
void frustumCullingEnabledChanged(bool enabled);
+ void gammaChanged(float gamma);
private:
Q_DECLARE_PRIVATE(QForwardRenderer)