diff options
author | Mahmoud Badri <mahmoud.badri@qt.io> | 2019-04-16 13:42:13 +0300 |
---|---|---|
committer | Mahmoud Badri <mahmoud.badri@qt.io> | 2019-05-02 10:19:23 +0000 |
commit | 3dc7636713c98ce2748d367f8525fcab85a6c425 (patch) | |
tree | 12411317058e10feae817e25c33f0e5e24577298 /src/Authoring/QT3DSDM/Systems/Qt3DSDMWStrOpsImpl.h | |
parent | 437593e677cd1ed85ef846a3488dc3212fdde54a (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.h | 44 |
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) |