+void NPatchLoader::Remove( std::size_t id, TextureManager& textureManager, NPatchLoadObserver* nPatchObserver, bool synchronousLoading )
+{
+ Data* data;
+ data = mCache[ id - 1u ];
+
+ for(uint32_t index = 0; index < data->observerList.Count(); ++index )
+ {
+ if(nPatchObserver == data->observerList[index])
+ {
+ data->observerList.Erase( data->observerList.begin() + index );
+ break;
+ }
+ }
+
+ if(data->observerList.Empty())
+ {
+ data->loadCompleted = false;
+ data->hash = 0u;
+ data->url.clear();
+ data->textureObserver = nullptr;
+ data->textureSet.Reset();
+ }
+ else
+ {
+ if(!data->loadCompleted && data->textureObserver == nPatchObserver)
+ {
+ data->textureObserver = nPatchObserver;
+ auto preMultiplyOnLoading = data->preMultiplyOnLoad ? TextureManager::MultiplyOnLoad::MULTIPLY_ON_LOAD
+ : TextureManager::MultiplyOnLoad::LOAD_WITHOUT_MULTIPLY;
+
+ Devel::PixelBuffer pixelBuffer = textureManager.LoadPixelBuffer(data->url, Dali::ImageDimensions(), FittingMode::DEFAULT, SamplingMode::BOX_THEN_LINEAR, synchronousLoading, nPatchObserver, true, preMultiplyOnLoading);
+
+ if(pixelBuffer)
+ {
+ NPatchBuffer::SetLoadedNPatchData(data, pixelBuffer, (preMultiplyOnLoading == TextureManager::MultiplyOnLoad::MULTIPLY_ON_LOAD) ? true : false);
+ }
+ }
+ }
+}
+