message: Add a method for removing GPU Objects from Associated cache
diff: @@ -355,21 +355,34 @@ namespace asset
  /** Keeping assets around (by their pointers) helps a lot by letting the loaders retrieve them from the cache and not load cpu objects which have been loaded, converted to gpu resources and then would have been disposed of. However each dummy object needs to have a GPU object associated with it in yet-another-cache for use when we convert CPU objects to GPU objects.*/
  void convertAssetToEmptyCacheHandle(IAsset* _asset, core::IReferenceCounted* _gpuObject)
  {
  + const uint32_t ix = IAsset::typeFlagToIndex(_asset->getAssetType());
  _asset->grab();
  _asset->convertToDummyObject();
  - m_cpuGpuCache[IAsset::typeFlagToIndex(_asset->getAssetType())]->insert(_asset, _gpuObject);
  + m_cpuGpuCache[ix]->insert(_asset, _gpuObject);
  }
  core::IReferenceCounted* findGPUObject(const IAsset* _asset)
  {
  + const uint32_t ix = IAsset::typeFlagToIndex(_asset->getAssetType());
  core::IReferenceCounted* storage[1];
  size_t storageSz = 1u;
  - m_cpuGpuCache[IAsset::typeFlagToIndex(_asset->getAssetType())]->findAndStoreRange(_asset, storageSz, storage);
  + m_cpuGpuCache[ix]->findAndStoreRange(_asset, storageSz, storage);
  if (storageSz > 0u)
  return storage[0];
  return nullptr;
  }
  + //! Removes one GPU object matched to an IAsset.
  + bool removeCachedGPUObject(const IAsset* _asset, core::IReferenceCounted* _gpuObject)
  + {
  + const uint32_t ix = IAsset::typeFlagToIndex(_asset->getAssetType());
  + bool success = m_cpuGpuCache[ix]->removeObject(_gpuObject,_asset);
  + _asset->drop();
  + return success;
  + }
  +
  + // we need a removeCachedGPUObjects(const IAsset* _asset) but CObjectCache.h needs a `removeAllAssociatedObjects(const Key& _key)`
  +
  //! Writing an asset
  /** Compression level is a number between 0 and 1 to signify how much storage we are trading for writing time or quality, this is a non-linear scale and has different meanings and results with different asset types and writers. */
  bool writeAsset(const std::string& _filename, const IAssetWriter::SAssetWriteParams& _params, IAssetWriter::IAssetWriterOverride* _override)
  