- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我在代码 (C) 的开头设置了一些纹理。每个纹理都正确生成(没有错误),我将纹理名称作为 GLuint 存储在图像结构中供以后使用。在程序结束时,GLuint 被传递回 GLdeleteTextures() 并且程序退出。
问题是我在第一次尝试使用 GLDeleteTextures() 时一直收到错误。对 GLDeleteTextures() 的所有后续调用都不会产生错误。
错误(来自 gluErrorString)指出“无效枚举”。
额外信息。在调用 glBindTexture(GL_TEXTURE_2D, NULL) 删除之前,所有纹理都是未绑定(bind)的。所有纹理名称 (GLuint) 在创建时都经过验证,它们与删除时使用的名称相同。删除时纹理的顺序无关紧要,问题是第一次调用删除。
当前的解决方法。我发现在第一个纹理上重复 glDeleteTextures() 是有效的,例如......
glDeleteTextures(1,&MyImage->texName); // Will produce 'invalid enumerant'
glDeleteTextures(1,&MyImage->texName); // This time it will work!
我通过在第二次删除后生成新纹理并比较纹理名称来仔细检查上面的代码。第二次调用后纹理确实被删除并正确放回系统。
我有红皮书,它对纹理删除有点含糊。是否必须执行一组明确的步骤才能正确删除纹理?
最佳答案
错误不在于 glDeleteTextures()
而在于 glEnable(GL_ALPHA)
。
关于c - OpenGL GLDeleteTextures() 无法删除第一个纹理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12516975/
我正在尝试编写一个类来进行片段着色器链接,方法是使用帧缓冲区对象使用帧着色器渲染到纹理,然后使用片段着色器将该纹理渲染到另一个纹理,等等。 我现在正在尝试处理内存泄漏,当我调整窗口大小并删除/重新分配
在一些示例代码中看到了,但我从未使用过它,除非我动态打开新的不同大小的纹理等。 那么当我的应用程序终止时,我的操作系统或其他东西是否会释放纹理内存?还是我必须自己释放它? 最佳答案 来自 Androi
(Mac OS X、iOS 应用程序) 问 glDeleteTextures 在上述平台上实际做什么? (官方文档是......充其量是稀疏的。) 在内存管理方面,纹理是否真的从视频卡中删除了? (或
我的程序一次将大型 jpeg 渲染为纹理,并允许用户通过重新使用“相同”纹理在它们之间切换。 我在开始时调用了一次 glGenTextures(1, &texture);。 然后每次我想交换我使用的图
我在代码 (C) 的开头设置了一些纹理。每个纹理都正确生成(没有错误),我将纹理名称作为 GLuint 存储在图像结构中供以后使用。在程序结束时,GLuint 被传递回 GLdeleteTexture
我遇到了一个奇怪的问题,我以未定义但不知何故有效的纹理结尾。应用此纹理的网格是黑色的。此纹理的 glIsTexture(textureId) 方法返回 1 (!) 但纹理显然是错误的。它具有未定义的大
我正在开发一款 2D 游戏,该游戏具有可以加载和(并且应该卸载)的多个级别。 为了更容易处理纹理,我写了一个 TextureLoader 类,它有一个包含所有纹理的列表,当游戏中的对象想要使用纹理时,
基本上,在我的代码中,我挂接了 glDeleteTextures 和 glBufferData 函数。我存储了一个纹理列表和一个缓冲区列表。缓冲区列表包含校验和和指向缓冲区的指针。下面的代码在数据到达
def del_tex(self): glDeleteTextures(self.Texture_ID) 报错 TypeError: No array-type handler for typ
我的 openGL 应用程序内存不足时遇到了一些问题,我正在尝试追踪我的问题。为此,我创建了一个小型测试程序,它基本上只是从调用 glDeleteTextures 的文件中加载一个巨大的纹理,然后再次
我即将围绕 OpenGL 纹理实现一个托管包装类,并且我希望对象终结器调用 glDeleteTextures。 因此,调用终结器的线程(GC 线程?)必须通过调用 wglMakeCurrent 绑定(
上下文: 我使用 gl.glGenTextures 将 2 个纹理加载到大小为 2 的 int[] 中,然后将纹理绑定(bind)到 int[] 的每个槽。 (这很好用,我可以将每个纹理绘制到我准备好
我想知道为什么函数 GLES20.glDeleteTextures() 在 OpenGL ES 2.0 中有三个 参数,而“标准”glDeleteTextures() 只有两个 参数。 即使在 doc
我是一名优秀的程序员,十分优秀!