[NUI] Sync with dalihub & API5 branch (#631)
[platform/core/csapi/tizenfx.git] / src / Tizen.NUI / src / public / VisualMaps.cs
index fde3f81..36589c1 100755 (executable)
@@ -1,29 +1,75 @@
-// Copyright (c) 2017 Samsung Electronics Co., Ltd.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
+/*
+ * Copyright(c) 2018 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+using System.Text;
+using System.Collections.Generic;
+using Tizen.NUI.BaseComponents;
+using System.ComponentModel;
 
 namespace Tizen.NUI
 {
-    using System.Text;
-    using System.Collections.Generic;
-    using Tizen.NUI.BaseComponents;
-
     /// <summary>
     /// A class encapsulating the transform map of the visual.
     /// </summary>
+    /// <since_tizen> 3 </since_tizen>
     public class VisualMap
     {
+        /// <summary>
+        /// outputVisualMap.
+        /// </summary>
+        /// <since_tizen> 3 </since_tizen>
+        protected PropertyMap _outputVisualMap = null;
+
+        /// <summary>
+        /// The shader of the visual.
+        /// </summary>
+        /// <since_tizen> 3 </since_tizen>
+        protected PropertyMap _shader = null;
+        //private PropertyMap _transform = null;
+
+        /// <summary>
+        /// The premultipliedAlpha of the visual.
+        /// </summary>
+        /// <since_tizen> 3 </since_tizen>
+        protected bool? _premultipliedAlpha = null;
+
+        /// <summary>
+        /// The mixColor of the Visual.
+        /// </summary>
+        /// <since_tizen> 3 </since_tizen>
+        protected Color _mixColor = null;
+
+        /// <summary>
+        /// The opacity of the visual.
+        /// </summary>
+        /// <since_tizen> 3 </since_tizen>
+        protected float? _opacity = null;
+
+        /// <summary>
+        /// The FittingMode of the visual.
+        /// </summary>
+        /// <since_tizen> 5 </since_tizen>
+        protected VisualFittingModeType? _visualFittingMode = null;
+
+        /// <summary>
+        /// The map for visual.
+        /// </summary>
+        /// <since_tizen> 3 </since_tizen>
+        protected PropertyMap _commonlyUsedMap = null;
+
         private Vector2 _visualSize = null;
         private Vector2 _visualOffset = null;
         private Vector2 _visualOffsetPolicy = null;
@@ -34,34 +80,19 @@ namespace Tizen.NUI
         private PropertyMap _visualTransformMap = null;
 
         private int? _depthIndex = null;
-        protected PropertyMap _outputVisualMap = null;
-
-        internal string Name
-        {
-            set;
-            get;
-        }
-
-        internal int VisualIndex
-        {
-            set;
-            get;
-        }
-
-        internal VisualView Parent
-        {
-            set;
-            get;
-        }
 
+        /// <summary>
+        /// Constructor.
+        /// </summary>
+        /// <since_tizen> 3 </since_tizen>
         public VisualMap()
         {
         }
 
         /// <summary>
-        /// Gets or sets the size of the visual.<br>
+        /// Gets or sets the size of the visual.<br />
         /// It can be either relative (percentage of the parent)
-        /// or absolute (in world units).<br>
+        /// or absolute (in world units).<br />
         /// Optional.
         /// </summary>
         /// <since_tizen> 3 </since_tizen>
@@ -83,9 +114,9 @@ namespace Tizen.NUI
         }
 
         /// <summary>
-        /// Gets or sets the offset of the visual.<br>
+        /// Gets or sets the offset of the visual.<br />
         /// It can be either relative (percentage of the parent)
-        /// or absolute (in world units).<br>
+        /// or absolute (in world units).<br />
         /// Optional.
         /// </summary>
         /// <since_tizen> 3 </since_tizen>
@@ -107,8 +138,8 @@ namespace Tizen.NUI
         }
 
         /// <summary>
-        /// Gets or sets the relative size of the visual<br>
-        /// (percentage [0.0f to 1.0f] of the control).<br>
+        /// Gets or sets the relative size of the visual<br />
+        /// (percentage [0.0f to 1.0f] of the control).<br />
         /// Optional.
         /// </summary>
         /// <since_tizen> 3 </since_tizen>
@@ -127,8 +158,8 @@ namespace Tizen.NUI
         }
 
         /// <summary>
-        /// Gets or sets the relative offset of the visual<br>
-        /// (percentage [0.0f to 1.0f] of the control).<br>
+        /// Gets or sets the relative offset of the visual<br />
+        /// (percentage [0.0f to 1.0f] of the control).<br />
         /// Optional.
         /// </summary>
         /// <since_tizen> 3 </since_tizen>
@@ -147,9 +178,9 @@ namespace Tizen.NUI
         }
 
         /// <summary>
-        /// Gets or sets whether the x and y offset values are relative<br>
-        /// (percentage [0.0f to 1.0f] of the control) or absolute (in world units).<br>
-        /// By default, both the x and the y offset are relative.<br>
+        /// Gets or sets whether the x and y offset values are relative<br />
+        /// (percentage [0.0f to 1.0f] of the control) or absolute (in world units).<br />
+        /// By default, both the x and the y offset are relative.<br />
         /// Optional.
         /// </summary>
         /// <since_tizen> 3 </since_tizen>
@@ -183,9 +214,9 @@ namespace Tizen.NUI
         }
 
         /// <summary>
-        /// Gets or sets whether the x offset values are relative<br>
-        /// (percentage [0.0f to 1.0f] of the control) or absolute (in world units).<br>
-        /// By default, the x offset is relative.<br>
+        /// Gets or sets whether the x offset values are relative<br />
+        /// (percentage [0.0f to 1.0f] of the control) or absolute (in world units).<br />
+        /// By default, the x offset is relative.<br />
         /// Optional.
         /// </summary>
         /// <since_tizen> 3 </since_tizen>
@@ -224,9 +255,9 @@ namespace Tizen.NUI
         }
 
         /// <summary>
-        /// Gets or sets whether the y offset values are relative<br>
-        /// (percentage [0.0f to 1.0f] of the control) or absolute (in world units).<br>
-        /// By default, the y offset is relative.<br>
+        /// Gets or sets whether the y offset values are relative<br />
+        /// (percentage [0.0f to 1.0f] of the control) or absolute (in world units).<br />
+        /// By default, the y offset is relative.<br />
         /// Optional.
         /// </summary>
         /// <since_tizen> 3 </since_tizen>
@@ -264,9 +295,9 @@ namespace Tizen.NUI
         }
 
         /// <summary>
-        /// Gets or sets whether the size values of the width or the height are relative<br>
-        /// (percentage [0.0f to 1.0f] of the control) or absolute (in world units).<br>
-        /// By default, offsets of both the width and the height are relative to the control's size.<br>
+        /// Gets or sets whether the size values of the width or the height are relative<br />
+        /// (percentage [0.0f to 1.0f] of the control) or absolute (in world units).<br />
+        /// By default, offsets of both the width and the height are relative to the control's size.<br />
         /// Optional.
         /// </summary>
         /// <since_tizen> 3 </since_tizen>
@@ -300,9 +331,9 @@ namespace Tizen.NUI
         }
 
         /// <summary>
-        /// Gets or sets whether size values of the width are relative.<br>
-        /// (percentage [0.0f to 1.0f] of the control) or absolute (in world units).<br>
-        /// By default, the value of the width is relative to the control's width.<br>
+        /// Gets or sets whether size values of the width are relative.<br />
+        /// (percentage [0.0f to 1.0f] of the control) or absolute (in world units).<br />
+        /// By default, the value of the width is relative to the control's width.<br />
         /// Optional.
         /// </summary>
         /// <since_tizen> 3 </since_tizen>
@@ -340,9 +371,9 @@ namespace Tizen.NUI
         }
 
         /// <summary>
-        /// Gets or sets whether size values of the height are relative<br>
-        /// (percentage [0.0f to 1.0f] of the control) or absolute (in world units).<br>
-        /// By default, the height value is relative to the control's height.<br>
+        /// Gets or sets whether size values of the height are relative<br />
+        /// (percentage [0.0f to 1.0f] of the control) or absolute (in world units).<br />
+        /// By default, the height value is relative to the control's height.<br />
         /// Optional.
         /// </summary>
         /// <since_tizen> 3 </since_tizen>
@@ -380,8 +411,8 @@ namespace Tizen.NUI
         }
 
         /// <summary>
-        /// Gets or sets the origin of the visual within its control area.<br>
-        /// By default, the origin is center.<br>
+        /// Gets or sets the origin of the visual within its control area.<br />
+        /// By default, the origin is center.<br />
         /// Optional.
         /// </summary>
         /// <since_tizen> 3 </since_tizen>
@@ -399,8 +430,8 @@ namespace Tizen.NUI
         }
 
         /// <summary>
-        /// Gets or sets the anchor point of the visual.<br>
-        /// By default, the anchor point is center.<br>
+        /// Gets or sets the anchor point of the visual.<br />
+        /// By default, the anchor point is center.<br />
         /// Optional.
         /// </summary>
         /// <since_tizen> 3 </since_tizen>
@@ -418,8 +449,8 @@ namespace Tizen.NUI
         }
 
         /// <summary>
-        /// Gets or sets the depth index of the visual.<br>
-        /// By default, the depth index is 0.<br>
+        /// Gets or sets the depth index of the visual.<br />
+        /// By default, the depth index is 0.<br />
         /// Optional.
         /// </summary>
         /// <since_tizen> 3 </since_tizen>
@@ -435,17 +466,6 @@ namespace Tizen.NUI
             }
         }
 
-        private void ComposingTransformMap()
-        {
-            _visualTransformMap = new PropertyMap();
-            if (_visualSize != null) { _visualTransformMap.Add((int)VisualTransformPropertyType.Size, new PropertyValue(_visualSize)); }
-            if (_visualOffset != null) { _visualTransformMap.Add((int)VisualTransformPropertyType.Offset, new PropertyValue(_visualOffset)); }
-            if (_visualOffsetPolicy != null) { _visualTransformMap.Add((int)VisualTransformPropertyType.OffsetPolicy, new PropertyValue(_visualOffsetPolicy)); }
-            if (_visualSizePolicy != null) { _visualTransformMap.Add((int)VisualTransformPropertyType.SizePolicy, new PropertyValue(_visualSizePolicy)); }
-            if (_visualOrigin != null) { _visualTransformMap.Add((int)VisualTransformPropertyType.Origin, new PropertyValue((int)_visualOrigin)); }
-            if (_visualAnchorPoint != null) { _visualTransformMap.Add((int)VisualTransformPropertyType.AnchorPoint, new PropertyValue((int)_visualAnchorPoint)); }
-        }
-
         /// <summary>
         /// Gets the transform map used by the visual.
         /// </summary>
@@ -459,11 +479,6 @@ namespace Tizen.NUI
             }
         }
 
-        protected virtual void ComposingPropertyMap()
-        {
-            _outputVisualMap = new PropertyMap();
-        }
-
         /// <summary>
         /// Gets the property map to create the visual.
         /// </summary>
@@ -477,25 +492,6 @@ namespace Tizen.NUI
             }
         }
 
-        internal void UpdateVisual()
-        {
-            if (VisualIndex > 0)
-            {
-                NUILog.Debug("UpdateVisual()! VisualIndex=" + VisualIndex);
-                Parent.UpdateVisual(VisualIndex, Name, this);
-            }
-            else
-            {
-                NUILog.Debug("VisualIndex was not set");
-            }
-        }
-
-        protected PropertyMap _shader = null;
-        //private PropertyMap _transform = null;
-        protected bool? _premultipliedAlpha = null;
-        protected Color _mixColor = null;
-        protected float? _opacity = null;
-        protected PropertyMap _commonlyUsedMap = null;
 
         /// <summary>
         /// The shader to use in the visual.
@@ -515,7 +511,7 @@ namespace Tizen.NUI
         }
 
         /// <summary>
-        /// Enables or disables the premultiplied alpha. <br>
+        /// Enables or disables the premultiplied alpha. <br />
         /// The premultiplied alpha is false by default unless this behavior is modified by the derived visual type.
         /// </summary>
         /// <since_tizen> 3 </since_tizen>
@@ -566,19 +562,103 @@ namespace Tizen.NUI
             }
         }
 
+        /// <summary>
+        /// The fitting mode of the visual.
+        /// The default is defined by the type of visual (if it is suitable to be stretched or not).
+        /// </summary>
+        /// <since_tizen> 5 </since_tizen>
+        public VisualFittingModeType VisualFittingMode
+        {
+            get
+            {
+                if (_visualFittingMode == null)
+                {
+                    if (this is AnimatedImageVisual ||
+                        this is MeshVisual ||
+                        this is PrimitiveVisual ||
+                        this is TextVisual)
+                    {
+                        return VisualFittingModeType.FitKeepAspectRatio;
+                    }
+                    else
+                    {
+                        return VisualFittingModeType.Fill;
+                    }
+                }
+                else
+                {
+                    return (VisualFittingModeType)_visualFittingMode;
+                }
+            }
+            set
+            {
+                _visualFittingMode = value;
+                UpdateVisual();
+            }
+        }
+
+        internal string Name
+        {
+            set;
+            get;
+        }
+
+        internal int VisualIndex
+        {
+            set;
+            get;
+        }
+
+        internal VisualView Parent
+        {
+            set;
+            get;
+        }
+
+        internal void UpdateVisual()
+        {
+            if (VisualIndex > 0)
+            {
+                NUILog.Debug("UpdateVisual()! VisualIndex=" + VisualIndex);
+                Parent.UpdateVisual(VisualIndex, Name, this);
+            }
+            else
+            {
+                NUILog.Debug("VisualIndex was not set");
+            }
+        }
+
+        /// <summary>
+        /// Compose the out visual map.
+        /// </summary>
+        /// <since_tizen> 3 </since_tizen>
+        protected virtual void ComposingPropertyMap()
+        {
+            _outputVisualMap = new PropertyMap();
+        }
+
+        private void ComposingTransformMap()
+        {
+            _visualTransformMap = new PropertyMap();
+            if (_visualSize != null) { _visualTransformMap.Add((int)VisualTransformPropertyType.Size, new PropertyValue(_visualSize)); }
+            if (_visualOffset != null) { _visualTransformMap.Add((int)VisualTransformPropertyType.Offset, new PropertyValue(_visualOffset)); }
+            if (_visualOffsetPolicy != null) { _visualTransformMap.Add((int)VisualTransformPropertyType.OffsetPolicy, new PropertyValue(_visualOffsetPolicy)); }
+            if (_visualSizePolicy != null) { _visualTransformMap.Add((int)VisualTransformPropertyType.SizePolicy, new PropertyValue(_visualSizePolicy)); }
+            if (_visualOrigin != null) { _visualTransformMap.Add((int)VisualTransformPropertyType.Origin, new PropertyValue((int)_visualOrigin)); }
+            if (_visualAnchorPoint != null) { _visualTransformMap.Add((int)VisualTransformPropertyType.AnchorPoint, new PropertyValue((int)_visualAnchorPoint)); }
+        }
+
     }
 
     /// <summary>
     /// A class encapsulating the property map of the image visual.
     /// </summary>
+    /// <since_tizen> 3 </since_tizen>
     public class ImageVisual : VisualMap
     {
-        public ImageVisual() : base()
-        {
-        }
-
         private string _url = null;
         private string _alphaMaskUrl = null;
+        private string _auxiliaryImageUrl = null;
         private FittingModeType? _fittingMode = null;
         private SamplingModeType? _samplingMode = null;
         private int? _desiredWidth = null;
@@ -588,14 +668,26 @@ namespace Tizen.NUI
         private Vector4 _pixelArea = null;
         private WrapModeType? _wrapModeU = null;
         private WrapModeType? _wrapModeV = null;
+        private float? _auxiliaryImageAlpha = null;
         private float? _maskContentScale = null;
         private bool? _cropToMask = null;
+        private ReleasePolicyType? _releasePolicy = null;
+        private LoadPolicyType? _loadPolicy = null;
+        private bool? _orientationCorrection = true;
+        private bool? _atlasing = false;
 
         /// <summary>
-        /// Gets or sets the URL of the image.<br>
-        /// Mandatory.
+        /// Constructor.
         /// </summary>
+        /// <since_tizen> 3 </since_tizen>
+        public ImageVisual() : base()
+        {
+        }
 
+        /// <summary>
+        /// Gets or sets the URL of the image.<br />
+        /// Mandatory.
+        /// </summary>
         /// <since_tizen> 3 </since_tizen>
         public string URL
         {
@@ -612,7 +704,7 @@ namespace Tizen.NUI
 
 
         /// <summary>
-        /// Gets or sets the URL of the alpha mask.<br>
+        /// Gets or sets the URL of the alpha mask.<br />
         /// Optional.
         /// </summary>
         /// <since_tizen> 3 </since_tizen>
@@ -630,9 +722,27 @@ namespace Tizen.NUI
         }
 
         /// <summary>
-        /// Gets or sets fitting options used when resizing images to fit the desired dimensions.<br>
-        /// If not supplied, the default is FittingModeType.ShrinkToFit.<br>
-        /// For normal quad images only.<br>
+        /// Overlays the auxiliary image on top of an NPatch image.
+        /// The resulting visual image will be at least as large as the smallest possible n-patch or the auxiliary image, whichever is larger.
+        /// </summary>
+        /// <since_tizen> 5 </since_tizen>
+        public string AuxiliaryImageURL
+        {
+            get
+            {
+                return _auxiliaryImageUrl;
+            }
+            set
+            {
+                _auxiliaryImageUrl = value;
+                UpdateVisual();
+            }
+        }
+
+        /// <summary>
+        /// Gets or sets fitting options used when resizing images to fit the desired dimensions.<br />
+        /// If not supplied, the default is FittingModeType.ShrinkToFit.<br />
+        /// For normal quad images only.<br />
         /// Optional.
         /// </summary>
         /// <since_tizen> 3 </since_tizen>
@@ -650,9 +760,9 @@ namespace Tizen.NUI
         }
 
         /// <summary>
-        /// Gets or sets filtering options used when resizing images to the sample original pixels.<br>
-        /// If not supplied, the default is SamplingModeType.Box.<br>
-        /// For normal quad images only.<br>
+        /// Gets or sets filtering options used when resizing images to the sample original pixels.<br />
+        /// If not supplied, the default is SamplingModeType.Box.<br />
+        /// For normal quad images only.<br />
         /// Optional.
         /// </summary>
         /// <since_tizen> 3 </since_tizen>
@@ -670,9 +780,9 @@ namespace Tizen.NUI
         }
 
         /// <summary>
-        /// Gets or sets the desired image width.<br>
-        /// If not specified, the actual image width is used.<br>
-        /// For normal quad images only.<br>
+        /// Gets or sets the desired image width.<br />
+        /// If not specified, the actual image width is used.<br />
+        /// For normal quad images only.<br />
         /// Optional.
         /// </summary>
         /// <since_tizen> 3 </since_tizen>
@@ -690,9 +800,9 @@ namespace Tizen.NUI
         }
 
         /// <summary>
-        /// Gets or sets the desired image height.<br>
-        /// If not specified, the actual image height is used.<br>
-        /// For normal quad images only.<br>
+        /// Gets or sets the desired image height.<br />
+        /// If not specified, the actual image height is used.<br />
+        /// For normal quad images only.<br />
         /// Optional.
         /// </summary>
         /// <since_tizen> 3 </since_tizen>
@@ -710,9 +820,9 @@ namespace Tizen.NUI
         }
 
         /// <summary>
-        /// Gets or sets whether to load the image synchronously.<br>
-        /// If not specified, the default is false, i.e., the image is loaded asynchronously.<br>
-        /// For normal quad images only.<br>
+        /// Gets or sets whether to load the image synchronously.<br />
+        /// If not specified, the default is false, i.e., the image is loaded asynchronously.<br />
+        /// For normal quad images only.<br />
         /// Optional.
         /// </summary>
         /// <since_tizen> 3 </since_tizen>
@@ -730,9 +840,9 @@ namespace Tizen.NUI
         }
 
         /// <summary>
-        /// Gets or sets whether to draw the borders only (If true).<br>
-        /// If not specified, the default is false.<br>
-        /// For n-patch images only.<br>
+        /// Gets or sets whether to draw the borders only (If true).<br />
+        /// If not specified, the default is false.<br />
+        /// For n-patch images only.<br />
         /// Optional.
         /// </summary>
         /// <since_tizen> 3 </since_tizen>
@@ -750,11 +860,11 @@ namespace Tizen.NUI
         }
 
         /// <summary>
-        /// Gets or sets the image area to be displayed.<br>
-        /// It is a rectangular area.<br>
-        /// The first two elements indicate the top-left position of the area, and the last two elements are the areas of the width and the height respectively.<br>
-        /// If not specified, the default value is Vector4 (0.0, 0.0, 1.0, 1.0), i.e., the entire area of the image.<br>
-        /// For normal quad images only.<br>
+        /// Gets or sets the image area to be displayed.<br />
+        /// It is a rectangular area.<br />
+        /// The first two elements indicate the top-left position of the area, and the last two elements are the areas of the width and the height respectively.<br />
+        /// If not specified, the default value is Vector4 (0.0, 0.0, 1.0, 1.0), i.e., the entire area of the image.<br />
+        /// For normal quad images only.<br />
         /// Optional.
         /// </summary>
         /// <since_tizen> 3 </since_tizen>
@@ -772,10 +882,10 @@ namespace Tizen.NUI
         }
 
         /// <summary>
-        /// Gets or sets the wrap mode for the u coordinate.<br>
-        /// It decides how the texture should be sampled when the u coordinate exceeds the range of 0.0 to 1.0.<br>
-        /// If not specified, the default is WrapModeType.Default(CLAMP).<br>
-        /// For normal quad images only.<br>
+        /// Gets or sets the wrap mode for the u coordinate.<br />
+        /// It decides how the texture should be sampled when the u coordinate exceeds the range of 0.0 to 1.0.<br />
+        /// If not specified, the default is WrapModeType.Default(CLAMP).<br />
+        /// For normal quad images only.<br />
         /// Optional.
         /// </summary>
         /// <since_tizen> 3 </since_tizen>
@@ -793,10 +903,10 @@ namespace Tizen.NUI
         }
 
         /// <summary>
-        /// Gets or sets the wrap mode for the v coordinate.<br>
-        /// It decides how the texture should be sampled when the v coordinate exceeds the range of 0.0 to 1.0.<br>
-        /// The first two elements indicate the top-left position of the area, and the last two elements are the areas of the width and the height respectively.<br>
-        /// If not specified, the default is WrapModeType.Default(CLAMP).<br>
+        /// Gets or sets the wrap mode for the v coordinate.<br />
+        /// It decides how the texture should be sampled when the v coordinate exceeds the range of 0.0 to 1.0.<br />
+        /// The first two elements indicate the top-left position of the area, and the last two elements are the areas of the width and the height respectively.<br />
+        /// If not specified, the default is WrapModeType.Default(CLAMP).<br />
         /// For normal quad images only.
         /// Optional.
         /// </summary>
@@ -848,6 +958,102 @@ namespace Tizen.NUI
             }
         }
 
+        /// <summary>
+        ///  An alpha value for mixing between the masked main NPatch image and the auxiliary image.
+        /// </summary>
+        /// <since_tizen> 5 </since_tizen>
+        public float AuxiliaryImageAlpha
+        {
+            get
+            {
+                return _auxiliaryImageAlpha ?? 1.0f;
+            }
+            set
+            {
+                _auxiliaryImageAlpha = value;
+                UpdateVisual();
+            }
+        }
+
+        /// <summary>
+        /// Gets or sets the Image Visual release policy.<br/>
+        /// It decides if a texture should be released from the cache or kept to reduce the loading time.<br/>
+        /// </summary>
+        /// <since_tizen> 5 </since_tizen>
+        public ReleasePolicyType ReleasePolicy
+        {
+            get
+            {
+                return _releasePolicy ?? (ReleasePolicyType.Destroyed );
+            }
+            set
+            {
+                _releasePolicy = value;
+                UpdateVisual();
+            }
+        }
+
+
+        /// <summary>
+        /// Gets or sets the Image Visual image loading policy.<br />
+        /// It decides if a texture should be loaded immediately after source set or only after the visual is added to the window.<br />
+        /// </summary>
+        /// <since_tizen> 5 </since_tizen>
+        public LoadPolicyType LoadPolicy
+        {
+            get
+            {
+                return _loadPolicy ?? (LoadPolicyType.Attached);
+            }
+            set
+            {
+                _loadPolicy = value;
+                UpdateVisual();
+            }
+        }
+
+        /// <summary>
+        /// Gets or sets whether to automatically correct the orientation based on the Exchangeable Image File (EXIF) data.<br />
+        /// If not specified, the default is true.<br />
+        /// For JPEG images only.<br />
+        /// Optional.
+        /// </summary>
+        /// <since_tizen> 5 </since_tizen>
+        public bool OrientationCorrection
+        {
+            get
+            {
+                return _orientationCorrection ?? (true);
+            }
+            set
+            {
+                _orientationCorrection = value;
+                UpdateVisual();
+            }
+        }
+
+        /// <summary>
+        /// Whether to use the texture atlas or not.
+        /// Optional. By default atlasing is off.
+        /// </summary>
+        /// <since_tizen> 5 </since_tizen>
+        public bool Atlasing
+        {
+            get
+            {
+                return _atlasing ?? (false);
+            }
+            set
+            {
+                _atlasing = value;
+                UpdateVisual();
+            }
+        }
+
+        /// <summary>
+        /// Compose the out visual map.
+        /// </summary>
+        /// <since_tizen> 3 </since_tizen>
         protected override void ComposingPropertyMap()
         {
             if (_url != null)
@@ -856,6 +1062,7 @@ namespace Tizen.NUI
                 _outputVisualMap.Add(Visual.Property.Type, new PropertyValue((int)Visual.Type.Image));
                 _outputVisualMap.Add(ImageVisualProperty.URL, new PropertyValue(_url));
                 if (_alphaMaskUrl != null ) { _outputVisualMap.Add(ImageVisualProperty.AlphaMaskURL, new PropertyValue(_alphaMaskUrl)); }
+                if (_auxiliaryImageUrl != null ) { _outputVisualMap.Add(ImageVisualProperty.AuxiliaryImageURL, new PropertyValue(_auxiliaryImageUrl)); }
                 if (_fittingMode != null) { _outputVisualMap.Add(ImageVisualProperty.FittingMode, new PropertyValue((int)_fittingMode)); }
                 if (_samplingMode != null) { _outputVisualMap.Add(ImageVisualProperty.SamplingMode, new PropertyValue((int)_samplingMode)); }
                 if (_desiredWidth != null) { _outputVisualMap.Add(ImageVisualProperty.DesiredWidth, new PropertyValue((int)_desiredWidth)); }
@@ -871,6 +1078,12 @@ namespace Tizen.NUI
                 if (_opacity != null) { _outputVisualMap.Add((int)Visual.Property.Opacity, new PropertyValue((float)_opacity)); }
                 if (_maskContentScale != null) { _outputVisualMap.Add((int)ImageVisualProperty.MaskContentScale, new PropertyValue((float)_maskContentScale)); }
                 if (_cropToMask != null) { _outputVisualMap.Add((int)ImageVisualProperty.CropToMask, new PropertyValue((bool)_cropToMask)); }
+                if (_auxiliaryImageAlpha != null) { _outputVisualMap.Add((int)ImageVisualProperty.AuxiliaryImageAlpha, new PropertyValue((float)_auxiliaryImageAlpha)); }
+                if (_releasePolicy != null) { _outputVisualMap.Add( ImageVisualProperty.ReleasePolicy , new PropertyValue((int)_releasePolicy)); }
+                if (_loadPolicy != null) { _outputVisualMap.Add( ImageVisualProperty.LoadPolicy, new PropertyValue((int)_loadPolicy)); }
+                if (_orientationCorrection != null) { _outputVisualMap.Add( ImageVisualProperty.OrientationCorrection, new PropertyValue((bool)_orientationCorrection)); }
+                if (_atlasing != null) { _outputVisualMap.Add( ImageVisualProperty.Atlasing, new PropertyValue((bool)_atlasing)); }
+                if (_visualFittingMode != null) { _outputVisualMap.Add((int)Visual.Property.VisualFittingMode, new PropertyValue((int)_visualFittingMode)); }
             }
         }
     }
@@ -878,12 +1091,9 @@ namespace Tizen.NUI
     /// <summary>
     /// A class encapsulating the property map of the text visual.
     /// </summary>
+    /// <since_tizen> 3 </since_tizen>
     public class TextVisual : VisualMap
     {
-        public TextVisual() : base()
-        {
-        }
-
         private string _text = null;
         private string _fontFamily = null;
         private PropertyMap _fontStyle = null;
@@ -893,9 +1103,21 @@ namespace Tizen.NUI
         private string _verticalAlignment = null;
         private Color _textColor = null;
         private bool? _enableMarkup = null;
+        private PropertyMap _shadow = null;
+        private PropertyMap _underline = null;
+        private PropertyMap _outline = null;
+        private PropertyMap _background = null;
+
+        /// <summary>
+        /// Constructor.
+        /// </summary>
+        /// <since_tizen> 3 </since_tizen>
+        public TextVisual() : base()
+        {
+        }
 
         /// <summary>
-        /// Gets or sets the text to display in the UTF-8 format.<br>
+        /// Gets or sets the text to display in the UTF-8 format.<br />
         /// Mandatory.
         /// </summary>
         /// <since_tizen> 3 </since_tizen>
@@ -913,7 +1135,7 @@ namespace Tizen.NUI
         }
 
         /// <summary>
-        /// Gets or sets the requested font family to use.<br>
+        /// Gets or sets the requested font family to use.<br />
         /// Optional.
         /// </summary>
         /// <since_tizen> 3 </since_tizen>
@@ -931,7 +1153,7 @@ namespace Tizen.NUI
         }
 
         /// <summary>
-        /// Gets or sets the requested font style to use.<br>
+        /// Gets or sets the requested font style to use.<br />
         /// Optional.
         /// </summary>
         /// <since_tizen> 3 </since_tizen>
@@ -949,7 +1171,7 @@ namespace Tizen.NUI
         }
 
         /// <summary>
-        /// Gets or sets the size of font in points.<br>
+        /// Gets or sets the size of font in points.<br />
         /// Mandatory.
         /// </summary>
         /// <since_tizen> 3 </since_tizen>
@@ -967,8 +1189,8 @@ namespace Tizen.NUI
         }
 
         /// <summary>
-        /// Gets or sets the single-line or multi-line layout option.<br>
-        /// If not specified, the default is false.<br>
+        /// Gets or sets the single-line or multi-line layout option.<br />
+        /// If not specified, the default is false.<br />
         /// Optional.
         /// </summary>
         /// <since_tizen> 3 </since_tizen>
@@ -986,8 +1208,8 @@ namespace Tizen.NUI
         }
 
         /// <summary>
-        /// Gets or sets the line horizontal alignment.<br>
-        /// If not specified, the default is begin.<br>
+        /// Gets or sets the line horizontal alignment.<br />
+        /// If not specified, the default is begin.<br />
         /// Optional.
         /// </summary>
         /// <since_tizen> 3 </since_tizen>
@@ -1037,8 +1259,8 @@ namespace Tizen.NUI
         }
 
         /// <summary>
-        /// Gets or sets the line vertical alignment.<br>
-        /// If not specified, the default is top.<br>
+        /// Gets or sets the line vertical alignment.<br />
+        /// If not specified, the default is top.<br />
         /// Optional.
         /// </summary>
         /// <since_tizen> 3 </since_tizen>
@@ -1088,7 +1310,7 @@ namespace Tizen.NUI
         }
 
         /// <summary>
-        /// Gets or sets the color of the text.<br>
+        /// Gets or sets the color of the text.<br />
         /// Optional.
         /// </summary>
         /// <since_tizen> 3 </since_tizen>
@@ -1106,7 +1328,7 @@ namespace Tizen.NUI
         }
 
         /// <summary>
-        /// Gets or sets whether the mark-up processing is enabled.<br>
+        /// Gets or sets whether the mark-up processing is enabled.<br />
         /// Optional.
         /// </summary>
         /// <since_tizen> 3 </since_tizen>
@@ -1123,6 +1345,78 @@ namespace Tizen.NUI
             }
         }
 
+        /// <summary>
+        /// Gets or sets the shadow parameters.
+        /// </summary>
+        /// <since_tizen> 5 </since_tizen>
+        public PropertyMap Shadow
+        {
+            get
+            {
+                return _shadow;
+            }
+            set
+            {
+                _shadow = value;
+                UpdateVisual();
+            }
+        }
+
+        /// <summary>
+        /// Gets or sets the underline parameters.
+        /// </summary>
+        /// <since_tizen> 5 </since_tizen>
+        public PropertyMap Underline
+        {
+            get
+            {
+                return _underline;
+            }
+            set
+            {
+                _underline = value;
+                UpdateVisual();
+            }
+        }
+
+        /// <summary>
+        /// Gets or sets the outline parameters.
+        /// </summary>
+        /// <since_tizen> 5 </since_tizen>
+        public PropertyMap Outline
+        {
+            get
+            {
+                return _outline;
+            }
+            set
+            {
+                _outline = value;
+                UpdateVisual();
+            }
+        }
+
+        /// <summary>
+        /// Gets or sets the background parameters.
+        /// </summary>
+        /// <since_tizen> 5 </since_tizen>
+        public PropertyMap Background
+        {
+            get
+            {
+                return _background;
+            }
+            set
+            {
+                _background = value;
+                UpdateVisual();
+            }
+        }
+
+        /// <summary>
+        /// Compose the out visual map.
+        /// </summary>
+        /// <since_tizen> 3 </since_tizen>
         protected override void ComposingPropertyMap()
         {
             if (_text != null && _pointSize != null)
@@ -1142,6 +1436,11 @@ namespace Tizen.NUI
                 if (_premultipliedAlpha != null) { _outputVisualMap.Add((int)Visual.Property.PremultipliedAlpha, new PropertyValue((bool)_premultipliedAlpha)); }
                 if (_mixColor != null) { _outputVisualMap.Add((int)Visual.Property.MixColor, new PropertyValue(_mixColor)); }
                 if (_opacity != null) { _outputVisualMap.Add((int)Visual.Property.Opacity, new PropertyValue((float)_opacity)); }
+                if (_shadow != null) { _outputVisualMap.Add(TextVisualProperty.Shadow, new PropertyValue(_shadow)); }
+                if (_underline != null) { _outputVisualMap.Add(TextVisualProperty.Underline, new PropertyValue(_underline)); }
+                if (_outline != null) { _outputVisualMap.Add(TextVisualProperty.Outline, new PropertyValue(_outline)); }
+                if (_background != null) { _outputVisualMap.Add(TextVisualProperty.Background, new PropertyValue(_background)); }
+                if (_visualFittingMode != null) { _outputVisualMap.Add((int)Visual.Property.VisualFittingMode, new PropertyValue((int)_visualFittingMode)); }
             }
         }
     }
@@ -1149,18 +1448,23 @@ namespace Tizen.NUI
     /// <summary>
     /// A class encapsulating the property map of the border visual.
     /// </summary>
+    /// <since_tizen> 3 </since_tizen>
     public class BorderVisual : VisualMap
     {
-        public BorderVisual() : base()
-        {
-        }
-
         private Color _color = null;
         private float? _size = null;
         private bool? _antiAliasing = null;
 
         /// <summary>
-        /// Gets or sets the color of the border.<br>
+        /// Constructor.
+        /// </summary>
+        /// <since_tizen> 3 </since_tizen>
+        public BorderVisual() : base()
+        {
+        }
+
+        /// <summary>
+        /// Gets or sets the color of the border.<br />
         /// Mandatory.
         /// </summary>
         /// <since_tizen> 3 </since_tizen>
@@ -1178,7 +1482,7 @@ namespace Tizen.NUI
         }
 
         /// <summary>
-        /// Gets or sets the width of the border (in pixels).<br>
+        /// Gets or sets the width of the border (in pixels).<br />
         /// Mandatory.
         /// </summary>
         /// <since_tizen> 3 </since_tizen>
@@ -1196,8 +1500,8 @@ namespace Tizen.NUI
         }
 
         /// <summary>
-        /// Gets or sets whether the anti-aliasing of the border is required.<br>
-        /// If not supplied, the default is false.<br>
+        /// Gets or sets whether the anti-aliasing of the border is required.<br />
+        /// If not supplied, the default is false.<br />
         /// Optional.
         /// </summary>
         /// <since_tizen> 3 </since_tizen>
@@ -1214,6 +1518,10 @@ namespace Tizen.NUI
             }
         }
 
+        /// <summary>
+        /// Compose the out visual map.
+        /// </summary>
+        /// <since_tizen> 3 </since_tizen>
         protected override void ComposingPropertyMap()
         {
             if (_color != null && _size != null)
@@ -1227,6 +1535,7 @@ namespace Tizen.NUI
                 if (_premultipliedAlpha != null) { _outputVisualMap.Add((int)Visual.Property.PremultipliedAlpha, new PropertyValue((bool)_premultipliedAlpha)); }
                 if (_mixColor != null) { _outputVisualMap.Add((int)Visual.Property.MixColor, new PropertyValue(_mixColor)); }
                 if (_opacity != null) { _outputVisualMap.Add((int)Visual.Property.Opacity, new PropertyValue((float)_opacity)); }
+                if (_visualFittingMode != null) { _outputVisualMap.Add((int)Visual.Property.VisualFittingMode, new PropertyValue((int)_visualFittingMode)); }
             }
         }
     }
@@ -1234,16 +1543,22 @@ namespace Tizen.NUI
     /// <summary>
     /// A class encapsulating the property map of the color visual.
     /// </summary>
+    /// <since_tizen> 3 </since_tizen>
     public class ColorVisual : VisualMap
     {
+        private Color _mixColorForColorVisual = null;
+        private bool? _renderIfTransparent = false;
+
+        /// <summary>
+        /// Constructor.
+        /// </summary>
+        /// <since_tizen> 3 </since_tizen>
         public ColorVisual() : base()
         {
         }
 
-        private Color _mixColorForColorVisual = null;
-
         /// <summary>
-        /// Gets or sets the solid color required.<br>
+        /// Gets or sets the solid color required.<br />
         /// Mandatory.
         /// </summary>
         /// <since_tizen> 3 </since_tizen>
@@ -1260,6 +1575,28 @@ namespace Tizen.NUI
             }
         }
 
+        /// <summary>
+        /// Gets or sets whether to render if the MixColor is transparent.
+        /// By default it is false, which means that the ColorVisual will not render if the MIX_COLOR is transparent.
+        /// </summary>
+        /// <since_tizen> 5 </since_tizen>
+        public bool RenderIfTransparent
+        {
+            get
+            {
+                return _renderIfTransparent ?? (false);
+            }
+            set
+            {
+                _renderIfTransparent = value;
+                UpdateVisual();
+            }
+        }
+
+        /// <summary>
+        /// Compose the out visual map.
+        /// </summary>
+        /// <since_tizen> 3 </since_tizen>
         protected override void ComposingPropertyMap()
         {
             if (_mixColorForColorVisual != null)
@@ -1270,6 +1607,8 @@ namespace Tizen.NUI
                 if (_shader != null) { _outputVisualMap.Add((int)Visual.Property.Shader, new PropertyValue(_shader)); }
                 if (_premultipliedAlpha != null) { _outputVisualMap.Add((int)Visual.Property.PremultipliedAlpha, new PropertyValue((bool)_premultipliedAlpha)); }
                 if (_opacity != null) { _outputVisualMap.Add((int)Visual.Property.Opacity, new PropertyValue((float)_opacity)); }
+                if (_renderIfTransparent != null) { _outputVisualMap.Add(ColorVisualProperty.RenderIfTransparent, new PropertyValue((bool)_renderIfTransparent)); }
+                if (_visualFittingMode != null) { _outputVisualMap.Add((int)Visual.Property.VisualFittingMode, new PropertyValue((int)_visualFittingMode)); }
             }
         }
     }
@@ -1277,12 +1616,9 @@ namespace Tizen.NUI
     /// <summary>
     /// A class encapsulating the property map of the gradient visual.
     /// </summary>
+    /// <since_tizen> 3 </since_tizen>
     public class GradientVisual : VisualMap
     {
-        public GradientVisual() : base()
-        {
-        }
-
         private Vector2 _startPosition = null;
         private Vector2 _endPosition = null;
         private Vector2 _center = null;
@@ -1293,8 +1629,16 @@ namespace Tizen.NUI
         private GradientVisualSpreadMethodType? _spreadMethod = null;
 
         /// <summary>
-        /// Gets or sets the start position of a linear gradient.<br>
-        /// Mandatory for linear.<br>
+        /// Constructor.
+        /// </summary>
+        /// <since_tizen> 3 </since_tizen>
+        public GradientVisual() : base()
+        {
+        }
+
+        /// <summary>
+        /// Gets or sets the start position of a linear gradient.<br />
+        /// Mandatory for linear.<br />
         /// </summary>
         /// <since_tizen> 3 </since_tizen>
         public Vector2 StartPosition
@@ -1311,8 +1655,8 @@ namespace Tizen.NUI
         }
 
         /// <summary>
-        /// Gets or sets the end position of a linear gradient.<br>
-        /// Mandatory for linear.<br>
+        /// Gets or sets the end position of a linear gradient.<br />
+        /// Mandatory for linear.<br />
         /// </summary>
         /// <since_tizen> 3 </since_tizen>
         public Vector2 EndPosition
@@ -1329,8 +1673,8 @@ namespace Tizen.NUI
         }
 
         /// <summary>
-        /// Gets or sets the center point of a radial gradient.<br>
-        /// Mandatory for radial.<br>
+        /// Gets or sets the center point of a radial gradient.<br />
+        /// Mandatory for radial.<br />
         /// </summary>
         /// <since_tizen> 3 </since_tizen>
         public Vector2 Center
@@ -1347,8 +1691,8 @@ namespace Tizen.NUI
         }
 
         /// <summary>
-        /// Gets or sets the size of the radius of a radial gradient.<br>
-        /// Mandatory for radial.<br>
+        /// Gets or sets the size of the radius of a radial gradient.<br />
+        /// Mandatory for radial.<br />
         /// </summary>
         /// <since_tizen> 3 </since_tizen>
         public float Radius
@@ -1365,9 +1709,9 @@ namespace Tizen.NUI
         }
 
         /// <summary>
-        /// Gets or sets all the stop offsets.<br>
-        /// A PropertyArray of float.<br>
-        /// If not supplied, the default is 0.0f and 1.0f.<br>
+        /// Gets or sets all the stop offsets.<br />
+        /// A PropertyArray of float.<br />
+        /// If not supplied, the default is 0.0f and 1.0f.<br />
         /// Optional.
         /// </summary>
         /// <since_tizen> 3 </since_tizen>
@@ -1385,9 +1729,9 @@ namespace Tizen.NUI
         }
 
         /// <summary>
-        /// Gets or sets the color at the stop offsets.<br>
-        /// A PropertyArray of color.<br>
-        /// At least 2 values are required to show a gradient.<br>
+        /// Gets or sets the color at the stop offsets.<br />
+        /// A PropertyArray of color.<br />
+        /// At least 2 values are required to show a gradient.<br />
         /// Mandatory.
         /// </summary>
         /// <since_tizen> 3 </since_tizen>
@@ -1405,8 +1749,8 @@ namespace Tizen.NUI
         }
 
         /// <summary>
-        /// Gets or sets descriptions of the coordinate system for certain attributes of the points in a gradient.<br>
-        /// If not supplied, the default is GradientVisualUnitsType.ObjectBoundingBox.<br>
+        /// Gets or sets descriptions of the coordinate system for certain attributes of the points in a gradient.<br />
+        /// If not supplied, the default is GradientVisualUnitsType.ObjectBoundingBox.<br />
         /// Optional.
         /// </summary>
         /// <since_tizen> 3 </since_tizen>
@@ -1424,8 +1768,8 @@ namespace Tizen.NUI
         }
 
         /// <summary>
-        /// Gets or sets indications of what happens if the gradient starts or ends inside the bounds of the target rectangle.<br>
-        /// If not supplied, the default is GradientVisualSpreadMethodType.Pad.<br>
+        /// Gets or sets indications of what happens if the gradient starts or ends inside the bounds of the target rectangle.<br />
+        /// If not supplied, the default is GradientVisualSpreadMethodType.Pad.<br />
         /// Optional.
         /// </summary>
         /// <since_tizen> 3 </since_tizen>
@@ -1442,6 +1786,10 @@ namespace Tizen.NUI
             }
         }
 
+        /// <summary>
+        /// Compose the out visual map.
+        /// </summary>
+        /// <since_tizen> 3 </since_tizen>
         protected override void ComposingPropertyMap()
         {
             if (((_startPosition != null && _endPosition != null) || (_center != null && _radius != null)) && _stopColor != null)
@@ -1460,6 +1808,7 @@ namespace Tizen.NUI
                 if (_premultipliedAlpha != null) { _outputVisualMap.Add((int)Visual.Property.PremultipliedAlpha, new PropertyValue((bool)_premultipliedAlpha)); }
                 if (_mixColor != null) { _outputVisualMap.Add((int)Visual.Property.MixColor, new PropertyValue(_mixColor)); }
                 if (_opacity != null) { _outputVisualMap.Add((int)Visual.Property.Opacity, new PropertyValue((float)_opacity)); }
+                if (_visualFittingMode != null) { _outputVisualMap.Add((int)Visual.Property.VisualFittingMode, new PropertyValue((int)_visualFittingMode)); }
             }
         }
     }
@@ -1467,12 +1816,9 @@ namespace Tizen.NUI
     /// <summary>
     /// A class encapsulating the property map of the mesh visual.
     /// </summary>
+    /// <since_tizen> 3 </since_tizen>
     public class MeshVisual : VisualMap
     {
-        public MeshVisual() : base()
-        {
-        }
-
         private string _objectURL = null;
         private string _materialtURL = null;
         private string _texturesPath = null;
@@ -1482,7 +1828,15 @@ namespace Tizen.NUI
         private Vector3 _lightPosition = null;
 
         /// <summary>
-        /// Gets or sets the location of the ".obj" file.<br>
+        /// Constructor.
+        /// </summary>
+        /// <since_tizen> 3 </since_tizen>
+        public MeshVisual() : base()
+        {
+        }
+
+        /// <summary>
+        /// Gets or sets the location of the ".obj" file.<br />
         /// Mandatory.
         /// </summary>
         /// <since_tizen> 3 </since_tizen>
@@ -1500,8 +1854,8 @@ namespace Tizen.NUI
         }
 
         /// <summary>
-        /// Gets or sets the location of the ".mtl" file.<br>
-        /// If not specified, then a textureless object is assumed.<br>
+        /// Gets or sets the location of the ".mtl" file.<br />
+        /// If not specified, then a textureless object is assumed.<br />
         /// Optional.
         /// </summary>
         /// <since_tizen> 3 </since_tizen>
@@ -1519,8 +1873,8 @@ namespace Tizen.NUI
         }
 
         /// <summary>
-        /// Gets or sets the path to the directory the textures (including gloss and normal) are stored in.<br>
-        /// Mandatory if using material.<br>
+        /// Gets or sets the path to the directory the textures (including gloss and normal) are stored in.<br />
+        /// Mandatory if using material.<br />
         /// </summary>
         /// <since_tizen> 3 </since_tizen>
         public string TexturesPath
@@ -1537,9 +1891,9 @@ namespace Tizen.NUI
         }
 
         /// <summary>
-        /// Gets or sets the type of shading mode that the mesh will use.<br>
-        /// If anything the specified shading mode requires is missing, a simpler mode that can be handled with what has been supplied will be used instead.<br>
-        /// If not specified, it will use the best it can support (will try MeshVisualShadingModeValue.TexturedWithDetailedSpecularLighting first).<br>
+        /// Gets or sets the type of shading mode that the mesh will use.<br />
+        /// If anything the specified shading mode requires is missing, a simpler mode that can be handled with what has been supplied will be used instead.<br />
+        /// If not specified, it will use the best it can support (will try MeshVisualShadingModeValue.TexturedWithDetailedSpecularLighting first).<br />
         /// Optional.
         /// </summary>
         /// <since_tizen> 3 </since_tizen>
@@ -1557,8 +1911,8 @@ namespace Tizen.NUI
         }
 
         /// <summary>
-        /// Gets or sets whether to use mipmaps for textures or not.<br>
-        /// If not specified, the default is true.<br>
+        /// Gets or sets whether to use mipmaps for textures or not.<br />
+        /// If not specified, the default is true.<br />
         /// Optional.
         /// </summary>
         /// <since_tizen> 3 </since_tizen>
@@ -1576,8 +1930,8 @@ namespace Tizen.NUI
         }
 
         /// <summary>
-        /// Gets or sets whether to average normals at each point to smooth textures or not.<br>
-        /// If not specified, the default is true.<br>
+        /// Gets or sets whether to average normals at each point to smooth textures or not.<br />
+        /// If not specified, the default is true.<br />
         /// Optional.
         /// </summary>
         /// <since_tizen> 3 </since_tizen>
@@ -1595,10 +1949,10 @@ namespace Tizen.NUI
         }
 
         /// <summary>
-        /// Gets or sets the position, in the stage space, of the point light that applies lighting to the model.<br>
+        /// Gets or sets the position, in the stage space, of the point light that applies lighting to the model.<br />
         /// This is based off the stage's dimensions, so using the width and the height of the stage halved will correspond to the center,
-        /// and using all zeroes will place the light at the top-left corner.<br>
-        /// If not specified, the default is an offset outwards from the center of the screen.<br>
+        /// and using all zeroes will place the light at the top-left corner.<br />
+        /// If not specified, the default is an offset outwards from the center of the screen.<br />
         /// Optional.
         /// </summary>
         /// <since_tizen> 3 </since_tizen>
@@ -1615,6 +1969,10 @@ namespace Tizen.NUI
             }
         }
 
+        /// <summary>
+        /// Compose the out visual map.
+        /// </summary>
+        /// <since_tizen> 3 </since_tizen>
         protected override void ComposingPropertyMap()
         {
             if (_objectURL != null)
@@ -1631,6 +1989,7 @@ namespace Tizen.NUI
                 if (_premultipliedAlpha != null) { _outputVisualMap.Add((int)Visual.Property.PremultipliedAlpha, new PropertyValue((bool)_premultipliedAlpha)); }
                 if (_mixColor != null) { _outputVisualMap.Add((int)Visual.Property.MixColor, new PropertyValue(_mixColor)); }
                 if (_opacity != null) { _outputVisualMap.Add((int)Visual.Property.Opacity, new PropertyValue((float)_opacity)); }
+                if (_visualFittingMode != null) { _outputVisualMap.Add((int)Visual.Property.VisualFittingMode, new PropertyValue((int)_visualFittingMode)); }
             }
         }
     }
@@ -1638,12 +1997,9 @@ namespace Tizen.NUI
     /// <summary>
     /// A class encapsulating the property map of the primetive visual.
     /// </summary>
+    /// <since_tizen> 3 </since_tizen>
     public class PrimitiveVisual : VisualMap
     {
-        public PrimitiveVisual() : base()
-        {
-        }
-
         private PrimitiveVisualShapeType? _shape = null;
         private Color _mixColorForPrimitiveVisual = null;
         private int? _slices = null;
@@ -1658,8 +2014,16 @@ namespace Tizen.NUI
         private Vector3 _lightPosition = null;
 
         /// <summary>
-        /// Gets or sets the specific shape to render.<br>
-        /// If not specified, the default is PrimitiveVisualShapeType.Sphere.<br>
+        /// Constructor.
+        /// </summary>
+        /// <since_tizen> 3 </since_tizen>
+        public PrimitiveVisual() : base()
+        {
+        }
+
+        /// <summary>
+        /// Gets or sets the specific shape to render.<br />
+        /// If not specified, the default is PrimitiveVisualShapeType.Sphere.<br />
         /// Optional.
         /// </summary>
         /// <since_tizen> 3 </since_tizen>
@@ -1677,9 +2041,9 @@ namespace Tizen.NUI
         }
 
         /// <summary>
-        /// Gets or sets the color of the shape.<br>
-        /// If not specified, the default is Color (0.5, 0.5, 0.5, 1.0).<br>
-        /// Applies to all shapes.<br>
+        /// Gets or sets the color of the shape.<br />
+        /// If not specified, the default is Color (0.5, 0.5, 0.5, 1.0).<br />
+        /// Applies to all shapes.<br />
         /// Optional.
         /// </summary>
         /// <since_tizen> 3 </since_tizen>
@@ -1697,10 +2061,10 @@ namespace Tizen.NUI
         }
 
         /// <summary>
-        /// Gets or sets the number of slices as you go around the shape.<br>
-        /// For spheres and conical frustrums, this determines how many divisions there are as you go around the object.<br>
-        /// If not specified, the default is 128.<br>
-        /// The range is from 1 to 255.<br>
+        /// Gets or sets the number of slices as you go around the shape.<br />
+        /// For spheres and conical frustrums, this determines how many divisions there are as you go around the object.<br />
+        /// If not specified, the default is 128.<br />
+        /// The range is from 1 to 255.<br />
         /// Optional.
         /// </summary>
         /// <since_tizen> 3 </since_tizen>
@@ -1718,10 +2082,10 @@ namespace Tizen.NUI
         }
 
         /// <summary>
-        /// Gets or sets the number of stacks as you go down the shape.<br>
-        /// For spheres, 'stacks' determines how many layers there are as you go down the object.<br>
-        /// If not specified, the default is 128.<br>
-        /// The range is from 1 to 255.<br>
+        /// Gets or sets the number of stacks as you go down the shape.<br />
+        /// For spheres, 'stacks' determines how many layers there are as you go down the object.<br />
+        /// If not specified, the default is 128.<br />
+        /// The range is from 1 to 255.<br />
         /// Optional.
         /// </summary>
         /// <since_tizen> 3 </since_tizen>
@@ -1739,10 +2103,10 @@ namespace Tizen.NUI
         }
 
         /// <summary>
-        /// Gets or sets the scale of the radius of the top circle of a conical frustrum.<br>
-        /// If not specified, the default is 1.0f.<br>
-        /// Applies to: - PrimitiveVisualShapeType.ConicalFrustrum<br>
-        /// Only values greater than or equal to 0.0f are accepted.<br>
+        /// Gets or sets the scale of the radius of the top circle of a conical frustrum.<br />
+        /// If not specified, the default is 1.0f.<br />
+        /// Applies to: - PrimitiveVisualShapeType.ConicalFrustrum<br />
+        /// Only values greater than or equal to 0.0f are accepted.<br />
         /// Optional.
         /// </summary>
         /// <since_tizen> 3 </since_tizen>
@@ -1760,11 +2124,11 @@ namespace Tizen.NUI
         }
 
         /// <summary>
-        /// Gets or sets the scale of the radius of the bottom circle of a conical frustrum.<br>
-        /// If not specified, the default is 1.5f.<br>
-        /// Applies to:  - PrimitiveVisualShapeType.ConicalFrustrum<br>
-        ///              - PrimitiveVisualShapeType.Cone<br>
-        /// Only values greater than or equal to 0.0f are accepted.<br>
+        /// Gets or sets the scale of the radius of the bottom circle of a conical frustrum.<br />
+        /// If not specified, the default is 1.5f.<br />
+        /// Applies to:  - PrimitiveVisualShapeType.ConicalFrustrum<br />
+        ///              - PrimitiveVisualShapeType.Cone<br />
+        /// Only values greater than or equal to 0.0f are accepted.<br />
         /// Optional.
         /// </summary>
         /// <since_tizen> 3 </since_tizen>
@@ -1782,13 +2146,13 @@ namespace Tizen.NUI
         }
 
         /// <summary>
-        /// Gets or sets the scale of the height of a conic.<br>
-        /// If not specified, the default is 3.0f.<br>
-        /// Applies to:<br>
-        ///      - PrimitiveVisualShapeType.ConicalFrustrum<br>
-        ///      - PrimitiveVisualShapeType.Cone<br>
-        ///      - PrimitiveVisualShapeType.Cylinder<br>
-        /// Only values greater than or equal to 0.0f are accepted.<br>
+        /// Gets or sets the scale of the height of a conic.<br />
+        /// If not specified, the default is 3.0f.<br />
+        /// Applies to:<br />
+        ///      - PrimitiveVisualShapeType.ConicalFrustrum<br />
+        ///      - PrimitiveVisualShapeType.Cone<br />
+        ///      - PrimitiveVisualShapeType.Cylinder<br />
+        /// Only values greater than or equal to 0.0f are accepted.<br />
         /// Optional.
         /// </summary>
         /// <since_tizen> 3 </since_tizen>
@@ -1806,11 +2170,11 @@ namespace Tizen.NUI
         }
 
         /// <summary>
-        /// Gets or sets the scale of the radius of a cylinder.<br>
-        /// If not specified, the default is 1.0f.<br>
-        /// Applies to:<br>
-        ///      - PrimitiveVisualShapeType.Cylinder<br>
-        /// Only values greater than or equal to 0.0f are accepted.<br>
+        /// Gets or sets the scale of the radius of a cylinder.<br />
+        /// If not specified, the default is 1.0f.<br />
+        /// Applies to:<br />
+        ///      - PrimitiveVisualShapeType.Cylinder<br />
+        /// Only values greater than or equal to 0.0f are accepted.<br />
         /// Optional.
         /// </summary>
         /// <since_tizen> 3 </since_tizen>
@@ -1828,13 +2192,13 @@ namespace Tizen.NUI
         }
 
         /// <summary>
-        /// Gets or sets the dimensions of a cuboid. Scales in the same fashion as a 9-patch image.<br>
-        /// If not specified, the default is Vector3.One.<br>
-        /// Applies to:<br>
-        ///      - PrimitiveVisualShapeType.Cube<br>
-        ///      - PrimitiveVisualShapeType.Octahedron<br>
-        ///      - PrimitiveVisualShapeType.BevelledCube<br>
-        /// Each Vector3 parameter should be greater than or equal to 0.0f.<br>
+        /// Gets or sets the dimensions of a cuboid. Scales in the same fashion as a 9-patch image.<br />
+        /// If not specified, the default is Vector3.One.<br />
+        /// Applies to:<br />
+        ///      - PrimitiveVisualShapeType.Cube<br />
+        ///      - PrimitiveVisualShapeType.Octahedron<br />
+        ///      - PrimitiveVisualShapeType.BevelledCube<br />
+        /// Each Vector3 parameter should be greater than or equal to 0.0f.<br />
         /// Optional.
         /// </summary>
         /// <since_tizen> 3 </since_tizen>
@@ -1852,12 +2216,12 @@ namespace Tizen.NUI
         }
 
         /// <summary>
-        /// Gets or sets determines how bevelled the cuboid should be, based off the smallest dimension.<br>
-        /// Bevel percentage ranges from 0.0 to 1.0. It affects the ratio of the outer face widths to the width of the overall cube.<br>
-        /// If not specified, the default is 0.0f (no bevel).<br>
-        /// Applies to:<br>
-        ///      - PrimitiveVisualShapeType.BevelledCube<br>
-        /// The range is from 0.0f to 1.0f.<br>
+        /// Gets or sets determines how bevelled the cuboid should be, based off the smallest dimension.<br />
+        /// Bevel percentage ranges from 0.0 to 1.0. It affects the ratio of the outer face widths to the width of the overall cube.<br />
+        /// If not specified, the default is 0.0f (no bevel).<br />
+        /// Applies to:<br />
+        ///      - PrimitiveVisualShapeType.BevelledCube<br />
+        /// The range is from 0.0f to 1.0f.<br />
         /// Optional.
         /// </summary>
         /// <since_tizen> 3 </since_tizen>
@@ -1875,11 +2239,11 @@ namespace Tizen.NUI
         }
 
         /// <summary>
-        /// Gets or sets descriptions of how smooth the bevelled edges should be.<br>
-        /// If not specified, the default is 0.0f (sharp edges).<br>
-        /// Applies to:<br>
-        ///      - PrimitiveVisualShapeType.BevelledCube<br>
-        /// The range is from 0.0f to 1.0f.<br>
+        /// Gets or sets descriptions of how smooth the bevelled edges should be.<br />
+        /// If not specified, the default is 0.0f (sharp edges).<br />
+        /// Applies to:<br />
+        ///      - PrimitiveVisualShapeType.BevelledCube<br />
+        /// The range is from 0.0f to 1.0f.<br />
         /// Optional.
         /// </summary>
         /// <since_tizen> 3 </since_tizen>
@@ -1897,11 +2261,11 @@ namespace Tizen.NUI
         }
 
         /// <summary>
-        /// Gets or sets the position, in the stage space, of the point light that applies lighting to the model.<br>
+        /// Gets or sets the position, in the stage space, of the point light that applies lighting to the model.<br />
         /// This is based off the stage's dimensions, so using the width and the height of the stage halved will correspond to the center,
-        /// and using all zeroes will place the light at the top-left corner.<br>
-        /// If not specified, the default is an offset outwards from the center of the screen.<br>
-        /// Applies to all shapes.<br>
+        /// and using all zeroes will place the light at the top-left corner.<br />
+        /// If not specified, the default is an offset outwards from the center of the screen.<br />
+        /// Applies to all shapes.<br />
         /// Optional.
         /// </summary>
         /// <since_tizen> 3 </since_tizen>
@@ -1918,6 +2282,10 @@ namespace Tizen.NUI
             }
         }
 
+        /// <summary>
+        /// Compose the out visual map.
+        /// </summary>
+        /// <since_tizen> 3 </since_tizen>
         protected override void ComposingPropertyMap()
         {
             _outputVisualMap = new PropertyMap(); ;
@@ -1937,24 +2305,30 @@ namespace Tizen.NUI
             if (_shader != null) { _outputVisualMap.Add((int)Visual.Property.Shader, new PropertyValue(_shader)); }
             if (_premultipliedAlpha != null) { _outputVisualMap.Add((int)Visual.Property.PremultipliedAlpha, new PropertyValue((bool)_premultipliedAlpha)); }
             if (_opacity != null) { _outputVisualMap.Add((int)Visual.Property.Opacity, new PropertyValue((float)_opacity)); }
+            if (_visualFittingMode != null) { _outputVisualMap.Add((int)Visual.Property.VisualFittingMode, new PropertyValue((int)_visualFittingMode)); }
         }
     }
 
     /// <summary>
     /// A class encapsulating the property map of the n-patch image visual.
     /// </summary>
+    /// <since_tizen> 3 </since_tizen>
     public class NPatchVisual : VisualMap
     {
-        public NPatchVisual() : base()
-        {
-        }
-
         private string _url = null;
         private bool? _borderOnly = null;
         private Rectangle _border = null;
 
         /// <summary>
-        /// Gets or sets the URL of the image.<br>
+        /// Constructor.
+        /// </summary>
+        /// <since_tizen> 3 </since_tizen>
+        public NPatchVisual() : base()
+        {
+        }
+
+        /// <summary>
+        /// Gets or sets the URL of the image.<br />
         /// Mandatory.
         /// </summary>
         /// <since_tizen> 3 </since_tizen>
@@ -1972,9 +2346,9 @@ namespace Tizen.NUI
         }
 
         /// <summary>
-        /// Gets or sets whether to draw the borders only (If true).<br>
-        /// If not specified, the default is false.<br>
-        /// For n-patch images only.<br>
+        /// Gets or sets whether to draw the borders only (If true).<br />
+        /// If not specified, the default is false.<br />
+        /// For n-patch images only.<br />
         /// Optional.
         /// </summary>
         /// <since_tizen> 3 </since_tizen>
@@ -1992,8 +2366,8 @@ namespace Tizen.NUI
         }
 
         /// <summary>
-        /// The border of the image is in the order: left, right, bottom, top.<br>
-        /// For n-patch images only.<br>
+        /// The border of the image is in the order: left, right, bottom, top.<br />
+        /// For n-patch images only.<br />
         /// Optional.
         /// </summary>
         /// <since_tizen> 3 </since_tizen>
@@ -2010,6 +2384,10 @@ namespace Tizen.NUI
             }
         }
 
+        /// <summary>
+        /// Compose the out visual map.
+        /// </summary>
+        /// <since_tizen> 3 </since_tizen>
         protected override void ComposingPropertyMap()
         {
             if (_url != null)
@@ -2023,6 +2401,7 @@ namespace Tizen.NUI
                 if (_premultipliedAlpha != null) { _outputVisualMap.Add((int)Visual.Property.PremultipliedAlpha, new PropertyValue((bool)_premultipliedAlpha)); }
                 if (_mixColor != null) { _outputVisualMap.Add((int)Visual.Property.MixColor, new PropertyValue(_mixColor)); }
                 if (_opacity != null) { _outputVisualMap.Add((int)Visual.Property.Opacity, new PropertyValue((float)_opacity)); }
+                if (_visualFittingMode != null) { _outputVisualMap.Add((int)Visual.Property.VisualFittingMode, new PropertyValue((int)_visualFittingMode)); }
             }
         }
     }
@@ -2030,14 +2409,23 @@ namespace Tizen.NUI
     /// <summary>
     /// A class encapsulating the property map of the SVG visual.
     /// </summary>
+    /// <since_tizen> 3 </since_tizen>
     public class SVGVisual : VisualMap
     {
+        private string _url = null;
+
+        /// <summary>
+        /// Constructor.
+        /// </summary>
+        /// <since_tizen> 3 </since_tizen>
         public SVGVisual() : base()
         {
         }
 
-        private string _url = null;
-
+        /// <summary>
+        /// The url of the svg resource.
+        /// </summary>
+        /// <since_tizen> 3 </since_tizen>
         public string URL
         {
             get
@@ -2051,6 +2439,10 @@ namespace Tizen.NUI
             }
         }
 
+        /// <summary>
+        /// Compose the out visual map.
+        /// </summary>
+        /// <since_tizen> 3 </since_tizen>
         protected override void ComposingPropertyMap()
         {
             if (_url != null)
@@ -2062,6 +2454,7 @@ namespace Tizen.NUI
                 if (_premultipliedAlpha != null) { _outputVisualMap.Add((int)Visual.Property.PremultipliedAlpha, new PropertyValue((bool)_premultipliedAlpha)); }
                 if (_mixColor != null) { _outputVisualMap.Add((int)Visual.Property.MixColor, new PropertyValue(_mixColor)); }
                 if (_opacity != null) { _outputVisualMap.Add((int)Visual.Property.Opacity, new PropertyValue((float)_opacity)); }
+                if (_visualFittingMode != null) { _outputVisualMap.Add((int)Visual.Property.VisualFittingMode, new PropertyValue((int)_visualFittingMode)); }
             }
         }
     }
@@ -2069,21 +2462,27 @@ namespace Tizen.NUI
     /// <summary>
     /// A class encapsulating the property map of the animated image (AGIF) visual.
     /// </summary>
+    /// <since_tizen> 3 </since_tizen>
     public class AnimatedImageVisual : VisualMap
     {
-        public AnimatedImageVisual() : base()
-        {
-        }
-
         private List<string> _urls = null;
         private int? _batchSize = null;
         private int? _cacheSize = null;
         private float? _frameDelay = null;
+        private float? _loopCount = null;
+
+        /// <summary>
+        /// Constructor.
+        /// </summary>
+        /// <since_tizen> 3 </since_tizen>
+        public AnimatedImageVisual() : base()
+        {
+        }
 
         /// <summary>
         /// Gets and Sets the url in the AnimatedImageVisual.
         /// </summary>
-        /// <since_tizen> 4 </since_tizen>
+        /// <since_tizen> 3 </since_tizen>
         public string URL
         {
             get
@@ -2180,6 +2579,28 @@ namespace Tizen.NUI
             }
         }
 
+        /// <summary>
+        /// Gets and sets the number of times the AnimatedImageVisual will be looped.
+        /// The default is -1. If the number is less than 0 then it loops unlimited,otherwise loop loopCount times.
+        /// </summary>
+        /// <since_tizen> 5 </since_tizen>
+        public float LoopCount
+        {
+            get
+            {
+                return _loopCount ?? -1;
+            }
+            set
+            {
+                _loopCount = value;
+                UpdateVisual();
+            }
+        }
+
+        /// <summary>
+        /// Compose the out visual map.
+        /// </summary>
+        /// <since_tizen> 3 </since_tizen>
         protected override void ComposingPropertyMap()
         {
             if (_urls != null)
@@ -2202,10 +2623,12 @@ namespace Tizen.NUI
                 if (_batchSize != null ) {_outputVisualMap.Add((int)ImageVisualProperty.BatchSize, new PropertyValue((int)_batchSize)); }
                 if (_cacheSize != null ) {_outputVisualMap.Add((int)ImageVisualProperty.CacheSize, new PropertyValue((int)_cacheSize)); }
                 if (_frameDelay != null ) {_outputVisualMap.Add((int)ImageVisualProperty.FrameDelay, new PropertyValue((float)_frameDelay)); }
+                if (_loopCount != null ) {_outputVisualMap.Add((int)ImageVisualProperty.LoopCount, new PropertyValue((int)_loopCount)); }
                 if (_shader != null) { _outputVisualMap.Add((int)Visual.Property.Shader, new PropertyValue(_shader)); }
                 if (_premultipliedAlpha != null) { _outputVisualMap.Add((int)Visual.Property.PremultipliedAlpha, new PropertyValue((bool)_premultipliedAlpha)); }
                 if (_mixColor != null) { _outputVisualMap.Add((int)Visual.Property.MixColor, new PropertyValue(_mixColor)); }
                 if (_opacity != null) { _outputVisualMap.Add((int)Visual.Property.Opacity, new PropertyValue((float)_opacity)); }
+                if (_visualFittingMode != null) { _outputVisualMap.Add((int)Visual.Property.VisualFittingMode, new PropertyValue((int)_visualFittingMode)); }
             }
         }
     }
@@ -2215,8 +2638,16 @@ namespace Tizen.NUI
     /// <summary>
     /// A class encapsulating the property map of the transition data.
     /// </summary>
+    /// <since_tizen> 3 </since_tizen>
     public class VisualAnimator : VisualMap
     {
+        private string _alphaFunction = null;
+        private int _startTime = 0;
+        private int _endTime = 0;
+        private string _target = null;
+        private string _propertyIndex = null;
+        private object _destinationValue = null;
+
         /// <summary>
         /// Create VisualAnimator object.
         /// </summary>
@@ -2225,13 +2656,6 @@ namespace Tizen.NUI
         {
         }
 
-        private string _alphaFunction = null;
-        private int _startTime = 0;
-        private int _endTime = 0;
-        private string _target = null;
-        private string _propertyIndex = null;
-        private object _destinationValue = null;
-
         /// <summary>
         /// Sets and Gets the AlphaFunction of this transition.
         /// </summary>
@@ -2430,6 +2854,10 @@ namespace Tizen.NUI
             }
         }
 
+        /// <summary>
+        /// Compose the out visual map.
+        /// </summary>
+        /// <since_tizen> 3 </since_tizen>
         protected override void ComposingPropertyMap()
         {
             PropertyMap _animator = new PropertyMap();
@@ -2459,4 +2887,4 @@ namespace Tizen.NUI
 
 
 
-}
\ No newline at end of file
+}