OpenGL:使用多个程序 - >什么都没画了

时间:2012-11-26 11:56:55

标签: ios opengl-es rubymotion

我生成了多个用一个程序(即一个顶点着色器和一个片段着色器)正确绘制的对象,它们都在同一个上下文中运行。我现在想添加另一个对象,我想将它与不同的程序一起使用。

所以,之前调用glActiveTexture()glBindTexture()glBindBuffer()glBufferData()glEnableVertexAttribArray()glVertexAttribPointer()和一些统一的命令,我用适当的programID调用glUseProgram()

结果是,当要绘制两种对象时,不绘制任何内容。如果我停用使用第一个程序的对象,则会正确绘制新对象,反之亦然。

切换程序时要记住的是什么。

感谢。

编辑:当我进一步调查时,我注意到抛出了一个OpenGL错误,我忽略了它因为它被消耗而没有打印( grrr )。事实证明它根本不是OpenGl的错误,而是一个rubymotion问题。 (最初没想到。)Rubymotion垃圾收集了我的OpenGL程序,因为我在本地分配了它,后来才通过glUseProgram(GLuint x)访问它。所以我只是让程序在ruby中全局化,所有程序现在都正常工作。谢谢你的评论。你不可能知道,我的错误,sry。

0 个答案:

没有答案