summaryrefslogtreecommitdiffstats
path: root/src/runtimerender/Qt3DSRenderUIPSharedTranslation.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/runtimerender/Qt3DSRenderUIPSharedTranslation.h')
-rw-r--r--src/runtimerender/Qt3DSRenderUIPSharedTranslation.h485
1 files changed, 485 insertions, 0 deletions
diff --git a/src/runtimerender/Qt3DSRenderUIPSharedTranslation.h b/src/runtimerender/Qt3DSRenderUIPSharedTranslation.h
new file mode 100644
index 0000000..16ce139
--- /dev/null
+++ b/src/runtimerender/Qt3DSRenderUIPSharedTranslation.h
@@ -0,0 +1,485 @@
+/****************************************************************************
+**
+** Copyright (C) 2008-2012 NVIDIA Corporation.
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of Qt 3D Studio.
+**
+** $QT_BEGIN_LICENSE:GPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3 or (at your option) any later version
+** approved by the KDE Free Qt Foundation. The licenses are as published by
+** the Free Software Foundation and appearing in the file LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#pragma once
+#ifndef QT3DS_RENDER_UIP_SHARED_TRANSLATION_H
+#define QT3DS_RENDER_UIP_SHARED_TRANSLATION_H
+#include "Qt3DSRenderLight.h"
+#include "Qt3DSRenderCamera.h"
+#include "Qt3DSRenderDefaultMaterial.h"
+#include "Qt3DSRenderImage.h"
+#include "Qt3DSRenderText.h"
+#include "Qt3DSDMWindowsCompatibility.h"
+#include "Qt3DSRenderLayer.h"
+#include "Qt3DSRenderModel.h"
+#include "Qt3DSRenderPath.h"
+#include "Qt3DSRenderPresentation.h"
+
+// map from qt3dsdm to qt3ds::render
+namespace qt3ds {
+namespace render {
+
+ template <typename TEnumType>
+ struct SEnumParseMap
+ {
+ };
+
+ struct SEnumNameMap
+ {
+ QT3DSU32 m_Enum;
+ const wchar_t *m_WideName;
+ const char8_t *m_Name;
+ };
+
+ template <>
+ struct SEnumParseMap<RenderLightTypes::Enum>
+ {
+ static SEnumNameMap *GetMap();
+ };
+
+ template <>
+ struct SEnumParseMap<DefaultMaterialLighting::Enum>
+ {
+ static SEnumNameMap *GetMap();
+ };
+
+ template <>
+ struct SEnumParseMap<DefaultMaterialBlendMode::Enum>
+ {
+ static SEnumNameMap *GetMap();
+ };
+
+ template <>
+ struct SEnumParseMap<ImageMappingModes::Enum>
+ {
+ static SEnumNameMap *GetMap();
+ };
+
+ template <>
+ struct SEnumParseMap<NVRenderTextureCoordOp::Enum>
+ {
+ static SEnumNameMap *GetMap();
+ };
+
+ template <>
+ struct SEnumParseMap<TextHorizontalAlignment::Enum>
+ {
+ static SEnumNameMap *GetMap();
+ };
+
+ template <>
+ struct SEnumParseMap<TextVerticalAlignment::Enum>
+ {
+ static SEnumNameMap *GetMap();
+ };
+
+ template <>
+ struct SEnumParseMap<TextWordWrap::Enum>
+ {
+ static SEnumNameMap *GetMap();
+ };
+
+ template <>
+ struct SEnumParseMap<TextElide::Enum>
+ {
+ static SEnumNameMap *GetMap();
+ };
+
+ template <>
+ struct SEnumParseMap<AAModeValues::Enum>
+ {
+ static SEnumNameMap *GetMap();
+ };
+
+ template <>
+ struct SEnumParseMap<LayerBlendTypes::Enum>
+ {
+ static SEnumNameMap *GetMap();
+ };
+
+ template <>
+ struct SEnumParseMap<RenderRotationValues::Enum>
+ {
+ static SEnumNameMap *GetMap();
+ };
+
+ template <>
+ struct SEnumParseMap<CameraScaleModes::Enum>
+ {
+ static SEnumNameMap *GetMap();
+ };
+
+ template <>
+ struct SEnumParseMap<CameraScaleAnchors::Enum>
+ {
+ static SEnumNameMap *GetMap();
+ };
+ template <>
+ struct SEnumParseMap<HorizontalFieldValues::Enum>
+ {
+ static SEnumNameMap *GetMap();
+ };
+ template <>
+ struct SEnumParseMap<VerticalFieldValues::Enum>
+ {
+ static SEnumNameMap *GetMap();
+ };
+ template <>
+ struct SEnumParseMap<LayerUnitTypes::Enum>
+ {
+ static SEnumNameMap *GetMap();
+ };
+
+ template <>
+ struct SEnumParseMap<LayerBackground::Enum>
+ {
+ static SEnumNameMap *GetMap();
+ };
+
+ template <>
+ struct SEnumParseMap<DefaultMaterialSpecularModel::Enum>
+ {
+ static SEnumNameMap *GetMap();
+ };
+
+ template <>
+ struct SEnumParseMap<TessModeValues::Enum>
+ {
+ static SEnumNameMap *GetMap();
+ };
+
+ template <>
+ struct SEnumParseMap<PathCapping::Enum>
+ {
+ static SEnumNameMap *GetMap();
+ };
+
+ template <>
+ struct SEnumParseMap<PathTypes::Enum>
+ {
+ static SEnumNameMap *GetMap();
+ };
+
+ template <>
+ struct SEnumParseMap<PathPaintStyles::Enum>
+ {
+ static SEnumNameMap *GetMap();
+ };
+
+#define QT3DS_RENDER_WCHAR_T_XYZs L"XYZ"
+#define QT3DS_RENDER_WCHAR_T_YZXs L"YZX"
+#define QT3DS_RENDER_WCHAR_T_ZXYs L"ZXY"
+#define QT3DS_RENDER_WCHAR_T_XZYs L"XZY"
+#define QT3DS_RENDER_WCHAR_T_YXZs L"YXZ"
+#define QT3DS_RENDER_WCHAR_T_ZYXs L"ZYX"
+
+#define QT3DS_RENDER_WCHAR_T_XYZr L"XYZr"
+#define QT3DS_RENDER_WCHAR_T_YZXr L"YZXr"
+#define QT3DS_RENDER_WCHAR_T_ZXYr L"ZXYr"
+#define QT3DS_RENDER_WCHAR_T_XZYr L"XZYr"
+#define QT3DS_RENDER_WCHAR_T_YXZr L"YXZr"
+#define QT3DS_RENDER_WCHAR_T_ZYXr L"ZYXr"
+
+#define QT3DS_RENDER_CHAR_T_XYZs "XYZ"
+#define QT3DS_RENDER_CHAR_T_YZXs "YZX"
+#define QT3DS_RENDER_CHAR_T_ZXYs "ZXY"
+#define QT3DS_RENDER_CHAR_T_XZYs "XZY"
+#define QT3DS_RENDER_CHAR_T_YXZs "YXZ"
+#define QT3DS_RENDER_CHAR_T_ZYXs "ZYX"
+
+#define QT3DS_RENDER_CHAR_T_XYZr "XYZr"
+#define QT3DS_RENDER_CHAR_T_YZXr "YZXr"
+#define QT3DS_RENDER_CHAR_T_ZXYr "ZXYr"
+#define QT3DS_RENDER_CHAR_T_XZYr "XZYr"
+#define QT3DS_RENDER_CHAR_T_YXZr "YXZr"
+#define QT3DS_RENDER_CHAR_T_ZYXr "ZYXr"
+
+ inline QT3DSU32 MapRotationOrder(const wchar_t *inOrderStr)
+ {
+#define MAP_ROTATION_ORDER(name, postfix) \
+ if (wcscmp(inOrderStr, QT3DS_RENDER_WCHAR_T_##name##postfix) == 0) { \
+ return EulOrd##name##postfix; \
+ }
+ MAP_ROTATION_ORDER(XYZ, s);
+ MAP_ROTATION_ORDER(YZX, s);
+ MAP_ROTATION_ORDER(ZXY, s);
+ MAP_ROTATION_ORDER(XZY, s);
+ MAP_ROTATION_ORDER(YXZ, s);
+ MAP_ROTATION_ORDER(ZYX, s);
+ MAP_ROTATION_ORDER(XYZ, r);
+ MAP_ROTATION_ORDER(YZX, r);
+ MAP_ROTATION_ORDER(ZXY, r);
+ MAP_ROTATION_ORDER(XZY, r);
+ MAP_ROTATION_ORDER(YXZ, r);
+ MAP_ROTATION_ORDER(ZYX, r);
+#undef MAP_ROTATION_ORDER
+ return EulOrdYXZs;
+ }
+
+ inline QT3DSU32 MapRotationOrder(const char8_t *inOrderStr)
+ {
+#define MAP_ROTATION_ORDER(name, postfix) \
+ if (strcmp(inOrderStr, QT3DS_RENDER_CHAR_T_##name##postfix) == 0) { \
+ return EulOrd##name##postfix; \
+ }
+ MAP_ROTATION_ORDER(XYZ, s);
+ MAP_ROTATION_ORDER(YZX, s);
+ MAP_ROTATION_ORDER(ZXY, s);
+ MAP_ROTATION_ORDER(XZY, s);
+ MAP_ROTATION_ORDER(YXZ, s);
+ MAP_ROTATION_ORDER(ZYX, s);
+ MAP_ROTATION_ORDER(XYZ, r);
+ MAP_ROTATION_ORDER(YZX, r);
+ MAP_ROTATION_ORDER(ZXY, r);
+ MAP_ROTATION_ORDER(XZY, r);
+ MAP_ROTATION_ORDER(YXZ, r);
+ MAP_ROTATION_ORDER(ZYX, r);
+#undef MAP_ROTATION_ORDER
+ return EulOrdYXZs;
+ }
+
+ // the goal is to unify the systems that transfer information into the UICRender library.
+ // There are currently three such systems; the runtime, studio, and the uip loader that loads
+ // uip files
+ // directly into the render library.
+ // To do this, we need to have a mapping between a generic key and a given property on every
+ // object
+ // along with some information about what portion of the object model this property affects.
+
+ struct Qt3DSRenderDirtyFlags
+ {
+ enum Enum {
+ Unknown = 0,
+ Dirty = 1 << 0,
+ TransformDirty = 1 << 1,
+ TextDirty = 1 << 2,
+ };
+ };
+
+// Now we build out generic macros with no implementation that list all of the properties
+// on each struct that we care about. We will fill in these macros with implementation later.
+// Each macro will list the property name along with what dirty operation should get marked
+// Global parse tables that list every property used by the system.
+
+#define ITERATE_QT3DS_RENDER_SCENE_PROPERTIES \
+ HANDLE_QT3DS_RENDER_COLOR_PROPERTY(Scene, ClearColor, Dirty) \
+ HANDLE_QT3DS_RENDER_PROPERTY(Scene, UseClearColor, Dirty)
+
+#define ITERATE_QT3DS_RENDER_NODE_PROPERTIES \
+ HANDLE_QT3DS_RENDER_TRANSFORM_VEC3_PROPERTY(Node, Rotation, TransformDirty) \
+ HANDLE_QT3DS_RENDER_VEC3_RADIAN_PROPERTY(Node, Rotation, TransformDirty) \
+ HANDLE_QT3DS_RENDER_TRANSFORM_VEC3_PROPERTY(Node, Position, TransformDirty) \
+ HANDLE_QT3DS_RENDER_VEC3_PROPERTY(Node, Position, TransformDirty) \
+ HANDLE_QT3DS_RENDER_TRANSFORM_VEC3_PROPERTY(Node, Scale, TransformDirty) \
+ HANDLE_QT3DS_RENDER_VEC3_PROPERTY(Node, Scale, TransformDirty) \
+ HANDLE_QT3DS_RENDER_TRANSFORM_VEC3_PROPERTY(Node, Pivot, TransformDirty) \
+ HANDLE_QT3DS_RENDER_VEC3_PROPERTY(Node, Pivot, TransformDirty) \
+ HANDLE_QT3DS_RENDER_OPACITY_PROPERTY(Node, LocalOpacity, TransformDirty) \
+ HANDLE_QT3DS_ROTATION_ORDER_PROPERTY(Node, RotationOrder, TransformDirty) \
+ HANDLE_QT3DS_NODE_ORIENTATION_PROPERTY(Node, LeftHanded, TransformDirty)
+
+#define ITERATE_QT3DS_RENDER_LAYER_PROPERTIES \
+ HANDLE_QT3DS_NODE_FLAGS_INVERSE_PROPERTY(Layer, LayerEnableDepthTest, Dirty) \
+ HANDLE_QT3DS_NODE_FLAGS_INVERSE_PROPERTY(Layer, LayerEnableDepthPrePass, Dirty) \
+ HANDLE_QT3DS_RENDER_ENUM_PROPERTY(Layer, ProgressiveAAMode, Dirty) \
+ HANDLE_QT3DS_RENDER_ENUM_PROPERTY(Layer, MultisampleAAMode, Dirty) \
+ HANDLE_QT3DS_RENDER_PROPERTY(Layer, TemporalAAEnabled, Dirty) \
+ HANDLE_QT3DS_RENDER_COLOR_PROPERTY(Layer, ClearColor, Dirty) \
+ HANDLE_QT3DS_RENDER_ENUM_PROPERTY(Layer, BlendType, Dirty) \
+ HANDLE_QT3DS_RENDER_ENUM_PROPERTY(Layer, Background, Dirty) \
+ HANDLE_QT3DS_RENDER_SOURCEPATH_PROPERTY(Layer, TexturePath, Dirty) \
+ HANDLE_QT3DS_RENDER_ENUM_PROPERTY(Layer, HorizontalFieldValues, Dirty) \
+ HANDLE_QT3DS_RENDER_PROPERTY(Layer, Left, Dirty) \
+ HANDLE_QT3DS_RENDER_ENUM_PROPERTY(Layer, LeftUnits, Dirty) \
+ HANDLE_QT3DS_RENDER_PROPERTY(Layer, Width, Dirty) \
+ HANDLE_QT3DS_RENDER_ENUM_PROPERTY(Layer, WidthUnits, Dirty) \
+ HANDLE_QT3DS_RENDER_PROPERTY(Layer, Right, Dirty) \
+ HANDLE_QT3DS_RENDER_ENUM_PROPERTY(Layer, RightUnits, Dirty) \
+ HANDLE_QT3DS_RENDER_ENUM_PROPERTY(Layer, VerticalFieldValues, Dirty) \
+ HANDLE_QT3DS_RENDER_PROPERTY(Layer, Top, Dirty) \
+ HANDLE_QT3DS_RENDER_ENUM_PROPERTY(Layer, TopUnits, Dirty) \
+ HANDLE_QT3DS_RENDER_PROPERTY(Layer, Height, Dirty) \
+ HANDLE_QT3DS_RENDER_ENUM_PROPERTY(Layer, HeightUnits, Dirty) \
+ HANDLE_QT3DS_RENDER_PROPERTY(Layer, Bottom, Dirty) \
+ HANDLE_QT3DS_RENDER_ENUM_PROPERTY(Layer, BottomUnits, Dirty) \
+ HANDLE_QT3DS_RENDER_PROPERTY(Layer, AoStrength, Dirty) \
+ HANDLE_QT3DS_RENDER_PROPERTY(Layer, AoDistance, Dirty) \
+ HANDLE_QT3DS_RENDER_PROPERTY(Layer, AoSoftness, Dirty) \
+ HANDLE_QT3DS_RENDER_PROPERTY(Layer, AoBias, Dirty) \
+ HANDLE_QT3DS_RENDER_PROPERTY(Layer, AoDither, Dirty) \
+ HANDLE_QT3DS_RENDER_PROPERTY(Layer, ShadowStrength, Dirty) \
+ HANDLE_QT3DS_RENDER_PROPERTY(Layer, ShadowDist, Dirty) \
+ HANDLE_QT3DS_RENDER_PROPERTY(Layer, ShadowSoftness, Dirty) \
+ HANDLE_QT3DS_RENDER_PROPERTY(Layer, ShadowBias, Dirty) \
+ HANDLE_QT3DS_RENDER_PROPERTY(Layer, LightProbe, Dirty) \
+ HANDLE_QT3DS_RENDER_PROPERTY(Layer, ProbeBright, Dirty) \
+ HANDLE_QT3DS_RENDER_PROPERTY(Layer, FastIbl, Dirty) \
+ HANDLE_QT3DS_RENDER_PROPERTY(Layer, ProbeHorizon, Dirty) \
+ HANDLE_QT3DS_RENDER_PROPERTY(Layer, ProbeFov, Dirty) \
+ HANDLE_QT3DS_RENDER_PROPERTY(Layer, LightProbe2, Dirty) \
+ HANDLE_QT3DS_RENDER_PROPERTY(Layer, Probe2Fade, Dirty) \
+ HANDLE_QT3DS_RENDER_PROPERTY(Layer, Probe2Window, Dirty) \
+ HANDLE_QT3DS_RENDER_PROPERTY(Layer, Probe2Pos, Dirty)
+
+#define ITERATE_QT3DS_RENDER_CAMERA_PROPERTIES \
+ HANDLE_QT3DS_RENDER_PROPERTY(Camera, ClipNear, Dirty) \
+ HANDLE_QT3DS_RENDER_PROPERTY(Camera, ClipFar, Dirty) \
+ HANDLE_QT3DS_RENDER_RADIAN_PROPERTY(Camera, FOV, Dirty) \
+ HANDLE_QT3DS_RENDER_PROPERTY(Camera, FOVHorizontal, Dirty) \
+ HANDLE_QT3DS_NODE_FLAGS_PROPERTY(Camera, Orthographic, Dirty) \
+ HANDLE_QT3DS_RENDER_ENUM_PROPERTY(Camera, ScaleMode, Dirty) \
+ HANDLE_QT3DS_RENDER_ENUM_PROPERTY(Camera, ScaleAnchor, Dirty)
+
+#define ITERATE_QT3DS_RENDER_LIGHT_PROPERTIES \
+ HANDLE_QT3DS_RENDER_ENUM_PROPERTY(Light, LightType, Dirty) \
+ HANDLE_QT3DS_RENDER_PROPERTY(Light, Scope, Dirty) \
+ HANDLE_QT3DS_RENDER_COLOR_VEC3_PROPERTY(Light, DiffuseColor, Dirty) \
+ HANDLE_QT3DS_RENDER_COLOR_PROPERTY(Light, DiffuseColor, Dirty) \
+ HANDLE_QT3DS_RENDER_COLOR_VEC3_PROPERTY(Light, SpecularColor, Dirty) \
+ HANDLE_QT3DS_RENDER_COLOR_PROPERTY(Light, SpecularColor, Dirty) \
+ HANDLE_QT3DS_RENDER_COLOR_VEC3_PROPERTY(Light, AmbientColor, Dirty) \
+ HANDLE_QT3DS_RENDER_COLOR_PROPERTY(Light, AmbientColor, Dirty) \
+ HANDLE_QT3DS_RENDER_PROPERTY(Light, Brightness, Dirty) \
+ HANDLE_QT3DS_RENDER_PROPERTY(Light, LinearFade, Dirty) \
+ HANDLE_QT3DS_RENDER_PROPERTY(Light, ExponentialFade, Dirty) \
+ HANDLE_QT3DS_RENDER_PROPERTY(Light, AreaWidth, Dirty) \
+ HANDLE_QT3DS_RENDER_PROPERTY(Light, AreaHeight, Dirty) \
+ HANDLE_QT3DS_RENDER_PROPERTY(Light, CastShadow, Dirty) \
+ HANDLE_QT3DS_RENDER_PROPERTY(Light, ShadowBias, Dirty) \
+ HANDLE_QT3DS_RENDER_PROPERTY(Light, ShadowFactor, Dirty) \
+ HANDLE_QT3DS_RENDER_PROPERTY(Light, ShadowMapFar, Dirty) \
+ HANDLE_QT3DS_RENDER_PROPERTY(Light, ShadowMapFov, Dirty) \
+ HANDLE_QT3DS_RENDER_PROPERTY(Light, ShadowFilter, Dirty)
+
+#define ITERATE_QT3DS_RENDER_MODEL_PROPERTIES \
+ HANDLE_QT3DS_RENDER_SOURCEPATH_PROPERTY(Model, MeshPath, Dirty) \
+ HANDLE_QT3DS_RENDER_PROPERTY(Model, ShadowCaster, Dirty) \
+ HANDLE_QT3DS_RENDER_ENUM_PROPERTY(Model, TessellationMode, Dirty) \
+ HANDLE_QT3DS_RENDER_PROPERTY(Model, EdgeTess, Dirty) \
+ HANDLE_QT3DS_RENDER_PROPERTY(Model, InnerTess, Dirty)
+
+#define ITERATE_QT3DS_RENDER_CUSTOM_MATERIAL_PROPERTIES \
+ HANDLE_QT3DS_RENDER_PROPERTY(MaterialBase, IblProbe, Dirty)
+
+#define ITERATE_QT3DS_RENDER_LIGHTMAP_PROPERTIES \
+ HANDLE_QT3DS_RENDER_PROPERTY(Lightmaps, LightmapIndirect, Dirty) \
+ HANDLE_QT3DS_RENDER_PROPERTY(Lightmaps, LightmapRadiosity, Dirty) \
+ HANDLE_QT3DS_RENDER_PROPERTY(Lightmaps, LightmapShadow, Dirty)
+
+#define ITERATE_QT3DS_RENDER_MATERIAL_PROPERTIES \
+ HANDLE_QT3DS_RENDER_ENUM_PROPERTY(Material, Lighting, Dirty) \
+ HANDLE_QT3DS_RENDER_ENUM_PROPERTY(Material, BlendMode, Dirty) \
+ HANDLE_QT3DS_RENDER_PROPERTY(Material, VertexColors, Dirty) \
+ HANDLE_QT3DS_RENDER_PROPERTY(MaterialBase, IblProbe, Dirty) \
+ HANDLE_QT3DS_RENDER_COLOR_VEC3_PROPERTY(Material, DiffuseColor, Dirty) \
+ HANDLE_QT3DS_RENDER_COLOR_PROPERTY(Material, DiffuseColor, Dirty) \
+ HANDLE_QT3DS_RENDER_ARRAY_PROPERTY(Material, DiffuseMaps, 0, Dirty) \
+ HANDLE_QT3DS_RENDER_ARRAY_PROPERTY(Material, DiffuseMaps, 1, Dirty) \
+ HANDLE_QT3DS_RENDER_ARRAY_PROPERTY(Material, DiffuseMaps, 2, Dirty) \
+ HANDLE_QT3DS_RENDER_PROPERTY(Material, EmissivePower, Dirty) \
+ HANDLE_QT3DS_RENDER_COLOR_VEC3_PROPERTY(Material, EmissiveColor, Dirty) \
+ HANDLE_QT3DS_RENDER_COLOR_PROPERTY(Material, EmissiveColor, Dirty) \
+ HANDLE_QT3DS_RENDER_PROPERTY(Material, EmissiveMap, Dirty) \
+ HANDLE_QT3DS_RENDER_PROPERTY(Material, EmissiveMap2, Dirty) \
+ HANDLE_QT3DS_RENDER_PROPERTY(Material, SpecularReflection, Dirty) \
+ HANDLE_QT3DS_RENDER_PROPERTY(Material, SpecularMap, Dirty) \
+ HANDLE_QT3DS_RENDER_ENUM_PROPERTY(Material, SpecularModel, Dirty) \
+ HANDLE_QT3DS_RENDER_COLOR_VEC3_PROPERTY(Material, SpecularTint, Dirty) \
+ HANDLE_QT3DS_RENDER_COLOR_PROPERTY(Material, SpecularTint, Dirty) \
+ HANDLE_QT3DS_RENDER_PROPERTY(Material, FresnelPower, Dirty) \
+ HANDLE_QT3DS_RENDER_PROPERTY(Material, IOR, Dirty) \
+ HANDLE_QT3DS_RENDER_PROPERTY(Material, SpecularAmount, Dirty) \
+ HANDLE_QT3DS_RENDER_PROPERTY(Material, SpecularRoughness, Dirty) \
+ HANDLE_QT3DS_RENDER_PROPERTY(Material, RoughnessMap, Dirty) \
+ HANDLE_QT3DS_RENDER_OPACITY_PROPERTY(Material, Opacity, Dirty) \
+ HANDLE_QT3DS_RENDER_PROPERTY(Material, OpacityMap, Dirty) \
+ HANDLE_QT3DS_RENDER_PROPERTY(Material, BumpMap, Dirty) \
+ HANDLE_QT3DS_RENDER_PROPERTY(Material, BumpAmount, Dirty) \
+ HANDLE_QT3DS_RENDER_PROPERTY(Material, NormalMap, Dirty) \
+ HANDLE_QT3DS_RENDER_PROPERTY(Material, DisplacementMap, Dirty) \
+ HANDLE_QT3DS_RENDER_PROPERTY(Material, DisplaceAmount, Dirty) \
+ HANDLE_QT3DS_RENDER_PROPERTY(Material, TranslucencyMap, Dirty) \
+ HANDLE_QT3DS_RENDER_PROPERTY(Material, TranslucentFalloff, Dirty) \
+ HANDLE_QT3DS_RENDER_PROPERTY(Material, DiffuseLightWrap, Dirty)
+
+#define ITERATE_QT3DS_RENDER_REFERENCED_MATERIAL_PROPERTIES \
+ HANDLE_QT3DS_RENDER_PROPERTY(Material, ReferencedMaterial, Dirty)
+
+#define ITERATE_QT3DS_RENDER_IMAGE_PROPERTIES \
+ HANDLE_QT3DS_RENDER_SOURCEPATH_PROPERTY(Image, ImagePath, Dirty) \
+ HANDLE_QT3DS_RENDER_PROPERTY(Image, OffscreenRendererId, Dirty) \
+ HANDLE_QT3DS_RENDER_VEC2_PROPERTY(Image, Scale, TransformDirty) \
+ HANDLE_QT3DS_RENDER_VEC2_PROPERTY(Image, Pivot, TransformDirty) \
+ HANDLE_QT3DS_RENDER_RADIAN_PROPERTY(Image, Rotation, TransformDirty) \
+ HANDLE_QT3DS_RENDER_VEC2_PROPERTY(Image, Position, TransformDirty) \
+ HANDLE_QT3DS_RENDER_ENUM_PROPERTY(Image, MappingMode, Dirty) \
+ HANDLE_QT3DS_RENDER_ENUM_PROPERTY(Image, HorizontalTilingMode, Dirty) \
+ HANDLE_QT3DS_RENDER_ENUM_PROPERTY(Image, VerticalTilingMode, Dirty)
+
+#define ITERATE_QT3DS_RENDER_TEXT_PROPERTIES \
+ HANDLE_QT3DS_RENDER_PROPERTY(Text, Text, TextDirty) \
+ HANDLE_QT3DS_RENDER_PROPERTY(Text, Font, TextDirty) \
+ HANDLE_QT3DS_RENDER_PROPERTY(Text, FontSize, TextDirty) \
+ HANDLE_QT3DS_RENDER_ENUM_PROPERTY(Text, HorizontalAlignment, TextDirty) \
+ HANDLE_QT3DS_RENDER_ENUM_PROPERTY(Text, VerticalAlignment, TextDirty) \
+ HANDLE_QT3DS_RENDER_PROPERTY(Text, Leading, TextDirty) \
+ HANDLE_QT3DS_RENDER_PROPERTY(Text, Tracking, TextDirty) \
+ HANDLE_QT3DS_RENDER_PROPERTY(Text, DropShadow, TextDirty) \
+ HANDLE_QT3DS_RENDER_PROPERTY(Text, DropShadowStrength, TextDirty) \
+ HANDLE_QT3DS_RENDER_PROPERTY(Text, DropShadowOffsetX, TextDirty) \
+ HANDLE_QT3DS_RENDER_PROPERTY(Text, DropShadowOffsetY, TextDirty) \
+ HANDLE_QT3DS_RENDER_ENUM_PROPERTY(Text, WordWrap, TextDirty) \
+ HANDLE_QT3DS_RENDER_REAL_VEC2_PROPERTY(Text, BoundingBox, TextDirty) \
+ HANDLE_QT3DS_RENDER_ENUM_PROPERTY(Text, Elide, TextDirty) \
+ HANDLE_QT3DS_RENDER_COLOR_VEC3_PROPERTY(Text, TextColor, Dirty) \
+ HANDLE_QT3DS_RENDER_COLOR_PROPERTY(Text, TextColor, Dirty) \
+ HANDLE_QT3DS_RENDER_PROPERTY(Text, EnableAcceleratedFont, Dirty)
+
+#define ITERATE_QT3DS_RENDER_PATH_PROPERTIES \
+ HANDLE_QT3DS_RENDER_ENUM_PROPERTY(Path, PathType, Dirty) \
+ HANDLE_QT3DS_RENDER_PROPERTY(Path, Width, Dirty) \
+ HANDLE_QT3DS_RENDER_PROPERTY(Path, LinearError, Dirty) \
+ HANDLE_QT3DS_RENDER_PROPERTY(Path, EdgeTessAmount, Dirty) \
+ HANDLE_QT3DS_RENDER_PROPERTY(Path, InnerTessAmount, Dirty) \
+ HANDLE_QT3DS_RENDER_ENUM_PROPERTY(Path, BeginCapping, Dirty) \
+ HANDLE_QT3DS_RENDER_PROPERTY(Path, BeginCapOffset, Dirty) \
+ HANDLE_QT3DS_RENDER_PROPERTY(Path, BeginCapOpacity, Dirty) \
+ HANDLE_QT3DS_RENDER_PROPERTY(Path, BeginCapWidth, Dirty) \
+ HANDLE_QT3DS_RENDER_ENUM_PROPERTY(Path, EndCapping, Dirty) \
+ HANDLE_QT3DS_RENDER_PROPERTY(Path, EndCapOffset, Dirty) \
+ HANDLE_QT3DS_RENDER_PROPERTY(Path, EndCapOpacity, Dirty) \
+ HANDLE_QT3DS_RENDER_PROPERTY(Path, EndCapWidth, Dirty) \
+ HANDLE_QT3DS_RENDER_ENUM_PROPERTY(Path, PaintStyle, Dirty) \
+ HANDLE_QT3DS_RENDER_SOURCEPATH_PROPERTY(Path, PathBuffer, Dirty)
+
+#define ITERATE_QT3DS_RENDER_PATH_SUBPATH_PROPERTIES \
+ HANDLE_QT3DS_RENDER_PROPERTY(SubPath, Closed, Dirty)
+}
+}
+#endif