X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fvisuals%2Fanimated-image%2Fimage-cache.h;h=c40a8959ca5510746e730a440f97fb4e0e21d0e5;hb=fd7c27ef0918e8c5d734d4dcaee0d199ce134556;hp=19a8f528052f8b78fef3b79d1ae390ab858d0991;hpb=6ad8c453020d459dc57bead709e74d4c7c874fcd;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/dali-toolkit/internal/visuals/animated-image/image-cache.h b/dali-toolkit/internal/visuals/animated-image/image-cache.h index 19a8f52..c40a895 100644 --- a/dali-toolkit/internal/visuals/animated-image/image-cache.h +++ b/dali-toolkit/internal/visuals/animated-image/image-cache.h @@ -2,7 +2,7 @@ #define DALI_TOOLKIT_INTERNAL_IMAGE_CACHE_H /* - * Copyright (c) 2022 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. @@ -40,14 +40,15 @@ public: * @brief Informs observer when the next texture set is ready to display * @param[in] textureSet The ready texture set * @param[in] interval interval(ms) for the frame + * @param[in] preMultiplied whether the texture is premultied alpha or not. */ - virtual void FrameReady(TextureSet textureSet, uint32_t interval) = 0; + virtual void FrameReady(TextureSet textureSet, uint32_t interval, bool preMultiplied) = 0; }; struct UrlStore { TextureManager::TextureId mTextureId = TextureManager::INVALID_TEXTURE_ID; - std::string mUrl; + VisualUrl mUrl; }; /** @@ -58,19 +59,28 @@ public: public: /** * @brief Constructor. - * @param[in] textureManager The texture manager - * @param[in] urlList List of urls to cache - * @param[in] observer FrameReady observer - * @param[in] batchSize The size of a batch to load - * @param[in] interval Time interval(ms) between each frame + * @param[in] textureManager The texture manager + * @param[in] size The width and height to fit the loaded image to. + * @param[in] fittingMode The FittingMode of the resource to load + * @param[in] samplingMode The SamplingMode of the resource to load + * @param[in] observer FrameReady observer + * @param[in] maskingData Masking data to be applied. + * @param[in] batchSize The size of a batch to load + * @param[in] interval Time interval(ms) between each frame + * @param[in] preMultiplyOnLoad The flag if image's color should be multiplied by it's alpha * * This will start loading textures immediately, according to the * batch and cache sizes. The cache is as large as the number of urls. */ - ImageCache(TextureManager& textureManager, - ImageCache::FrameReadyObserver& observer, - uint32_t batchSize, - uint32_t interval); + ImageCache(TextureManager& textureManager, + ImageDimensions size, + Dali::FittingMode::Type fittingMode, + Dali::SamplingMode::Type samplingMode, + TextureManager::MaskingDataPointer& maskingData, + ImageCache::FrameReadyObserver& observer, + uint32_t batchSize, + uint32_t interval, + bool preMultiplyOnLoad); virtual ~ImageCache(); @@ -132,18 +142,25 @@ private: */ void TextureManagerDestroyed() final; + void AllocateMaskData(); + protected: - TextureManager& mTextureManager; - FrameReadyObserver& mObserver; - uint32_t mBatchSize; - uint32_t mInterval; - TextureManager::LoadState mLoadState; - bool mRequestingLoad : 1; - bool mTextureManagerAlive : 1; + TextureManager& mTextureManager; + FrameReadyObserver& mObserver; + TextureManager::MaskingDataPointer& mMaskingData; + Dali::ImageDimensions mDesiredSize; + Dali::FittingMode::Type mFittingMode : 3; + Dali::SamplingMode::Type mSamplingMode : 4; + uint32_t mBatchSize; + uint32_t mInterval; + TextureManager::LoadState mLoadState; + bool mRequestingLoad : 1; + bool mPreMultiplyOnLoad : 1; + bool mTextureManagerAlive : 1; }; -} //namespace Internal -} //namespace Toolkit -} //namespace Dali +} // namespace Internal +} // namespace Toolkit +} // namespace Dali #endif // DALI_TOOLKIT_INTERNAL_IMAGE_CACHE_H