currentStates.framePlayRangeMin = -1;
currentStates.framePlayRangeMax = -1;
currentStates.totalFrame = -1;
+ currentStates.enableFrameCache = false;
string ret = (value == null ? "" : value);
currentStates.url = ret;
return currentStates.redrawInScalingDown;
}
}
+
+
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ public bool EnableFrameCache
+ {
+ get
+ {
+ return (bool)GetValue(EnableFrameCacheProperty);
+ }
+ set
+ {
+ SetValue(EnableFrameCacheProperty, value);
+ NotifyPropertyChanged();
+ }
+ }
+
+ private bool InternalEnableFrameCache
+ {
+ set
+ {
+ if (currentStates.enableFrameCache != value)
+ {
+ currentStates.changed = true;
+ currentStates.enableFrameCache = value;
+
+ NUILog.Debug($"<[{GetId()}]SET currentStates.EnableFrameCache={currentStates.enableFrameCache}>");
+
+ Interop.View.InternalUpdateVisualPropertyBool(this.SwigCPtr, ImageView.Property.IMAGE, ImageVisualProperty.EnableFrameCache, currentStates.enableFrameCache);
+ }
+ }
+ get
+ {
+ NUILog.Debug($"EnableFrameCache get! {currentStates.enableFrameCache}");
+ return currentStates.enableFrameCache;
+ }
+ }
#endregion Property
internal bool redrawInScalingDown;
internal int desiredWidth, desiredHeight;
internal bool synchronousLoading;
+ internal bool enableFrameCache;
internal bool changed;
};
private states currentStates;
var instance = (Tizen.NUI.BaseComponents.LottieAnimationView)bindable;
return instance.InternalRedrawInScalingDown;
});
+
+ /// <summary>
+ /// EnableFrameCacheProperty
+ /// </summary>
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ public static readonly BindableProperty EnableFrameCacheProperty = BindableProperty.Create(nameof(EnableFrameCache), typeof(bool), typeof(Tizen.NUI.BaseComponents.LottieAnimationView), false, propertyChanged: (bindable, oldValue, newValue) =>
+ {
+ var instance = (Tizen.NUI.BaseComponents.LottieAnimationView)bindable;
+ if (newValue != null)
+ {
+ instance.InternalEnableFrameCache = (bool)newValue;
+ }
+ },
+ defaultValueCreator: (bindable) =>
+ {
+ var instance = (Tizen.NUI.BaseComponents.LottieAnimationView)bindable;
+ return instance.InternalEnableFrameCache;
+ });
}
}
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
public static readonly int MarkerInfo = NDalic.ImageVisualOrientationCorrection + 15;
+
+ /// <summary>
+ /// @brief Whether to animated image visual uses fixed cache or not.
+ /// @details type Property::BOOLEAN.
+ /// If this property is true, animated image visual uses fixed cache for loading and keeps loaded frame
+ /// until the visual is removed. It reduces CPU cost when the animated image will be looping.
+ /// But it can spend a lot of memory if the resource has high resolution image or many frame count.
+ /// @note It is used in the AnimatedImageVisual. The default is false
+ /// </summary>
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ public static readonly int EnableFrameCache = NDalic.ImageVisualOrientationCorrection + 16;
}
/// <summary>