summaryrefslogtreecommitdiffstats
path: root/src/render/materialsystem/qtechnique.cpp
diff options
context:
space:
mode:
authorPaul Lemire <paul.lemire@kdab.com>2016-04-25 11:06:47 +0200
committerSean Harmer <sean.harmer@kdab.com>2016-04-26 08:44:28 +0000
commit5197a01b9f0a451d60f20b9db4d88afb2c8d44c7 (patch)
treedcbcac5dab1a87c7c1e362b58fff4711ac8a7fbc /src/render/materialsystem/qtechnique.cpp
parent6d6c5702ad6a027dd26c1e47245c5952c50e1b66 (diff)
Technique/Renderer: use GraphicsShaderData
Instead of creating QGraphicsApiFilter objects... Change-Id: Idc723bdea9b97fef547170bd7dca386e5ca4f519 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'src/render/materialsystem/qtechnique.cpp')
-rw-r--r--src/render/materialsystem/qtechnique.cpp17
1 files changed, 4 insertions, 13 deletions
diff --git a/src/render/materialsystem/qtechnique.cpp b/src/render/materialsystem/qtechnique.cpp
index 9f1ed61d0..1c13bf66b 100644
--- a/src/render/materialsystem/qtechnique.cpp
+++ b/src/render/materialsystem/qtechnique.cpp
@@ -92,10 +92,8 @@ void QTechniquePrivate::_q_graphicsApiFilterChanged()
{
if (m_changeArbiter != Q_NULLPTR) {
QNodePropertyChangePtr change(new QNodePropertyChange(NodeUpdated, QSceneChange::Node, m_id));
- change->setPropertyName("graphicsApiFilter");
- QGraphicsApiFilter *clone = new QGraphicsApiFilter();
- clone->copy(m_graphicsApiFilter);
- change->setValue(QVariant::fromValue(clone));
+ change->setPropertyName("graphicsApiFilterData");
+ change->setValue(QVariant::fromValue(QGraphicsApiFilterPrivate::get(const_cast<QGraphicsApiFilter *>(&m_graphicsApiFilter))->m_data));
notifyObservers(change);
}
}
@@ -243,17 +241,10 @@ QGraphicsApiFilter *QTechnique::graphicsApiFilter()
Qt3DCore::QNodeCreatedChangeBasePtr QTechnique::createNodeCreationChange() const
{
auto creationChange = Qt3DCore::QNodeCreatedChangePtr<QTechniqueData>::create(this);
- auto &data = creationChange->data;
+ QTechniqueData &data = creationChange->data;
Q_D(const QTechnique);
- const QGraphicsApiFilter &filter = d->m_graphicsApiFilter;
- data.api = filter.api();
- data.profile = filter.profile();
- data.majorVersion = filter.majorVersion();
- data.minorVersion = filter.minorVersion();
- data.extensions = filter.extensions();
- data.vendor = filter.vendor();
-
+ data.graphicsApiFilterData = QGraphicsApiFilterPrivate::get(const_cast<QGraphicsApiFilter *>(&d->m_graphicsApiFilter))->m_data;
data.filterKeyIds = qIdsForNodes(d->m_filterKeys);
data.parameterIds = qIdsForNodes(d->m_parameters);
data.renderPassIds = qIdsForNodes(d->m_renderPasses);