CCRenderTexture端的cocos2D iphone中出现OpenGL 500错误



在ipad上使用绘图应用程序,并将CCRenderTexture用作绘制精灵的画布。我使用的绘制循环是基于cocos示例中渲染纹理类的绘制循环。

[target begin];
float distance = ccpDistance(start, end);
if (distance > 1) {
    int d = (int)distance;
    float difx = end.x - start.x;
    float dify = end.y - start.y;
    for (float i = 0; i < d; i+=([self.currentBrush sprite].textureRect.size.width * [self.currentBrush sprite].scale)/4.0f) {
        float delta = i / distance;
        [[self.currentBrush sprite] setPosition:ccp(start.x + (difx * delta), start.y  + (dify * delta))];
        [[self.currentBrush sprite] visit];
    }
} else {
    [[self.currentBrush sprite] setPosition:start];
    [[self.currentBrush sprite] visit];
}
[target end];

每次调用[target end]时,我都会得到OpenGL 0x0500错误:

OpenGL error 0x0500 in -[EAGLView swapBuffers]

它似乎是基于我在"画布"上绘制的精灵上的混合函数{GL_ONE, GL_DST_COLOR}。当我使用{GL_ONE, GL_ONE}{GL_ONE, GL_ONE_MINUS_SRC_ALPHA}(橡皮擦)时,我不会遇到同样的问题。

该问题存在于iOS 4.2和4.3的设备和模拟器上。

这是我第一次使用OpenGL,所以我在试图找到解决方案时感到有点迷失,任何帮助都将不胜感激。

[更新]

我删除了所有设置混合的函数调用,因为GL_DST_COLOR似乎是导致错误的原因。去除混合调用(除了橡皮擦)后,它看起来仍然一样,所以我很高兴。

在阅读了cocos2d论坛上关于同一问题的帖子后,我找到了这个解决方案。

May be It's bug in latest version of Cocos2d.It's give the warning and some time Performance is also decrease.I fetch same problem when we put Gesture on the view controller.
Below link is a my question discussion.

**http://stackoverflow.com/questions/21326063/glview-causes-opengl-error?noredirect=1#comment32164422_21326063**

相关内容

  • 没有找到相关文章

最新更新