根据这篇文章,SpriteBatch实例需要在dispose()不再需要时调用.然而,当我查看一些libgdx的官方例子,如Pax Britannica和Super Jumper时,我发现他们从不打电话SpriteBatch.dispose().这是为什么?
SpriteBatch 必须始终处置.
在内部,它创建和管理多个Mesh对象.这些对象在GPU上分配顶点/索引数组.只有在显式调用时才会释放它们Mesh#dispose(),这将通过调用dispose()SpriteBatch对象来触发.
默认情况下,它也会创建自己的ShaderProgram.同样,如果你没有打电话,也会泄露dispose().
如果演示没有这样做,也许是时候发送拉取请求了!