summaryrefslogtreecommitdiffstats
path: root/src/uipparser
diff options
context:
space:
mode:
authorAntti Määttä <antti.maatta@qt.io>2020-10-04 16:57:42 +0300
committerAntti Määttä <antti.maatta@qt.io>2020-10-14 12:26:09 +0300
commit111c7f7ceb828caa091f237bd8ab0808e235f00c (patch)
treeec8be53df49e4fb6d44b6edb6a558e66272e676a /src/uipparser
parent4ff4abea88534aabdab9201140c7e610f0c709b9 (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.h3
-rw-r--r--src/uipparser/Qt3DSUIPParser.h2
-rw-r--r--src/uipparser/Qt3DSUIPParserImpl.cpp12
-rw-r--r--src/uipparser/Qt3DSUIPParserImpl.h3
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