2

OpenCVクライアントアプリで作業しています。アプリケーションはIOS5.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()OpenGLES1.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 に答える