According to this article, a SpriteBatch
instance needs to call dispose()
once it is no longer needed. However, as I examine some of libgdx's official examples like Pax Britannica and Super Jumper, I found out that they never call SpriteBatch.dispose()
. Why is that?
SpriteBatch
must always be disposed.
Internally, it creates and manages several Mesh
objects. These objects allocate vertex/index arrays on the GPU. Those are only deallocated if you explicitly call Mesh#dispose()
, which will be triggered by calling dispose()
on your SpriteBatch object.
It will also, by default, create its own ShaderProgram
. And similarly, would be leaked if you didn't call dispose()
.
If the demo's aren't doing this, perhaps it's time to send a pull request!
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With