namespace Internal
{
-class ImageAtlasManager;
-typedef IntrusivePtr<ImageAtlasManager> ImageAtlasManagerPtr;
/**
* The TextureManager provides a common Image loading API for Visuals.
public:
- struct MaskingData
- {
- MaskingData();
- ~MaskingData() = default;
-
- VisualUrl mAlphaMaskUrl;
- TextureManager::TextureId mAlphaMaskId;
- float mContentScaleFactor;
- bool mCropToMask;
- };
-
/**
* Constructor.
*/
/**
* Destructor.
*/
- ~TextureManager() = default;
+ ~TextureManager();
// TextureManager Main API:
- TextureSet LoadTexture(VisualUrl& url, Dali::ImageDimensions desiredSize,
- Dali::FittingMode::Type fittingMode, Dali::SamplingMode::Type samplingMode,
- MaskingData* maskInfo, bool synchronousLoading,
- TextureManager::TextureId& textureId, Vector4& textureRect,
- bool& atlasingStatus, bool& loadingStatus, Dali::WrapMode::Type wrapModeU,
- Dali::WrapMode::Type wrapModeV, TextureUploadObserver* textureObserver,
- AtlasUploadObserver* atlasObserver,
- ImageAtlasManagerPtr imageAtlasManager);
-
/**
* @brief Requests an image load of the given URL.
*
unsigned short loadId; ///< The load Id used by the async loader to reference this load
};
+ /**
+ * @brief This struct is used within a container to manage atlas creation and destruction.
+ */
+ struct AtlasInfo
+ {
+ AtlasInfo( Toolkit::ImageAtlas atlas, TextureSet textureSet )
+ : atlas( atlas ),
+ textureSet( textureSet )
+ {
+ }
+
+ Toolkit::ImageAtlas atlas; ///< The ImageAtlas object
+ TextureSet textureSet; ///< The TextureSet is kept in the struct to allow fast lookup of TextureSet to Atlas
+ };
+
// Private typedefs:
typedef std::deque<AsyncLoadingInfo> AsyncLoadingInfoContainerType; ///< The container type used to manage Asynchronous loads in progress
+ typedef std::vector<AtlasInfo> AtlasInfoContainerType; ///< The container type used to manage Atlas creation and destruction
typedef std::vector<TextureInfo> TextureInfoContainerType; ///< The container type used to manage the life-cycle and caching of Textures
/**
private: // Member Variables:
+ AtlasInfoContainerType mAtlasContainer; ///< Used to manage Atlas creation and destruction
TextureInfoContainerType mTextureInfoContainer; ///< Used to manage the life-cycle and caching of Textures
RoundRobinContainerView< AsyncLoadingHelper > mAsyncLocalLoaders; ///< The Asynchronous image loaders used to provide all local async loads
RoundRobinContainerView< AsyncLoadingHelper > mAsyncRemoteLoaders; ///< The Asynchronous image loaders used to provide all remote async loads