将Opengl es 1.0中的代码转换为Opengl es 2

时间:2011-04-06 10:06:28

标签: text opengl-es

这是代码:

glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, mFont->mTexId);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);

// Bind our vertex data
glVertexPointer(2, GL_FLOAT, 0, mVertices);
glEnableClientState(GL_VERTEX_ARRAY);
glTexCoordPointer(2, GL_FLOAT, 0, mUVs);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);

// Draw the text
glDrawElements(GL_TRIANGLES, 6 * mNumberOfQuads, GL_UNSIGNED_BYTE, mIndices);

我尝试了下一个代码,但它没有用,问题是我开始学习Opengl Es并且我不了解很多东西。

 // Enable texturing, bind the font's texture and set up blending
 //glEnable(GL_TEXTURE_2D);
 glBindTexture(GL_TEXTURE_2D, mFont->mTexId);

 //glEnable(GL_BLEND);
 //glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);

 // Bind our vertex data
 //glVertexPointer(2, GL_FLOAT, 0, mVertices);
 //void VertexPointer(int size,enum type,sizei stride, void *pointer );


 glVertexAttribPointer(1, 2, GL_FLOAT, GL_FALSE, 20, mVertices);
 //void VertexAttribPointer( uint index, int size, enum type, boolean normalized, sizei stride, const void *pointer );
 //glEnableClientState(GL_VERTEX_ARRAY);
 //glEnableVertexAttribArray(VERTEX_ARRAY);



 // glTexCoordPointer(2, GL_FLOAT, 0, mUVs);

 //glEnableClientState(GL_TEXTURE_COORD_ARRAY);

 // Bind the VBO so we can fill it with data
 glBindBuffer(GL_ARRAY_BUFFER, 2);
 // Draw the text

 glDrawArrays(GL_TRIANGLES,  0, 6 * mNumberOfQuads);
 //void DrawArrays( enum mode, int first, sizei count );

 //glDrawElements(GL_TRIANGLES, , GL_UNSIGNED_BYTE, );
 //void DrawElements(enummode,sizeicount,enumtype, void *indices );*/

1 个答案:

答案 0 :(得分:1)

在提交几何体之前,尝试编译并绑定顶点和像素着色器。 ES 2.0中没有固定功能管道