Pri*_*ime 3 memory android textures
在 Android OpenGL ES 中创建纹理后,是否必须稍后使用 glDeleteTextures() 显式删除这些纹理?如果是这样,我将如何设置回调来执行此操作?
提前致谢
如果不再使用纹理,则应调用 glDeleteTextures() 以便可以释放底层硬件资源。
但正如 EboMike 所说,使用从先前上下文实例创建的纹理时必须小心;为了扩展这个答案,我喜欢创建一个纹理处理类,它包装纹理的 ID 并从它的 finalize() 方法调用 glDeleteTextures(),但也有一个名为“contextId”的应用程序静态整数,它每增加一次创建 GL 上下文的时间(即在 onSurfaceCreated 中);纹理管理器在实例化时应该跟踪 contextId 的值,如果它的值发生变化,这意味着它应该重新加载它的纹理(请记住,旧的纹理 ID 已经与旧的上下文一起丢弃了)。
| 归档时间: |
|
| 查看次数: |
2255 次 |
| 最近记录: |