OpenGL ES 1.1 любит сбой моей программы для iPhone, если что-то идет не так.Как отлаживать ошибки OpenGL ES?
Обычно это происходит где-то внутри glDrawArrays, с несколькими вызовами glDestroyContext на стек.
Обычно я рассекает проблему вставив
{
GLint iErr = glGetError();
if (iErr != GL_NO_ERROR)
{
NSLog(@"GL error: %d (0x%x)", iErr, iErr);
}
}
повсюду.
Однако иногда этого недостаточно. Есть ли другие способы получить полезную диагностику по причинам сбоя?
Никаких дополнительных сообщений консоли (то есть в стороне от типа сбоя - это, как правило, плохой доступ). Обычно это либо некоторые плохие входные данные, либо я забыл включить какое-то состояние. Но для того, чтобы найти то, что было неправильно, нужно время. Обычно мне приходится прибегать к двоичному поиску. :( –
Я бы проверял, чтобы вы не пытались рисовать больше треугольников, чем содержат ваши буферы. Похоже, что OpenGL попадает в память, а это, вероятно, означает, что вы сказали, что у вас больше вершин, чем вы действительно имеете в буфере. –