+
+ if(mUseSynchronousSizing)
+ {
+ // Get current visual size
+ Vector2 size = mImpl->mTransform.GetVisualSize(mImpl->mControlSize);
+ uint32_t maximumNumber = std::numeric_limits<uint16_t>::max();
+ uint32_t sizeWidth = static_cast<uint32_t>(roundf(size.width));
+ sizeWidth = std::min(sizeWidth, maximumNumber);
+ uint32_t sizeHeight = static_cast<uint32_t>(roundf(size.height));
+ sizeHeight = std::min(sizeHeight, maximumNumber);
+ Dali::ImageDimensions visualSize = Dali::ImageDimensions(sizeWidth, sizeHeight);
+
+ // Reload if visual size is updated
+ if(mLastRequiredSize != visualSize)
+ {
+ RemoveTexture();
+ mLoadState = TextureManager::LoadState::NOT_STARTED;
+
+ // Need to reset textureset after change load state.
+ mTextures.Reset();
+
+ bool attemptAtlasing = AttemptAtlasing();
+ LoadTexture(attemptAtlasing, mAtlasRect, mTextures, visualSize, TextureManager::ReloadPolicy::CACHED);
+ }
+ }