Remove ClearMaterialsCache call when a material is destroyed in ogre2 (backport #1110) #1111
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
🦟 Bug fix
Summary
The material cache in
Ogre2MeshFactory
was introduced in #324 to clear material objects when a mesh is removed. Looking at the current state, this call should no longer be needed as we now have logic inOgre2Material::Destroy
function to destroy ogre internal material / texture objects (and also unregistering gz-rendering material objects) when they are not in use. So this PR removes the material cache and the the call toClearMaterialCache
function.Note that we ran into an issue with the
ClearMaterialsCache
function. It clears materials by the name of the texture it contains. However, it's possible for multiple materials to use the same texture, and the current logic may incorrectly destroy the wrong material. Removing the call toClearMaterialsCache
resolves that issue.Checklist
codecheck
passed (See contributing)Note to maintainers: Remember to use Squash-Merge and edit the commit message to match the pull request summary while retaining
Signed-off-by
messages.This is an automatic backport of pull request #1110 done by [Mergify](https://mergify.com).