<分区>
我只绘制了 4 个顶点。我正在尝试使用 glDrawElements
渲染一个简单的四边形,但似乎没有任何效果。我也用 Java 编写了相同的代码,并且可以正常工作。然而,这不是。
绘制代码如下:
glUseProgram(mProgram);
glBindBuffer(GL_ARRAY_BUFFER, mBuffers[0]);
glEnableVertexAttribArray(mPosAttr);
glVertexAttribPointer(mPosAttr, 3, GL_FLOAT, GL_FALSE, 0, (void*)0);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, mBuffers[1]);
if (er == 0){ er = glGetError(); std::cout<<gluErrorString(er)<<std::endl; }
glDrawElements(GL_TRIANGLE_STRIP, 4, GL_UNSIGNED_SHORT, (void*)0);
glDisableVertexAttribArray(mPosAttr);
glBindBuffer(GL_ARRAY_BUFFER, 0);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0);
glUseProgram(0);
我遗漏了一些无用的东西,例如 glUniform__
调用,无论哪种方式,我都会得到相同的结果。无论如何,这第一次打印“无错误”,然后第二次打印“内存不足”。这意味着它绝对是由 glDrawElements 引起的。
为什么会这样?什么会解决它?我应该提供更多代码吗?