diff options
author | Antti Määttä <antti.maatta@qt.io> | 2020-10-04 16:57:42 +0300 |
---|---|---|
committer | Antti Määttä <antti.maatta@qt.io> | 2020-10-14 12:26:09 +0300 |
commit | 111c7f7ceb828caa091f237bd8ab0808e235f00c (patch) | |
tree | ec8be53df49e4fb6d44b6edb6a558e66272e676a /src/uipparser | |
parent | 4ff4abea88534aabdab9201140c7e610f0c709b9 (diff) |
Fix issues in dynamic object texture change
-Add backwards compatibility with older presentations.
-Get dynamic object with instance handle.
-Set empty string to texture if it is not a reference.
-Create images for dynamic custom material textures.
-Add transform to effect textures and fix flipping the uv coordinates.
Task-number: QT3DS-4063
Change-Id: I5c72087e57d51679b321f017367cf93e56a32786
Reviewed-by: Kaj Grönholm <kaj.gronholm@qt.io>
Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
Diffstat (limited to 'src/uipparser')
-rw-r--r-- | src/uipparser/Qt3DSIPresentation.h | 3 | ||||
-rw-r--r-- | src/uipparser/Qt3DSUIPParser.h | 2 | ||||
-rw-r--r-- | src/uipparser/Qt3DSUIPParserImpl.cpp | 12 | ||||
-rw-r--r-- | src/uipparser/Qt3DSUIPParserImpl.h | 3 |
4 files changed, 15 insertions, 5 deletions
diff --git a/src/uipparser/Qt3DSIPresentation.h b/src/uipparser/Qt3DSIPresentation.h index a9d3644..982d4c7 100644 --- a/src/uipparser/Qt3DSIPresentation.h +++ b/src/uipparser/Qt3DSIPresentation.h @@ -153,6 +153,9 @@ public: // Event Callbacks public: // FrameData access virtual CPresentationFrameData &GetFrameData() = 0; + + virtual void setUIPVersion(int version) = 0; + virtual int getUIPVersion() const = 0; }; } // namespace Q3DStudio diff --git a/src/uipparser/Qt3DSUIPParser.h b/src/uipparser/Qt3DSUIPParser.h index 1bbf7ba..c740609 100644 --- a/src/uipparser/Qt3DSUIPParser.h +++ b/src/uipparser/Qt3DSUIPParser.h @@ -152,7 +152,7 @@ public: // Parse UIP file // Creation function static IUIPParser &Create(const QString &inFileName, IRuntimeMetaData &inMetaData, qt3ds::render::IInputStreamFactory &inStreamFactory, - qt3ds::foundation::IStringTable &inStrTable); + qt3ds::foundation::IStringTable &inStrTable, int &uipVersion); }; } // namespace Q3DStudio diff --git a/src/uipparser/Qt3DSUIPParserImpl.cpp b/src/uipparser/Qt3DSUIPParserImpl.cpp index e9f8104..923ff26 100644 --- a/src/uipparser/Qt3DSUIPParserImpl.cpp +++ b/src/uipparser/Qt3DSUIPParserImpl.cpp @@ -470,7 +470,8 @@ SParseSlideActionEntry *SParseSlideManager::FindAction(SParseSlide &inSlide, */ CUIPParserImpl::CUIPParserImpl(const QString &inFileName, IRuntimeMetaData &inMetaData, IInputStreamFactory &inFactory, - qt3ds::foundation::IStringTable &inStringTable) + qt3ds::foundation::IStringTable &inStringTable, + int &uipVersion) : m_MetaData(inMetaData) , m_InputStreamFactory(inFactory) , m_ParseElementManager(inMetaData, inStringTable) @@ -495,6 +496,9 @@ CUIPParserImpl::CUIPParserImpl(const QString &inFileName, IRuntimeMetaData &inMe qCCritical(qt3ds::INVALID_OPERATION) << "Invalid UIP file: " << inFileName.toLatin1().constData(); } + int version = 0; + if (m_DOMReader->Att("version", version)) + uipVersion = version; } // Create Helper class @@ -2773,9 +2777,11 @@ IRuntimeMetaData &CUIPParserImpl::GetMetaData() IUIPParser &IUIPParser::Create(const QString &inFileName, IRuntimeMetaData &inMetaData, IInputStreamFactory &inFactory, - qt3ds::foundation::IStringTable &inStrTable) + qt3ds::foundation::IStringTable &inStrTable, + int &uipVersion) { - CUIPParserImpl &retval = *new CUIPParserImpl(inFileName, inMetaData, inFactory, inStrTable); + CUIPParserImpl &retval = *new CUIPParserImpl(inFileName, inMetaData, inFactory, + inStrTable, uipVersion); return retval; } } diff --git a/src/uipparser/Qt3DSUIPParserImpl.h b/src/uipparser/Qt3DSUIPParserImpl.h index 939ba35..aef3d10 100644 --- a/src/uipparser/Qt3DSUIPParserImpl.h +++ b/src/uipparser/Qt3DSUIPParserImpl.h @@ -527,7 +527,8 @@ protected: //============================================================================== public: // Construction CUIPParserImpl(const QString &inFileName, IRuntimeMetaData &inMetaData, - IInputStreamFactory &inFactory, qt3ds::foundation::IStringTable &inStringTable); + IInputStreamFactory &inFactory, qt3ds::foundation::IStringTable &inStringTable, + int &uipVersion); virtual ~CUIPParserImpl(); public: // Parse UIP file |