summaryrefslogtreecommitdiffstats
path: root/src/Authoring/QT3DSDM/Systems/Qt3DSDMWStrOpsImpl.h
diff options
context:
space:
mode:
authorMahmoud Badri <mahmoud.badri@qt.io>2019-04-16 13:42:13 +0300
committerMahmoud Badri <mahmoud.badri@qt.io>2019-05-02 10:19:23 +0000
commit3dc7636713c98ce2748d367f8525fcab85a6c425 (patch)
tree12411317058e10feae817e25c33f0e5e24577298 /src/Authoring/QT3DSDM/Systems/Qt3DSDMWStrOpsImpl.h
parent437593e677cd1ed85ef846a3488dc3212fdde54a (diff)
Support alpha channel initial work
In this initial work, all (almost) color properties are converted into a new type (float4) to support an alpha channel. Alpha channel option is shown in the color dialog for Layer and Scene background properties only. The following is remaining: - Scene background alpha doesn't work in the editor (works in the viewer RT1) Task-number: QT3DS-3128 Change-Id: Ib5540ebc8e2ff68709473451e4a92bf66ddb8ad2 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
Diffstat (limited to 'src/Authoring/QT3DSDM/Systems/Qt3DSDMWStrOpsImpl.h')
-rw-r--r--src/Authoring/QT3DSDM/Systems/Qt3DSDMWStrOpsImpl.h44
1 files changed, 25 insertions, 19 deletions
diff --git a/src/Authoring/QT3DSDM/Systems/Qt3DSDMWStrOpsImpl.h b/src/Authoring/QT3DSDM/Systems/Qt3DSDMWStrOpsImpl.h
index 895e3ff5..9268e6dc 100644
--- a/src/Authoring/QT3DSDM/Systems/Qt3DSDMWStrOpsImpl.h
+++ b/src/Authoring/QT3DSDM/Systems/Qt3DSDMWStrOpsImpl.h
@@ -209,6 +209,7 @@ struct WStrOps<QT3DSF64>
#define QT3DS_WCHAR_T_Float L"Float"
#define QT3DS_WCHAR_T_Float2 L"Float2"
#define QT3DS_WCHAR_T_Float3 L"Float3"
+#define QT3DS_WCHAR_T_Float4 L"Float4"
#define QT3DS_WCHAR_T_Long L"Long"
#define QT3DS_WCHAR_T_String L"String"
#define QT3DS_WCHAR_T_Bool L"Bool"
@@ -218,18 +219,19 @@ struct WStrOps<QT3DSF64>
#define QT3DS_WCHAR_T_StringOrInt L"StringOrInt"
#define QT3DS_WCHAR_T_FloatList L"FloatList"
-#define QT3DS_IMPORT_ITERATE_DMTYPE \
- QT3DS_IMPORT_HANDLE_DMTYPE(DataModelDataType::None, None, QT3DSF32) \
- QT3DS_IMPORT_HANDLE_DMTYPE(DataModelDataType::Float, Float, QT3DSF32) \
- QT3DS_IMPORT_HANDLE_DMTYPE(DataModelDataType::Float2, Float2, SFloat2) \
- QT3DS_IMPORT_HANDLE_DMTYPE(DataModelDataType::Float3, Float3, SFloat3) \
- QT3DS_IMPORT_HANDLE_DMTYPE(DataModelDataType::Long, Long, QT3DSI32) \
- QT3DS_IMPORT_HANDLE_DMTYPE(DataModelDataType::String, String, TDataStrPtr) \
- QT3DS_IMPORT_HANDLE_DMTYPE(DataModelDataType::Bool, Bool, bool) \
- QT3DS_IMPORT_HANDLE_DMTYPE(DataModelDataType::Long4, Long4, SLong4) \
- QT3DS_IMPORT_HANDLE_DMTYPE(DataModelDataType::StringRef, StringRef, SStringRef) \
- QT3DS_IMPORT_HANDLE_DMTYPE(DataModelDataType::ObjectRef, ObjectRef, SObjectRefType) \
- QT3DS_IMPORT_HANDLE_DMTYPE(DataModelDataType::StringOrInt, StringOrInt, SStringOrInt) \
+#define QT3DS_IMPORT_ITERATE_DMTYPE \
+ QT3DS_IMPORT_HANDLE_DMTYPE(DataModelDataType::None, None, QT3DSF32) \
+ QT3DS_IMPORT_HANDLE_DMTYPE(DataModelDataType::Float, Float, QT3DSF32) \
+ QT3DS_IMPORT_HANDLE_DMTYPE(DataModelDataType::Float2, Float2, SFloat2) \
+ QT3DS_IMPORT_HANDLE_DMTYPE(DataModelDataType::Float3, Float3, SFloat3) \
+ QT3DS_IMPORT_HANDLE_DMTYPE(DataModelDataType::Float4, Float4, SFloat4) \
+ QT3DS_IMPORT_HANDLE_DMTYPE(DataModelDataType::Long, Long, QT3DSI32) \
+ QT3DS_IMPORT_HANDLE_DMTYPE(DataModelDataType::String, String, TDataStrPtr) \
+ QT3DS_IMPORT_HANDLE_DMTYPE(DataModelDataType::Bool, Bool, bool) \
+ QT3DS_IMPORT_HANDLE_DMTYPE(DataModelDataType::Long4, Long4, SLong4) \
+ QT3DS_IMPORT_HANDLE_DMTYPE(DataModelDataType::StringRef, StringRef, SStringRef) \
+ QT3DS_IMPORT_HANDLE_DMTYPE(DataModelDataType::ObjectRef, ObjectRef, SObjectRefType) \
+ QT3DS_IMPORT_HANDLE_DMTYPE(DataModelDataType::StringOrInt, StringOrInt, SStringOrInt) \
QT3DS_IMPORT_HANDLE_DMTYPE(DataModelDataType::FloatList, FloatList, TFloatList)
template <>
@@ -239,9 +241,9 @@ struct WStrOps<DataModelDataType::Value>
{
const wchar_t *data = NULL;
switch (item) {
-#define QT3DS_IMPORT_HANDLE_DMTYPE(x, y, z) \
+#define QT3DS_IMPORT_HANDLE_DMTYPE(x, y, z) \
case x: \
- data = QT3DS_WCHAR_T_##y; \
+ data = QT3DS_WCHAR_T_##y; \
break;
QT3DS_IMPORT_ITERATE_DMTYPE
#undef QT3DS_IMPORT_HANDLE_DMTYPE
@@ -256,9 +258,8 @@ struct WStrOps<DataModelDataType::Value>
}
bool StrTo(const wchar_t *buffer, DataModelDataType::Value &item)
{
-
-#define QT3DS_IMPORT_HANDLE_DMTYPE(x, y, z) \
- if (AreEqual(buffer, QT3DS_WCHAR_T_##y)) { \
+#define QT3DS_IMPORT_HANDLE_DMTYPE(x, y, z) \
+ if (AreEqual(buffer, QT3DS_WCHAR_T_##y)) { \
item = x; \
return true; \
}
@@ -280,6 +281,7 @@ struct WStrOpsDMWriter
void operator()(float val) { buf.Write(val); }
void operator()(const SFloat2 &val) { buf.Write(NVConstDataRef<QT3DSF32>(&val[0], 2)); }
void operator()(const SFloat3 &val) { buf.Write(NVConstDataRef<QT3DSF32>(&val[0], 3)); }
+ void operator()(const SFloat4 &val) { buf.Write(NVConstDataRef<QT3DSF32>(&val[0], 4)); }
void operator()(QT3DSI32 val) { buf.Write(val); }
void operator()(bool val) { buf.Write(val); }
void operator()(const TDataStrPtr &val)
@@ -314,7 +316,7 @@ struct WStrOps<SValue>
SValue BufTo(DataModelDataType::Value type, TBufferType &inReader)
{
switch (type) {
-#define QT3DS_IMPORT_HANDLE_DMTYPE(x, y, z) \
+#define QT3DS_IMPORT_HANDLE_DMTYPE(x, y, z) \
case x: { \
z retval; \
Read(inReader, retval); \
@@ -344,6 +346,11 @@ struct WStrOps<SValue>
reader.ReadRef(NVDataRef<QT3DSF32>(&val[0], 3));
}
template <typename TBufferType>
+ void Read(TBufferType &reader, SFloat4 &val)
+ {
+ reader.ReadRef(NVDataRef<QT3DSF32>(&val[0], 4));
+ }
+ template <typename TBufferType>
void Read(TBufferType &reader, QT3DSI32 &val)
{
reader.Read(val);
@@ -566,7 +573,6 @@ struct WCharTReader
if (m_StartPtr)
m_StartPtr = FindNextNonWhitespace(m_StartPtr + 1);
}
- QT3DS_ASSERT(idx == data.size());
}
void ReadBuffer(NVConstDataRef<char8_t> &outBuffer)