const TextureCacheManager::UseAtlas& useAtlas,
const TextureCacheManager::TextureId& maskTextureId)
{
- std::string hashTarget(url);
- const size_t urlLength = hashTarget.length();
- const uint16_t width = size.GetWidth();
- const uint16_t height = size.GetWidth();
+ std::vector<std::uint8_t> hashTarget(url.begin(), url.end());
+ const size_t urlLength = url.length();
+ const uint16_t width = size.GetWidth();
+ const uint16_t height = size.GetWidth();
// If either the width or height has been specified, include the resizing options in the hash
if(width != 0 || height != 0)
{
// We are appending 5 bytes to the URL to form the hash input.
hashTarget.resize(urlLength + 5u);
- char* hashTargetPtr = &(hashTarget[urlLength]);
+ std::uint8_t* hashTargetPtr = &(hashTarget[urlLength]);
// Pack the width and height (4 bytes total).
*hashTargetPtr++ = size.GetWidth() & 0xff;
if(maskTextureId != INVALID_TEXTURE_ID)
{
- auto textureIdIndex = hashTarget.length();
- hashTarget.resize(hashTarget.length() + sizeof(TextureId));
- unsigned char* hashTargetPtr = reinterpret_cast<unsigned char*>(&(hashTarget[textureIdIndex]));
+ auto textureIdIndex = hashTarget.size();
+ hashTarget.resize(hashTarget.size() + sizeof(TextureId));
+ std::uint8_t* hashTargetPtr = reinterpret_cast<std::uint8_t*>(&(hashTarget[textureIdIndex]));
// Append the texture id to the end of the URL byte by byte:
// (to avoid SIGBUS / alignment issues)
const Dali::SamplingMode::Type& samplingMode,
const TextureCacheManager::UseAtlas& useAtlas,
const TextureCacheManager::TextureId& maskTextureId,
- const TextureCacheManager::MultiplyOnLoad& preMultiplyOnLoad)
+ const TextureCacheManager::MultiplyOnLoad& preMultiplyOnLoad,
+ bool isAnimatedImage)
{
// Default to an invalid ID, in case we do not find a match.
TextureCacheIndex cacheIndex = INVALID_CACHE_INDEX;
(useAtlas == textureInfo.useAtlas) &&
(maskTextureId == textureInfo.maskTextureId) &&
(size == textureInfo.desiredSize) &&
+ (isAnimatedImage == textureInfo.isAnimatedImageFormat) &&
((size.GetWidth() == 0 && size.GetHeight() == 0) ||
(fittingMode == textureInfo.fittingMode &&
samplingMode == textureInfo.samplingMode)))
if(textureInfoIndex != INVALID_CACHE_INDEX)
{
TextureInfo& textureInfo(mTextureInfoContainer[textureInfoIndex]);
-
DALI_LOG_INFO(gTextureManagerLogFilter, Debug::Concise, "TextureCacheManager::Remove(textureId:%d) url:%s\n cacheIdx:%d loadState:%s reference count = %d\n", textureId, textureInfo.url.GetUrl().c_str(), textureInfoIndex, GET_LOAD_STATE_STRING(textureInfo.loadState), textureInfo.referenceCount);
// Decrement the reference count and check if this is the last user of this Texture.