From 54b0cb3a95edee5471d9899587040f82e0cb4819 Mon Sep 17 00:00:00 2001 From: Janne Kangas Date: Thu, 21 Mar 2019 13:38:12 +0200 Subject: Implement datainput getter API for OpenGL runtime MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Partially implements RT2 feature parity for datainput getters. (Min/max property is not exposed to QML side.) Task-id: QT3DS-3258 Change-Id: I9cce3e98289c3cac8d2c774bb53eb75f445b6e17 Reviewed-by: Tomi Korpipää --- .../Source/engine/Qt3DSTegraApplication.cpp | 32 ++++++++++++++++++++-- src/Runtime/Source/engine/Qt3DSTegraApplication.h | 24 ++++++++++++++-- 2 files changed, 50 insertions(+), 6 deletions(-) (limited to 'src/Runtime/Source/engine') diff --git a/src/Runtime/Source/engine/Qt3DSTegraApplication.cpp b/src/Runtime/Source/engine/Qt3DSTegraApplication.cpp index 92c7f6cc..663fe836 100644 --- a/src/Runtime/Source/engine/Qt3DSTegraApplication.cpp +++ b/src/Runtime/Source/engine/Qt3DSTegraApplication.cpp @@ -202,7 +202,13 @@ public: void SetPresentationAttribute(const char *presId, const char *, const char *value) override; void GoToTime(const char *elementPath, const float time) override; void SetGlobalAnimationTime(qint64 inMilliSecs) override; - void SetDataInputValue(const QString &name, const QVariant &value); + void SetDataInputValue(const QString &name, const QVariant &value, + Q3DSDataInput::ValueRole property) override; + + QList dataInputs() const override; + float dataInputMax(const QString &name) const override; + float dataInputMin(const QString &name) const override; + void SetAttribute(const char *elementPath, const char *attributeName, const char *value) override; bool GetAttribute(const char *elementPath, const char *attributeName, void *value) override; void FireEvent(const char *element, const char *evtName) override; @@ -543,11 +549,31 @@ void CNDDView::SetGlobalAnimationTime(qint64 inMilliSecs) m_Application->SetTimeMilliSecs(inMilliSecs); } -void CNDDView::SetDataInputValue(const QString &name, const QVariant &value) +void CNDDView::SetDataInputValue( + const QString &name, const QVariant &value, + Q3DSDataInput::ValueRole property = Q3DSDataInput::ValueRole::Value) { Q3DStudio::CQmlEngine &theBridgeEngine = static_cast(m_RuntimeFactoryCore->GetScriptEngineQml()); - theBridgeEngine.SetDataInputValue(name, value); + theBridgeEngine.SetDataInputValue(name, value, property); +} + +QList CNDDView::dataInputs() const +{ + if (m_Application) + return m_Application->dataInputs(); + + return {}; +} + +float CNDDView::dataInputMax(const QString &name) const +{ + return m_Application->dataInputMax(name); +} + +float CNDDView::dataInputMin(const QString &name) const +{ + return m_Application->dataInputMin(name); } void CNDDView::SetAttribute(const char *elementPath, const char *attributeName, const char *value) diff --git a/src/Runtime/Source/engine/Qt3DSTegraApplication.h b/src/Runtime/Source/engine/Qt3DSTegraApplication.h index 91233355..75b6058b 100644 --- a/src/Runtime/Source/engine/Qt3DSTegraApplication.h +++ b/src/Runtime/Source/engine/Qt3DSTegraApplication.h @@ -38,6 +38,7 @@ #include "render/Qt3DSRenderBaseTypes.h" #include "EASTL/string.h" #include "foundation/Qt3DSRefCounted.h" +#include "q3dsdatainput.h" #include "Qt3DSWindowSystem.h" #include "Qt3DSTimer.h" #include "Qt3DSPresentation.h" @@ -187,7 +188,11 @@ public: virtual void SetPresentationAttribute(const char *presId, const char *, const char *value) = 0; virtual void GoToTime(const char *elementPath, const float time) = 0; virtual void SetGlobalAnimationTime(qint64 inMilliSecs) = 0; - virtual void SetDataInputValue(const QString &name, const QVariant &value) = 0; + virtual void SetDataInputValue(const QString &name, const QVariant &value, + Q3DSDataInput::ValueRole property) = 0; + virtual QList dataInputs() const = 0; + virtual float dataInputMax(const QString &name) const = 0; + virtual float dataInputMin(const QString &name) const = 0; virtual void SetAttribute(const char *elementPath, const char *attributeName, const char *value) = 0; virtual bool GetAttribute(const char *elementPath, const char *attributeName, void *value) = 0; @@ -280,9 +285,22 @@ public: { m_NDDView->SetGlobalAnimationTime(inMilliSecs); } - void SetDataInputValue(const QString &name, const QVariant &value) + void SetDataInputValue(const QString &name, const QVariant &value, + Q3DSDataInput::ValueRole property = Q3DSDataInput::ValueRole::Value) { - m_NDDView->SetDataInputValue(name, value); + m_NDDView->SetDataInputValue(name, value, property); + } + QList dataInputs() const + { + return m_NDDView->dataInputs(); + } + float datainputMax(const QString &name) const + { + return m_NDDView->dataInputMax(name); + } + float datainputMin(const QString &name) const + { + return m_NDDView->dataInputMin(name); } void SetAttribute(const char *elementPath, const char *attributeName, const char *value) { -- cgit v1.2.3