summaryrefslogtreecommitdiffstats
path: root/src/Runtime/Source/engine/Qt3DSRenderRuntimeBindingImplTranslation.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/Runtime/Source/engine/Qt3DSRenderRuntimeBindingImplTranslation.cpp')
-rw-r--r--src/Runtime/Source/engine/Qt3DSRenderRuntimeBindingImplTranslation.cpp118
1 files changed, 74 insertions, 44 deletions
diff --git a/src/Runtime/Source/engine/Qt3DSRenderRuntimeBindingImplTranslation.cpp b/src/Runtime/Source/engine/Qt3DSRenderRuntimeBindingImplTranslation.cpp
index daf6c0f1..8b54e5d5 100644
--- a/src/Runtime/Source/engine/Qt3DSRenderRuntimeBindingImplTranslation.cpp
+++ b/src/Runtime/Source/engine/Qt3DSRenderRuntimeBindingImplTranslation.cpp
@@ -285,6 +285,23 @@ struct SRuntimePropertyParser
}
return false;
}
+ template <Qt3DSRenderDirtyFlags::Enum TDirtyType>
+ bool ParseProperty(QT3DSVec4 &outValue)
+ {
+ if (m_Type == Q3DStudio::ATTRIBUTETYPE_FLOAT4) {
+ QT3DSVec4 newValue(m_Value.m_FLOAT4[0], m_Value.m_FLOAT4[1], m_Value.m_FLOAT4[2],
+ m_Value.m_FLOAT4[3]);
+ if (outValue != newValue) {
+ outValue = newValue;
+ SetDirty<TDirtyType>();
+ return true;
+ }
+ } else {
+ QT3DS_ASSERT(false);
+ }
+ return false;
+ }
+
template <Qt3DSRenderDirtyFlags::Enum TDirtyType>
bool ParseProperty(CRegisteredString &outValue)
@@ -453,6 +470,7 @@ struct SRuntimePropertyParser
#define Scene_ClearColor_R ATTRIBUTE_BACKGROUNDCOLOR_R
#define Scene_ClearColor_G ATTRIBUTE_BACKGROUNDCOLOR_G
#define Scene_ClearColor_B ATTRIBUTE_BACKGROUNDCOLOR_B
+#define Scene_ClearColor_A ATTRIBUTE_BACKGROUNDCOLOR_A
#define Scene_UseClearColor ATTRIBUTE_BGCOLORENABLE
#define Node_Rotation ATTRIBUTE_ROTATION
#define Node_Rotation_X ATTRIBUTE_ROTATION_X
@@ -479,6 +497,7 @@ struct SRuntimePropertyParser
#define Layer_ClearColor_R ATTRIBUTE_BACKGROUNDCOLOR_R
#define Layer_ClearColor_G ATTRIBUTE_BACKGROUNDCOLOR_G
#define Layer_ClearColor_B ATTRIBUTE_BACKGROUNDCOLOR_B
+#define Layer_ClearColor_A ATTRIBUTE_BACKGROUNDCOLOR_A
#define Layer_Background ATTRIBUTE_BACKGROUND
#define Layer_BlendType ATTRIBUTE_BLENDTYPE
#define Layer_ProgressiveAAMode ATTRIBUTE_PROGRESSIVEAA
@@ -537,14 +556,17 @@ struct SRuntimePropertyParser
#define Light_DiffuseColor_R ATTRIBUTE_LIGHTDIFFUSE_R
#define Light_DiffuseColor_G ATTRIBUTE_LIGHTDIFFUSE_G
#define Light_DiffuseColor_B ATTRIBUTE_LIGHTDIFFUSE_B
+#define Light_DiffuseColor_A ATTRIBUTE_LIGHTDIFFUSE_A
#define Light_SpecularColor ATTRIBUTE_LIGHTSPECULAR
#define Light_SpecularColor_R ATTRIBUTE_LIGHTSPECULAR_R
#define Light_SpecularColor_G ATTRIBUTE_LIGHTSPECULAR_G
#define Light_SpecularColor_B ATTRIBUTE_LIGHTSPECULAR_B
+#define Light_SpecularColor_A ATTRIBUTE_LIGHTSPECULAR_A
#define Light_AmbientColor ATTRIBUTE_LIGHTAMBIENT
#define Light_AmbientColor_R ATTRIBUTE_LIGHTAMBIENT_R
#define Light_AmbientColor_G ATTRIBUTE_LIGHTAMBIENT_G
#define Light_AmbientColor_B ATTRIBUTE_LIGHTAMBIENT_B
+#define Light_AmbientColor_A ATTRIBUTE_LIGHTAMBIENT_A
#define Light_Brightness ATTRIBUTE_BRIGHTNESS
#define Light_LinearFade ATTRIBUTE_LINEARFADE
#define Light_ExponentialFade ATTRIBUTE_EXPFADE
@@ -572,6 +594,7 @@ struct SRuntimePropertyParser
#define Material_DiffuseColor_R ATTRIBUTE_DIFFUSE_R
#define Material_DiffuseColor_G ATTRIBUTE_DIFFUSE_G
#define Material_DiffuseColor_B ATTRIBUTE_DIFFUSE_B
+#define Material_DiffuseColor_A ATTRIBUTE_DIFFUSE_A
#define Material_DiffuseMaps_0 ATTRIBUTE_DIFFUSEMAP
#define Material_DiffuseMaps_1 ATTRIBUTE_DIFFUSEMAP2
#define Material_DiffuseMaps_2 ATTRIBUTE_DIFFUSEMAP3
@@ -580,6 +603,7 @@ struct SRuntimePropertyParser
#define Material_EmissiveColor_R ATTRIBUTE_EMISSIVECOLOR_R
#define Material_EmissiveColor_G ATTRIBUTE_EMISSIVECOLOR_G
#define Material_EmissiveColor_B ATTRIBUTE_EMISSIVECOLOR_B
+#define Material_EmissiveColor_A ATTRIBUTE_EMISSIVECOLOR_A
#define Material_EmissiveMap ATTRIBUTE_EMISSIVEMAP
#define Material_EmissiveMap2 ATTRIBUTE_EMISSIVEMAP2
#define Material_SpecularReflection ATTRIBUTE_SPECULARREFLECTION
@@ -589,6 +613,7 @@ struct SRuntimePropertyParser
#define Material_SpecularTint_R ATTRIBUTE_SPECULARTINT_R
#define Material_SpecularTint_G ATTRIBUTE_SPECULARTINT_G
#define Material_SpecularTint_B ATTRIBUTE_SPECULARTINT_B
+#define Material_SpecularTint_A ATTRIBUTE_SPECULARTINT_A
#define Material_IOR ATTRIBUTE_IOR
#define Material_FresnelPower ATTRIBUTE_FRESNELPOWER
#define Material_SpecularAmount ATTRIBUTE_SPECULARAMOUNT
@@ -641,9 +666,11 @@ struct SRuntimePropertyParser
#define Text_TextColor_R ATTRIBUTE_TEXTCOLOR_R
#define Text_TextColor_G ATTRIBUTE_TEXTCOLOR_G
#define Text_TextColor_B ATTRIBUTE_TEXTCOLOR_B
+#define Text_TextColor_A ATTRIBUTE_TEXTCOLOR_A
#define Text_BackColor_R ATTRIBUTE_BACKCOLOR_R
#define Text_BackColor_G ATTRIBUTE_BACKCOLOR_G
#define Text_BackColor_B ATTRIBUTE_BACKCOLOR_B
+#define Text_BackColor_A ATTRIBUTE_BACKCOLOR_A
#define Text_UseBackColor ATTRIBUTE_USEBACKCOLOR
#define Text_EnableAcceleratedFont ATTRIBUTE_ENABLEACCELERATEDFONT
#define Path_PathType ATTRIBUTE_PATHTYPE
@@ -664,121 +691,124 @@ struct SRuntimePropertyParser
#define SubPath_Closed ATTRIBUTE_CLOSED
// Fill in implementations for the actual parse tables.
-#define HANDLE_QT3DS_RENDER_PROPERTY(type, name, dirty) \
+#define HANDLE_QT3DS_RENDER_PROPERTY(type, name, dirty) \
case Q3DStudio::type##_##name: \
- inParser.ParseProperty<Qt3DSRenderDirtyFlags::dirty>(theItem.m_##name); \
+ inParser.ParseProperty<Qt3DSRenderDirtyFlags::dirty>(theItem.m_##name); \
break;
-#define HANDLE_QT3DS_RENDER_VEC3_PROPERTY(type, name, dirty) \
+#define HANDLE_QT3DS_RENDER_VEC3_PROPERTY(type, name, dirty) \
case Q3DStudio::type##_##name##_X: \
- inParser.ParseProperty<Qt3DSRenderDirtyFlags::dirty>(theItem.m_##name.x); \
+ inParser.ParseProperty<Qt3DSRenderDirtyFlags::dirty>(theItem.m_##name.x); \
break; \
case Q3DStudio::type##_##name##_Y: \
- inParser.ParseProperty<Qt3DSRenderDirtyFlags::dirty>(theItem.m_##name.y); \
+ inParser.ParseProperty<Qt3DSRenderDirtyFlags::dirty>(theItem.m_##name.y); \
break; \
case Q3DStudio::type##_##name##_Z: \
- inParser.ParseProperty<Qt3DSRenderDirtyFlags::dirty>(theItem.m_##name.z); \
+ inParser.ParseProperty<Qt3DSRenderDirtyFlags::dirty>(theItem.m_##name.z); \
break;
-#define HANDLE_QT3DS_RENDER_REAL_VEC2_PROPERTY(type, name, dirty) \
+#define HANDLE_QT3DS_RENDER_REAL_VEC2_PROPERTY(type, name, dirty) \
case Q3DStudio::type##_##name##_X: \
- inParser.ParseProperty<Qt3DSRenderDirtyFlags::dirty>(theItem.m_##name.x); \
+ inParser.ParseProperty<Qt3DSRenderDirtyFlags::dirty>(theItem.m_##name.x); \
break; \
case Q3DStudio::type##_##name##_Y: \
- inParser.ParseProperty<Qt3DSRenderDirtyFlags::dirty>(theItem.m_##name.y); \
+ inParser.ParseProperty<Qt3DSRenderDirtyFlags::dirty>(theItem.m_##name.y); \
break;
-#define HANDLE_QT3DS_RENDER_COLOR_PROPERTY(type, name, dirty) \
+#define HANDLE_QT3DS_RENDER_COLOR_PROPERTY(type, name, dirty) \
case Q3DStudio::type##_##name##_R: \
- inParser.ParseProperty<Qt3DSRenderDirtyFlags::dirty>(theItem.m_##name.x); \
+ inParser.ParseProperty<Qt3DSRenderDirtyFlags::dirty>(theItem.m_##name.x); \
break; \
case Q3DStudio::type##_##name##_G: \
- inParser.ParseProperty<Qt3DSRenderDirtyFlags::dirty>(theItem.m_##name.y); \
+ inParser.ParseProperty<Qt3DSRenderDirtyFlags::dirty>(theItem.m_##name.y); \
break; \
case Q3DStudio::type##_##name##_B: \
- inParser.ParseProperty<Qt3DSRenderDirtyFlags::dirty>(theItem.m_##name.z); \
+ inParser.ParseProperty<Qt3DSRenderDirtyFlags::dirty>(theItem.m_##name.z); \
+ break; \
+ case Q3DStudio::type##_##name##_A: \
+ inParser.ParseProperty<Qt3DSRenderDirtyFlags::dirty>(theItem.m_##name.w); \
break;
-#define HANDLE_QT3DS_RENDER_COLOR_VEC3_PROPERTY(type, name, dirty) \
+#define HANDLE_QT3DS_RENDER_COLOR_VEC3_PROPERTY(type, name, dirty) \
case Q3DStudio::type##_##name: \
- inParser.ParseProperty<Qt3DSRenderDirtyFlags::dirty>(theItem.m_##name); \
+ inParser.ParseProperty<Qt3DSRenderDirtyFlags::dirty>(theItem.m_##name); \
break;
-#define HANDLE_QT3DS_RENDER_TRANSFORM_VEC3_PROPERTY(type, name, dirty) \
+#define HANDLE_QT3DS_RENDER_TRANSFORM_VEC3_PROPERTY(type, name, dirty) \
case Q3DStudio::type##_##name: \
- inParser.ParseProperty<Qt3DSRenderDirtyFlags::dirty>(theItem.m_##name); \
+ inParser.ParseProperty<Qt3DSRenderDirtyFlags::dirty>(theItem.m_##name); \
break;
-#define HANDLE_QT3DS_RENDER_RADIAN_PROPERTY(type, name, dirty) \
+#define HANDLE_QT3DS_RENDER_RADIAN_PROPERTY(type, name, dirty) \
case Q3DStudio::type##_##name: \
- inParser.ParseRadianProperty<Qt3DSRenderDirtyFlags::dirty>(theItem.m_##name); \
+ inParser.ParseRadianProperty<Qt3DSRenderDirtyFlags::dirty>(theItem.m_##name); \
break;
// The runtime converts rotations for us.
-#define HANDLE_QT3DS_RENDER_VEC3_RADIAN_PROPERTY(type, name, dirty) \
+#define HANDLE_QT3DS_RENDER_VEC3_RADIAN_PROPERTY(type, name, dirty) \
case Q3DStudio::type##_##name##_X: \
- inParser.ParseProperty<Qt3DSRenderDirtyFlags::dirty>(theItem.m_##name.x); \
+ inParser.ParseProperty<Qt3DSRenderDirtyFlags::dirty>(theItem.m_##name.x); \
break; \
case Q3DStudio::type##_##name##_Y: \
- inParser.ParseProperty<Qt3DSRenderDirtyFlags::dirty>(theItem.m_##name.y); \
+ inParser.ParseProperty<Qt3DSRenderDirtyFlags::dirty>(theItem.m_##name.y); \
break; \
case Q3DStudio::type##_##name##_Z: \
- inParser.ParseProperty<Qt3DSRenderDirtyFlags::dirty>(theItem.m_##name.z); \
+ inParser.ParseProperty<Qt3DSRenderDirtyFlags::dirty>(theItem.m_##name.z); \
break;
-#define HANDLE_QT3DS_RENDER_OPACITY_PROPERTY(type, name, dirty) \
+#define HANDLE_QT3DS_RENDER_OPACITY_PROPERTY(type, name, dirty) \
case Q3DStudio::type##_##name: \
- inParser.ParseOpacityProperty<Qt3DSRenderDirtyFlags::dirty>(theItem.m_##name); \
+ inParser.ParseOpacityProperty<Qt3DSRenderDirtyFlags::dirty>(theItem.m_##name); \
break;
-#define HANDLE_QT3DS_ROTATION_ORDER_PROPERTY(type, name, dirty) \
+#define HANDLE_QT3DS_ROTATION_ORDER_PROPERTY(type, name, dirty) \
case Q3DStudio::type##_##name: \
- inParser.ParseRotationOrder<Qt3DSRenderDirtyFlags::dirty>(theItem.m_##name); \
+ inParser.ParseRotationOrder<Qt3DSRenderDirtyFlags::dirty>(theItem.m_##name); \
break;
-#define HANDLE_QT3DS_NODE_ORIENTATION_PROPERTY(type, name, dirty) \
+#define HANDLE_QT3DS_NODE_ORIENTATION_PROPERTY(type, name, dirty) \
case Q3DStudio::type##_##name: \
- inParser.ParseOrientation<Qt3DSRenderDirtyFlags::dirty>(theItem.m_Flags); \
+ inParser.ParseOrientation<Qt3DSRenderDirtyFlags::dirty>(theItem.m_Flags); \
break;
-#define HANDLE_QT3DS_RENDER_DEPTH_TEST_PROPERTY(type, name, dirty) \
+#define HANDLE_QT3DS_RENDER_DEPTH_TEST_PROPERTY(type, name, dirty) \
case Q3DStudio::type##_##name: \
- inParser.ParseInverseBoolean<Qt3DSRenderDirtyFlags::dirty>(theItem.m_##name); \
+ inParser.ParseInverseBoolean<Qt3DSRenderDirtyFlags::dirty>(theItem.m_##name); \
break;
-#define HANDLE_QT3DS_NODE_FLAGS_PROPERTY(type, name, dirty) \
+#define HANDLE_QT3DS_NODE_FLAGS_PROPERTY(type, name, dirty) \
case Q3DStudio::type##_##name: \
- inParser.ParseNodeFlagsProperty<Qt3DSRenderDirtyFlags::dirty>(theItem.m_Flags, \
+ inParser.ParseNodeFlagsProperty<Qt3DSRenderDirtyFlags::dirty>(theItem.m_Flags, \
NodeFlagValues::name); \
break;
-#define HANDLE_QT3DS_NODE_FLAGS_INVERSE_PROPERTY(type, name, dirty) \
+#define HANDLE_QT3DS_NODE_FLAGS_INVERSE_PROPERTY(type, name, dirty) \
case Q3DStudio::type##_##name: \
- inParser.ParseNodeFlagsInverseProperty<Qt3DSRenderDirtyFlags::dirty>(theItem.m_Flags, \
+ inParser.ParseNodeFlagsInverseProperty<Qt3DSRenderDirtyFlags::dirty>(theItem.m_Flags, \
NodeFlagValues::name); \
break;
-#define HANDLE_QT3DS_RENDER_ENUM_PROPERTY(type, name, dirty) \
+#define HANDLE_QT3DS_RENDER_ENUM_PROPERTY(type, name, dirty) \
case Q3DStudio::type##_##name: \
- inParser.ParseEnumProperty<Qt3DSRenderDirtyFlags::dirty>(theItem.m_##name); \
+ inParser.ParseEnumProperty<Qt3DSRenderDirtyFlags::dirty>(theItem.m_##name); \
break;
-#define HANDLE_QT3DS_RENDER_SOURCEPATH_PROPERTY(type, name, dirty) \
+#define HANDLE_QT3DS_RENDER_SOURCEPATH_PROPERTY(type, name, dirty) \
case Q3DStudio::type##_##name: \
- inParser.ParseAndResolveSourcePath<Qt3DSRenderDirtyFlags::dirty>(theItem.m_##name); \
+ inParser.ParseAndResolveSourcePath<Qt3DSRenderDirtyFlags::dirty>(theItem.m_##name); \
break;
-#define HANDLE_QT3DS_RENDER_ARRAY_PROPERTY(type, name, index, dirty) \
+#define HANDLE_QT3DS_RENDER_ARRAY_PROPERTY(type, name, index, dirty) \
case Q3DStudio::type##_##name##_##index: \
- inParser.ParseProperty<Qt3DSRenderDirtyFlags::dirty>(theItem.m_##name[index]); \
+ inParser.ParseProperty<Qt3DSRenderDirtyFlags::dirty>(theItem.m_##name[index]); \
break;
-#define HANDLE_QT3DS_RENDER_VEC2_PROPERTY(type, name, dirty) \
+#define HANDLE_QT3DS_RENDER_VEC2_PROPERTY(type, name, dirty) \
case Q3DStudio::type##_##name##_X: \
- inParser.ParseProperty<Qt3DSRenderDirtyFlags::dirty>(theItem.m_##name.x); \
+ inParser.ParseProperty<Qt3DSRenderDirtyFlags::dirty>(theItem.m_##name.x); \
break; \
case Q3DStudio::type##_##name##_Y: \
- inParser.ParseProperty<Qt3DSRenderDirtyFlags::dirty>(theItem.m_##name.y); \
+ inParser.ParseProperty<Qt3DSRenderDirtyFlags::dirty>(theItem.m_##name.y); \
break;
struct SSceneTranslator : public Qt3DSTranslator