Java OpenGL:如何正确地从视频内存加载/卸载纹理?
我有一个Java OpenGL应用程序,由JOGL支持,运行在Linux slitaz 3.2.53-slitaz#4 SMP Europe 2014 i686 GNU/Linux上 OpenGL详细信息:Java OpenGL:如何正确地从视频内存加载/卸载纹理?,java,linux,memory,opengl-es-2.0,jogl,Java,Linux,Memory,Opengl Es 2.0,Jogl,我有一个Java OpenGL应用程序,由JOGL支持,运行在Linux slitaz 3.2.53-slitaz#4 SMP Europe 2014 i686 GNU/Linux上 OpenGL详细信息: 供应商:英特尔开源技术中心 渲染器:Mesa DRI 英特尔(R)Ivybridge Mobile x86/MMX/SSE2 版本:2.1 Mesa 9.1.3 GL 简介:GLProfile[GL2/GL2.hw] 当在GPU上运行加载和删除纹理时,它会在一定时间后崩溃-与加载和卸载的
- 供应商:英特尔开源技术中心
- 渲染器:Mesa DRI
- 英特尔(R)Ivybridge Mobile x86/MMX/SSE2
- 版本:2.1 Mesa 9.1.3 GL
- 简介:GLProfile[GL2/GL2.hw]
- 正在创建帧缓冲区,glGenFramebuffers
- 创建背衬纹理,glGenTextures。。glFramebufferTexture2D
- 绑定并绘制到此屏幕外帧缓冲区
- 正在删除缓冲区,glDeleteFramebuffers
- 保持纹理在屏幕上绘制几帧
- 删除纹理,glDeleteTextures
谢谢。问题确实如Reto Koradi在评论中所建议的那样,在删除之前不将纹理和渲染缓冲区与帧缓冲区分离会将它们保留在内存中 对于正在使用纹理和/或渲染缓冲区创建屏幕外帧缓冲区的任何其他人,请确保先分离它们!例如:
- glBindFramebuffer(GL2ES2.GL_FRAMEBUFFER,theFrameBufferID)李>
- glFramebufferTexture2D(GL2ES2.GL_帧缓冲区, GL2ES2.GL_颜色_附件0,GL2ES2.GL_纹理_2D,0,0)李>
- glFramebufferRenderbuffer(GL2ES2.GL_帧缓冲区, GL2ES2.GL_模板附件,GL2ES2.GL_渲染缓冲,0)李>
- glDeleteFramebuffers。。帧缓冲ID
- glDeleteTextures
- glDeleteRenderbuffers
- glBindFramebuffer(GL2ES2.GL_帧缓冲区,0)李>