Итак, я пытаюсь создать представление openGL (в моем окне). Я делаю приложение какао. Мне удалось создать его с помощью Interface Builder, но в образовательных целях я хочу продолжить и сделать его без него. Только по бумагам.
И вот в чем суть, о которой я говорю, что я борюсь с этим. Итак, что я в основном сделал-попробовал, так это следующее: Я создал новый класс MyOpenGLView.h / m, унаследованный от NSOpenGLView.Я не добавил к нему никаких частных переменных или методов, только имя класса. Единственное, что я сделал, это переопределил initWithFrame: (добавив в него self = [super initWithFrame: pixelFormat:].) Я читал об этом в Интернете, что вы должны сначала создать его с чем-то вроде этого, прежде чем вы сможете его использовать). вот код:
- (id) initWithFrame:(NSRect)frameRect
{
NSOpenGLPixelFormat *pixelFormat = [[NSOpenGLPixelFormat alloc]
initWithAttributes:(NSOpenGLPixelFormatAttribute[])
{
NSOpenGLPFAWindow,
NSOpenGLPFADoubleBuffer,
NSOpenGLPFADepthSize, 32,
nil
}];
self = [super initWithFrame:frameRect pixelFormat:pixelFormat];
[[self openGLContext] makeCurrentContext];
}
Итак, у меня есть другой класс с именем «MyViewController.h / m», который обрабатывает мой вид? и вот у меня мой MyOpenGLView * myView. В файле .m я использую что-то вроде этого:
myView = [[MyOpenGLView alloc] initWithFrame:CGRectMake(0,0,100.0,100.0)];
if (!myView) { NSLog(@"ERROR"); }
и, конечно же, получаю ошибку.
В моем оконном приложении нет портированного представления openGL. Я бы предположил, что это что-то об иерархии вызываемых методов, но опять же ... я не уверен. Вы можете мне помочь?