2

我正在开发 OpenCV 客户端应用程序,我的应用程序在 IOS 5.1 上运行良好,但是当我在 IOS 4.3 上运行我的应用程序时,它glColor4f在类中定义的函数处崩溃gl.h,但在崩溃时没有显示任何错误消息。我正在做以下事情:

QCAR::Matrix44F modelViewProjection;


                glColor4f(0.5f,0.0f,0.0f,0.0f);
                ShaderUtils::multiplyMatrix(&qUtils.projectionMatrix.data[0], &modelViewMatrix.data[0], &modelViewProjection.data[0]);
                glUseProgram(shaderProgramID);
                glVertexAttribPointer(vertexHandle, 3, GL_FLOAT, GL_FALSE, 0, (const GLvoid*) &vbVertices[0]);
                glEnableVertexAttribArray(vertexHandle);
                glUniformMatrix4fv(mvpMatrixHandle, 1, GL_FALSE, (GLfloat*)&modelViewProjection.data[0] );
                glColor4f(0.5f,0.0f,0.0f,0.0f);

                glEnableClientState (GL_VERTEX_ARRAY);
                glEnableClientState (GL_COLOR_ARRAY); 
                glEnableClientState(GL_COLOR_ARRAY);    
              //  glColorPointer(4, GL_FLOAT, 0, triangleColors);  
                glVertexPointer(3, GL_FLOAT, 0, (const GLvoid*) &vbVertices[0]); 
                glDisableClientState(GL_TEXTURE_COORD_ARRAY);
                glDisable(GL_TEXTURE_2D);
                glDrawArrays(GL_LINES, 0, 8);
                //glDisableClientState(GL_TEXTURE_COORD_ARRAY);
                //glDisable(GL_TEXTURE_2D);
                glDisableVertexAttribArray(vertexHandle);
4

2 回答 2

2

我已经做了一些研究,这里有几件事供您尝试:

另外,有人在这个帖子中回答了你的问题。他可能是对的。

于 2012-09-11T15:56:06.197 回答
1

glColor4f()仅与 OpenGL ES 1.1 固定功能管道一起使用。从glUseProgram()上述代码中的使用来看,您正在使用 OpenGL ES 2.0,因此glColor4f()不受支持。

如果您希望设置材质的颜色,则需要通过着色器程序中的制服来完成。如果您只想设置场景的背景颜色,则可以使用以下内容:

    glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
    glClear(GL_COLOR_BUFFER_BIT);
于 2012-09-11T19:50:47.167 回答