我正在使用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);

最佳答案

我已经进行了一些研究,以下是一些您可以尝试的事情:

  • 改为尝试glColor4d(),它需要4个double参数;
  • You might be calling a null function pointer, hence the crash。当加载过程没有为getProc调用glColor4f时,就会发生这种情况;
  • 尝试在glColor4f()之前调用glGetError()以了解事物的GL方面是否存在问题。

  • 另外,有人在this thread中回答了您的问题。他可能是正确的。

    关于iphone - IOS中的glColor4f OpenGl函数导致应用程序崩溃,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12352936/

    10-12 01:49