У меня были некоторые проблемы и вопросы в целом, касающиеся настройки контекста OpenGL и его правильного использования в MacOSX с использованием Snow Leopard.В Интернете существует множество различных учебных пособий и кода, которые различаются в пределах от 10,4 до 10,6.Я намерен не использовать GLUT для моих периферийных взаимодействий и для обработки моего контекста GL.
Чтобы подойти к рассматриваемому вопросу, я хочу уметь рисовать мою сцену при изменении размера окна.по какой-то причине моя функция изменения формы работает неправильноЯ также не знаю, должен ли я использовать NSOpenGLView или CustomView в конструкторе интерфейса.Из того, что я понял, кажется, что если вам нужно больше атрибутов рендеринга по умолчанию, которые вы можете выбрать в объекте NSOpenGLView, то вам следует использовать CustomView.В моем случае я создал подкласс NSOpenGLView и подключил свой класс к этому объекту в IBuilder.
В любом случае, вот мой код ниже.Как указано ниже, я действительно хочу иметь возможность перемещаться между орто-пространством (пиксельное пространство) и перспективой (мировое пространство).Я получаю предупреждение при попытке использовать gluOrtho2D () (неявное объявление функции).Я не уверен, как заставить это работать правильно все же, поэтому любая помощь ценится.Извините за вывод моего кода - по какой-то причине он не хочет правильно его форматировать:
#import "MyOpenGLView.h"
@implementation MyOpenGLView
-(void)reshape {
NSRect rectView = [self bounds];
if( m_rectView.size.width != rectView.size.width || m_rectView.size.height != rectView.size.height ) {
glViewport( 0, 0, rectView.size.width, rectView.size.height );
m_rectView = rectView;
}
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glMatrixMode(GL_MODELVIEW);
}
-(void) drawRect:(NSRect)bounds {
glClearColor(0, 0, 0, 0);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glColor3f(1.0, 0.85, 0.35);
glBegin(GL_TRIANGLES);
{
glVertex3f(0.0, 0.6, 0.0);
glVertex3f(-0.2, -0.3, 0.0);
glVertex3f(0.2, -0.3, 0.0);
}
glEnd();
glFlush();
}
@end