Создание окна OGL в OSX без использования XIB - PullRequest
3 голосов
/ 28 декабря 2011

Можно ли создать окно OpenGL в OSX, используя Xcode 4, без использования XIB?

Я хочу, чтобы это была статическая библиотека, в противном случае я был бы рад использовать Interface Builder.

1 Ответ

2 голосов
/ 28 декабря 2011

Конечно, вы можете создавать все элементы интерфейса программно.Вы просто создаете окно с содержимым NSOpenGLView, например:

NSWindow *w = [[NSWindow alloc] initWithContentRect:NSMakeRect(100,100,400,300)
                                          styleMask:NSTitledWindowMask|NSClosableWindowMask|NSMiniaturizableWindowMask|NSResizableWindowMask
                                            backing:NSBackingStoreBuffered
                                              defer:YES];
NSRect frame = [w contentRectForFrameRect:[w frame]];
// this is optional - request accelerated context
unsigned int attrs[] = { NSOpenGLPFAAccelerated, 0 };
NSOpenGLPixelFormat *pixelFormat = [[NSOpenGLPixelFormat alloc] initWithAttributes:(NSOpenGLPixelFormatAttribute*)attrs];
NSOpenGLView  *view = [[NSOpenGLView alloc] initWithFrame:frame pixelFormat:pixelFormat];
[pixelFormat release];
// manage properties of the window as you please ...
[w setOpaque:YES];
[w setContentView:view];
[w makeFirstResponder:view];
[w setContentMinSize:NSMakeSize(150.0, 100.0)];
[w makeKeyAndOrderFront: self];

На практике вы, вероятно, подкласс NSOpenGLView и будете использовать вместо этого свой класс ...

...