void MySprite::draw(){
    glLineWidth(5);
    glColor4f(1.0, 0.0, 0.0, 1.0);
    glDisable(GL_TEXTURE_2D);
    glDisableClientState(GL_TEXTURE_COORD_ARRAY);
    glDisableClientState(GL_COLOR_ARRAY);
    
    GLfloat ver[4] = {100,50,200,50};
 //   glVertexAttribPointer(0, 2, GL_FLOAT, GL_FALSE, 0, ver);
    glVertexPointer(2, GL_FLOAT, 0, ver);
    glDrawArrays(GL_LINES, 0, 3);
    
    glEnableClientState(GL_COLOR_ARRAY);
    glEnableClientState(GL_TEXTURE_COORD_ARRAY);
    glEnable(GL_TEXTURE_2D);
}我在xcode里面用opengles es1
为什么我用glVertexPointer()这个方法就画不出线了。但是我用glVertexAttribPointer可以画出线,但是线的颜色是灰色不是红色,怎么回事呀。高手求助opengles glVertexPointerOpenGL ES

解决方案 »

  1.   

    你这个代码不像OpenGLES的,倒像是OpenGL的
      

  2.   

    话说OpenGL ES1和OpenGL ES2使用是有区别的:
    // OpenGL ES 1.1这样写:
    glVertexPointer(2, GL_FLOAT, ... );
    glColorPointer(4, GL_FLOAT, ... );
     
    // OpenGL ES 2.0变成这样
    glVertexAttribPointer(positionSlot, 2, GL_FLOAT, ...);
    glVertexAttribPointer(colorSlot, 4, GL_FLOAT, ...);两个别搞混啦