#define DALI_TOOLKIT_DEVEL_API_VISUALS_IMAGE_VISUAL_PROPERTIES_DEVEL_H
/*
- * Copyright (c) 2020 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2023 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.
* Animation will play between the start frame and the end frame of the marker if one marker is specified.
* Or animation will play between the start frame of the first marker and the end frame of the second marker if two markers are specified.
*
- * @details Name "playRange", Type Property::ARRAY of Property::INTEGER or Property::ARRAY of Property::STRING.
+ * @details Name "playRange", Type Property::ARRAY of Property::INTEGER or Property::ARRAY of Property::STRING or Property::STRING (one marker).
* @note Default 0 and the total frame number.
*/
PLAY_RANGE = ORIENTATION_CORRECTION + 4,
PLAY_STATE = ORIENTATION_CORRECTION + 5,
/**
- * @brief The current frame number the AnimatedVectorImageVisual will use.
+ * @brief The current frame number the AnimatedImageVisual and AnimatedVectorImageVisual will use.
* @details Name "currentFrameNumber", Type Property::INTEGER, between [0, the maximum frame number] or between the play range if specified
* @note This property is read-only.
*/
CURRENT_FRAME_NUMBER = ORIENTATION_CORRECTION + 6,
/**
- * @brief The total frame number the AnimatedVectorImageVisual will use.
+ * @brief The total frame number the AnimatedImageVisual and AnimatedVectorImageVisual will use.
* @details Name "totalFrameNumber", Type Property::INTEGER.
* @note This property is read-only.
*/
/**
* @brief The content information the AnimatedVectorImageVisual will use.
- * @details Name "contentInfo", Type Property::MAP.
+ * @details Type Property::MAP.
* The map contains the layer name as a key and Property::Array as a value.
* And the array contains 2 integer values which are the frame numbers, the start frame number and the end frame number of the layer.
* @note This property is read-only.
* @details Name "redrawInScalingDown", type Property::BOOLEAN.
* @note It is used in the AnimatedVectorImageVisual. The default is true.
*/
- REDRAW_IN_SCALING_DOWN
+ REDRAW_IN_SCALING_DOWN = ORIENTATION_CORRECTION + 11,
+
+ /**
+ * @brief Whether to apply mask in loading time or rendering time.
+ * @details Name "maskingType", type PlayState::Type (Property::INTEGER).
+ * In general, MASKING_ON_LOADING is the default behavior.
+ * However, if the visual uses an external texture, only MASKING_ON_RENDERING is possible.
+ * So we change its value to MASKING_ON_RENDERING even if the visual sets the MASKING_TYPE as MASKING_ON_LOADING when it uses external texture.
+ * @note It is used in the ImageVisual and AnimatedImageVisual. The default is MASKING_ON_LOADING.
+ */
+ MASKING_TYPE = ORIENTATION_CORRECTION + 12,
+
+ /**
+ * @brief If true, uploads texture before ResourceReady signal is emitted. Otherwise uploads after texture load is completed.
+ * @details Name "fastTrackUploading", type Property::BOOLEAN
+ * If true, the upload happens without event-thread dependency, but the following need to be considered:
+ * - Texture size is not valid until upload is fully complete.
+ * - Texture cannot be cached (a new image is uploaded every time).
+ * - Seamless visual change is not supported.
+ * - The following, if set are also not supported and will be ignored:
+ * - Alpha masking
+ * - Synchronous loading
+ * - Reload action
+ * - Atlas loading
+ * - Custom shader
+ * @note Used by the ImageVisual. The default is false.
+ */
+ FAST_TRACK_UPLOADING = ORIENTATION_CORRECTION + 13,
+
+ /**
+ * @brief Whether to enable broken image in image visual.
+ * Some of visual don't need to show broken image(ex. placeholder)
+ * Disable broken image for these visuals.
+ * default is true.
+ */
+ ENABLE_BROKEN_IMAGE = ORIENTATION_CORRECTION + 14,
+
+ /**
+ * @brief The marker information the AnimatedVectorImageVisual will use.
+ * @details Type Property::MAP.
+ * The map contains the marker name as a key and Property::Array as a value.
+ * And the array contains 2 integer values which are the frame numbers, the start frame number and the end frame number of the marker.
+ * @note This property is read-only.
+ */
+ MARKER_INFO = ORIENTATION_CORRECTION + 15,
+
+ /**
+ * @brief Whether to AnimatedVectorImageVisual fixed cache or not.
+ * @details Name "useFixedCache", type Property::BOOLEAN.
+ * If this property is true, AnimatedVectorImageVisual 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
+ */
+ USE_FIXED_CACHE = ORIENTATION_CORRECTION + 16
};
} //namespace Property
} // namespace LoopingMode
+/**
+ * @brief Enumeration for what masking type is in.
+ */
+namespace MaskingType
+{
+enum Type
+{
+ MASKING_ON_RENDERING, ///< Alpha masking is applied for each rendering time. (On GPU)
+ MASKING_ON_LOADING ///< Alpha masking is applied when the image is loading. (On CPU)
+};
+
+}
+
} // namespace DevelImageVisual
} // namespace Toolkit