From 34db1fb59ca477af95311cb8249ee90b1e471184 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kaj=20Gr=C3=B6nholm?= Date: Fri, 18 Sep 2020 14:20:20 +0300 Subject: Add signal object MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add signal object type and use it instead of dummy group in activateactions autotest. Task-number: QT3DS-4165 Change-Id: Id10fcc95e3a8f9009db71e6c2d640a593e633d67 Reviewed-by: Antti Määttä Reviewed-by: Tomi Korpipää --- src/dm/systems/Qt3DSDMComposerTypeDefinitions.cpp | 2 ++ src/dm/systems/Qt3DSDMComposerTypeDefinitions.h | 19 +++++++++++++++++++ src/runtimerender/Qt3DSRenderUIPLoader.cpp | 3 +++ src/uipparser/Qt3DSUIPParser.h | 1 + src/uipparser/Qt3DSUIPParserImpl.cpp | 3 +++ .../studio3d/shared/presentation/activateactions.uip | 18 +++++++++--------- 6 files changed, 37 insertions(+), 9 deletions(-) diff --git a/src/dm/systems/Qt3DSDMComposerTypeDefinitions.cpp b/src/dm/systems/Qt3DSDMComposerTypeDefinitions.cpp index 3aacdec..fc2500a 100644 --- a/src/dm/systems/Qt3DSDMComposerTypeDefinitions.cpp +++ b/src/dm/systems/Qt3DSDMComposerTypeDefinitions.cpp @@ -109,6 +109,7 @@ struct DataConstructor #define QT3DS_WCHAR_T_Node L"Node" #define QT3DS_WCHAR_T_Layer L"Layer" #define QT3DS_WCHAR_T_Group L"Group" +#define QT3DS_WCHAR_T_Signal L"Signal" #define QT3DS_WCHAR_T_Model L"Model" #define QT3DS_WCHAR_T_Light L"Light" #define QT3DS_WCHAR_T_Camera L"Camera" @@ -513,6 +514,7 @@ SComposerObjectDefinitions::SComposerObjectDefinitions(IDataCore &inCore, IMetaD , m_Node(inCore, inMetaData, inCore.CreateInstance(), m_Typed, m_Asset) , m_Layer(inCore, inMetaData, inCore.CreateInstance(), m_Typed, m_Node) , m_Group(inCore, inMetaData, inCore.CreateInstance(), m_Typed, m_Node) + , m_Signal(inCore, inMetaData, inCore.CreateInstance(), m_Typed, m_Node) , m_Model(inCore, inMetaData, inCore.CreateInstance(), m_Typed, m_Node) , m_Light(inCore, inMetaData, inCore.CreateInstance(), m_Typed, m_Node) , m_Camera(inCore, inMetaData, inCore.CreateInstance(), m_Typed, m_Node) diff --git a/src/dm/systems/Qt3DSDMComposerTypeDefinitions.h b/src/dm/systems/Qt3DSDMComposerTypeDefinitions.h index e8bd139..bd1dcb5 100644 --- a/src/dm/systems/Qt3DSDMComposerTypeDefinitions.h +++ b/src/dm/systems/Qt3DSDMComposerTypeDefinitions.h @@ -67,6 +67,7 @@ class IPropertySystem; HANDLE_COMPOSER_OBJECT_TYPE(Node, ITERATE_COMPOSER_NODE_PROPERTIES) \ HANDLE_COMPOSER_OBJECT_TYPE(Layer, ITERATE_COMPOSER_LAYER_PROPERTIES) \ HANDLE_COMPOSER_OBJECT_TYPE(Group, ITERATE_COMPOSER_GROUP_PROPERTIES) \ + HANDLE_COMPOSER_OBJECT_TYPE(Signal, ITERATE_COMPOSER_SIGNAL_PROPERTIES) \ HANDLE_COMPOSER_OBJECT_TYPE(Model, ITERATE_COMPOSER_MODEL_PROPERTIES) \ HANDLE_COMPOSER_OBJECT_TYPE(Light, ITERATE_COMPOSER_LIGHT_PROPERTIES) \ HANDLE_COMPOSER_OBJECT_TYPE(Camera, ITERATE_COMPOSER_CAMERA_PROPERTIES) \ @@ -253,6 +254,9 @@ class IPropertySystem; HANDLE_COMPOSER_PROPERTY_DUPLICATE(ordered, m_ordered, bool, false) \ HANDLE_COMPOSER_PROPERTY_DUPLICATE(variants, m_variants, TDataStrPtr, L"") \ +#define ITERATE_COMPOSER_SIGNAL_PROPERTIES \ + // Note: Signal doesn't contain any properties + #define ITERATE_COMPOSER_LIGHT_PROPERTIES \ HANDLE_COMPOSER_PROPERTY(lighttype, m_LightType, TDataStrPtr, L"Directional") \ HANDLE_COMPOSER_PROPERTY(scope, m_Scope, SObjectRefType, L"") \ @@ -798,6 +802,21 @@ struct SComposerObjectDefinition } }; +template <> +struct SComposerObjectDefinition + : public SComposerBaseObjectDefinition +{ + SComposerObjectDefinition(IDataCore &inCore, IMetaData &inMetaData, + Qt3DSDMInstanceHandle inInstance, + SComposerObjectDefinition &inTyped, + SComposerObjectDefinition &inNode) + : SComposerBaseObjectDefinition(inCore, inMetaData, inInstance) + { + Derive(inCore, inNode); + SetType(inCore, inTyped); + } +}; + template <> struct SComposerObjectDefinition : public SComposerBaseObjectDefinition diff --git a/src/runtimerender/Qt3DSRenderUIPLoader.cpp b/src/runtimerender/Qt3DSRenderUIPLoader.cpp index 9630dc8..f276f6d 100644 --- a/src/runtimerender/Qt3DSRenderUIPLoader.cpp +++ b/src/runtimerender/Qt3DSRenderUIPLoader.cpp @@ -1260,6 +1260,9 @@ struct SRenderUIPLoader : public IDOMReferenceResolver case qt3dsdm::ComposerObjectTypes::Group: theNewObject = QT3DS_NEW(m_PresentationAllocator, SNode)(); break; + case qt3dsdm::ComposerObjectTypes::Signal: + theNewObject = QT3DS_NEW(m_PresentationAllocator, SNode)(); + break; case qt3dsdm::ComposerObjectTypes::Component: theNewObject = QT3DS_NEW(m_PresentationAllocator, SNode)(); break; diff --git a/src/uipparser/Qt3DSUIPParser.h b/src/uipparser/Qt3DSUIPParser.h index 7b4fc3f..1bbf7ba 100644 --- a/src/uipparser/Qt3DSUIPParser.h +++ b/src/uipparser/Qt3DSUIPParser.h @@ -94,6 +94,7 @@ struct UIPElementTypes Path, PathAnchorPoint, PathSubPath, + Signal }; }; diff --git a/src/uipparser/Qt3DSUIPParserImpl.cpp b/src/uipparser/Qt3DSUIPParserImpl.cpp index 4190915..8be40d7 100644 --- a/src/uipparser/Qt3DSUIPParserImpl.cpp +++ b/src/uipparser/Qt3DSUIPParserImpl.cpp @@ -2700,6 +2700,9 @@ SElementAndType CUIPParserImpl::GetElementForID(const char *inElementName) case qt3dsdm::ComposerObjectTypes::Group: theUIPType = UIPElementTypes::Group; break; + case qt3dsdm::ComposerObjectTypes::Signal: + theUIPType = UIPElementTypes::Signal; + break; case qt3dsdm::ComposerObjectTypes::Component: theUIPType = UIPElementTypes::Component; break; diff --git a/tests/auto/studio3d/shared/presentation/activateactions.uip b/tests/auto/studio3d/shared/presentation/activateactions.uip index 52ca81a..9adea68 100644 --- a/tests/auto/studio3d/shared/presentation/activateactions.uip +++ b/tests/auto/studio3d/shared/presentation/activateactions.uip @@ -1,5 +1,5 @@ - + #969696 #780000 #ff0055 #ffffff #0a0a0a #ffffff #a0a8b2 #ffffff #ff643a #ffffff #4694ff #ffffff #ff0800 #ffffff #280000 #ffffff @@ -12,8 +12,8 @@ - - + + @@ -30,21 +30,21 @@ - - + + - + - - + + - + -- cgit v1.2.3