分段线仅在 iPhone 上绘制第一段。在模拟器中完美运行

Posted

技术标签:

【中文标题】分段线仅在 iPhone 上绘制第一段。在模拟器中完美运行【英文标题】:Segmented line only draws first segment on iPhone. Works perfectly in simulator 【发布时间】:2011-06-16 07:28:25 【问题描述】:

我试图在 ios 中使用 openGL 绘制分段线。它适用于模拟器,但不适用于 iPhone。这是绘制方法:

- (void) draw

    if(nuPoints_ <= 1)
        return;
    glBindTexture(GL_TEXTURE_2D, [texture_ name]);

    glTexCoordPointer(2, GL_FLOAT, 0, texCoords_);
    glVertexPointer(2, GL_FLOAT, 0, vertices_);
    glColorPointer(4, GL_UNSIGNED_BYTE, 0, colorPointer_);

    BOOL newBlend = blendFunc_.src != CC_BLEND_SRC || blendFunc_.dst != CC_BLEND_DST;
    if( newBlend )
        glBlendFunc( blendFunc_.src, blendFunc_.dst );

    glDrawArrays(GL_TRIANGLE_STRIP, 0, nuPoints_*2);

    if( newBlend )
        glBlendFunc(CC_BLEND_SRC, CC_BLEND_DST);    

(blendFunc 未设置为任何值)

vertices_ 和 nuPoints 都有正确的(数量)点,所以问题肯定出在这个方法上。

【问题讨论】:

你解决过这个问题吗? 好的。如果你有我会建议回答你自己的问题。也许我会尝试解决它。​​ 【参考方案1】:

您粘贴的代码没有发现任何错误,因此在此之前或之后一定有问题。

试着在抽奖后放上这样的东西

        GLenum err = glGetError();
        if (err != GL_NO_ERROR)
        
            NSLog(@"Render Error 0x%04X", err);
        

看看是否弹出任何 GL 错误,我总是在我的主绘制循环中将其中一个注释掉,它已经救了我很多次。

【讨论】:

以上是关于分段线仅在 iPhone 上绘制第一段。在模拟器中完美运行的主要内容,如果未能解决你的问题,请参考以下文章

音频引擎仅在运行 iOS 10 的设备(iphone 6)上失败,在所有模拟器设备上运行良好或真实设备直到 iphone 6s

仅在模拟器 iPhone6 中首次启动时出现位置权限问题 - XCode 9.4.1

仅在某些 iPhone 5 和 6 上出现网站错误

PhoneGap App 在模拟器上工作,但在 iPhone 设备上不能正常工作

Safari 9 仅在画布上绘制视频的第一帧(错误)

仅在模拟器中出现 CGContext 错误?