Ошибка OpenGL 500 в cocos2D-iphone на конце CCRenderTexture - PullRequest
5 голосов
/ 28 июня 2011

Работа над приложением для рисования для 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} (Eraser), у меня не возникает та же проблема.

Проблема существует на iOS 4.2 и 4.3 как на устройстве, так и на симуляторе.

Я впервые работаю с OpenGL, поэтому я немного растерялся, пытаясь найти решение, любая помощь будет принята с благодарностью.

[Update]

Я удалил все вызовы функций, чтобы установить смешивание, так как GL_DST_COLOR, похоже, было причиной ошибки. После удаления смешанных вызовов (за исключением ластика) он все равно выглядит так, и я доволен этим.

Пришел к этому решению после прочтения сообщения на форуме cocos2d относительно той же проблемы.

1 Ответ

0 голосов
/ 13 февраля 2014
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**
...