Так что я пытаюсь создать представление 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. Я бы догадался, что это что-то про иерархию вызываемых методов, но опять же ... я не уверен Вы можете помочь мне с этим?