OpenGLView не отображается
Я следовал этому руководству.
В то время как я искренне не смог понять, что он говорит в пункте 13, я просто открыл панель инспектора, но он не говорит, какие атрибуты установить. Тем не менее, я скопировал и вставил код в соответствующие классы. Но это выглядит как обычное окно без рисования треугольника, как когда я делаю обычную программу в Objective-C с пустым окном.
Редактировать:
Я думал, что проблема заключалась в инициализации окна, поэтому я написал метод awakeFromNib, чтобы запустить метод drawRect:
- (void) awakeFromNib
{
NSRect rect=NSMakeRect(100.0, 100.0, 100.0, 100.0);
[self drawRect: rect];
}
Но при первой инструкции drawRect я получаю исключение EXC_BAD_ACCESS
glClearColor(0, 0, 0, 0);
Может окно не правильно инициализировано?
1 ответ
Вы, вероятно, segfaulting, потому что OpenGL пытается изменить некоторое состояние в текущем контексте, пока нет текущего контекста (потому что вы отправили -drawRect:
без предварительной установки текущего контекста).
Вы никогда не должны отправлять -drawRect:
сам. Вместо этого используйте -setNeedsDisplay
и пусть Какао установить текущий контекст и отправить -drawRect:
для тебя:
- (void)awakeFromNib {
self.needsDisplay = YES;
}