GLuint VBO;
GLuint IBO;
static void createVertexBuffer()
{
    Vector3f vertices[4];                          //! 顶点坐标初始化
    vertices[0] = Vector3f(-1.0f, -1.0f, 0.0f);
    vertices[1] = Vector3f(0.0f, -1.0f, 1.0f);
    vertices[2] = Vector3f(1.0f, -1.0f, 0.0f);
    vertices[3] = Vector3f(0.0f, 1.0f, 0.0f);
    
    glGenBuffers(1, &VBO);                         //! 创建VBO
    glBindBuffer(GL_ARRAY_BUFFER, VBO);            //! 绑定VBO
    glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW); //!赋值VBO  
}


static void createIndexBuffer()
{
     unsigned int indices[12] = {
                                   0, 3, 1,
                                   1, 3, 2,
                                   2, 3, 0,
                                   0, 1, 2
                                }; 
    glGenBuffer(1, &IBO);                          //! 创建buffer
    glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, IBO);    //! 绑定buffer
     glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(indices), indices, GL_STATIC_DRAW);
}



static void render()
{
    glEnableVertexAttribArray(0);
    glBindBuffer(GL_ARRAY_BUFFER, VBO);                     //! 绑定VBO
    glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0, 0);  //! 
    glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, IBO);             //! 绑定IBO
    glDrawElements(GL_TRIANGLES, 12, GL_UNGIGNED_INT, 0);   //! 绘图
    glDisableVertexAttribArray(0);
}

  

posted on 2014-07-30 00:21  kid_coder  阅读(264)  评论(0)    收藏  举报