菜鸟教程小白 发表于 2022-12-13 16:12:41

iphone - IOS 中 glColor4f OpenGL 函数的应用程序崩溃


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

<pre><code>QCAR::Matrix44F modelViewProjection;


                glColor4f(0.5f,0.0f,0.0f,0.0f);
                ShaderUtils::multiplyMatrix(&amp;qUtils.projectionMatrix.data, &amp;modelViewMatrix.data, &amp;modelViewProjection.data);
                glUseProgram(shaderProgramID);
                glVertexAttribPointer(vertexHandle, 3, GL_FLOAT, GL_FALSE, 0, (const GLvoid*) &amp;vbVertices);
                glEnableVertexAttribArray(vertexHandle);
                glUniformMatrix4fv(mvpMatrixHandle, 1, GL_FALSE, (GLfloat*)&amp;modelViewProjection.data );
                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*) &amp;vbVertices);
                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);
</code></pre></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>我已经做了一些研究,这里有几件事供您尝试:</p>

<ul>
<li>改为尝试<code>glColor4d()</code>,它需要4个双参数;</li>
<li> <a href="http://www.opengl.org/discussion_boards/showthread.php/179026-Application-crash-on-glColor4f" rel="noreferrer noopener nofollow">You might be calling a null function pointer, hence the crash</a> .当加载过程没有为 <code>glColor4f</code>;</li> 调用 <code>getProc</code> 时,就会发生这种情况
<li>尝试在 <code>glColor4f()</code> 之前调用 glGetError() 以了解 GL 方面是否存在问题。</li>
</ul>

<p>另外,有人在 <a href="http://www.opengl.org/discussion_boards/showthread.php/179026-Application-crash-on-glColor4f" rel="noreferrer noopener nofollow">this thread</a> 中回复了您的问题.他可能是对的。</p></p>
                                   
                                                <p style="font-size: 20px;">关于iphone - IOS 中 glColor4f OpenGL 函数的应用程序崩溃,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/12352936/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/12352936/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: iphone - IOS 中 glColor4f OpenGL 函数的应用程序崩溃