求助,一个简单的openGL 索引绘画 的问题

核心代码如下

static const char *vertexShaderSource =
“attribute highp vec2 posAttr;\n”
“varying lowp vec4 col;\n”
“uniform highp mat4 matrix;\n”
“void main() {\n”
" col = vec4(1.0, 0.0, 0.0, 1.0);\n"
" gl_Position = matrix * vec4(posAttr, 0.0, 1.0);\n"
“}\n”;

static const char *fragmentShaderSource =
“varying lowp vec4 col;\n”
“void main() {\n”
" gl_FragColor = col;\n"
“}\n”;

void TriangleWindow::createVertexBuffer()
{
GLfloat vertices] = {
0.0f, 1.0f,
0.0f, 0.0f,
1.0f, 0.0f,
1.0f, 1.0f
};

glGenBuffers(1, &m_vbo);
glBindBuffer(GL_ARRAY_BUFFER, m_vbo);
glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW);

}

void TriangleWindow::createIndexBuffer()
{
GLfloat indexs] = {
0,1,2
};

glGenBuffers(1, &m_ibo);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, m_ibo);
glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(indexs), indexs, GL_STATIC_DRAW);

}

void TriangleWindow::initialize()
{
createVertexBuffer();
createIndexBuffer();
}

glEnableVertexAttribArray(m_posAttr);

glBindBuffer(GL_ARRAY_BUFFER, m_vbo);
glVertexAttribPointer(m_posAttr, 2, GL_FLOAT, GL_FALSE, 0, (const GLvoid*)0);

//glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, m_ibo);
//glDrawElements(GL_TRIANGLES, 3, GL_UNSIGNED_SHORT, 0);
glDrawArrays(GL_TRIANGLES, 0, 3);

glDisableVertexAttribArray(m_posAttr);

如上代码,程序能看到 三角形,但改成索引绘制时,就显示黑屏了,什么也看不到
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, m_ibo);
glDrawElements(GL_TRIANGLES, 3, GL_UNSIGNED_SHORT, 0);
//glDrawArrays(GL_TRIANGLES, 0, 3);

使用的是 openGL ES 2.0. 求高手解答?

自己刷一下

搞定了,原来是 GLfloat 改成 GLuint