【发布时间】:2012-06-19 12:38:30
【问题描述】:
所以我试图创建一个 openGL 视图(在我的窗口中)。我正在制作一个 Cocoa 应用程序。 我设法通过 Interface Builder 创建了一个,但出于教育目的,我想继续制作一个没有它的。只是在纸上。
这就是我告诉你我正在努力解决的问题。 所以到目前为止,我基本上已经尝试过的是: 我创建了一个继承自 NSOpenGLView 的新类“MyOpenGLView.h/m”。 我没有添加任何私有变量或方法,只是类名。我唯一做的就是覆盖 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 视图。我猜想它与被调用方法的层次结构有关,但又一次……我不确定。你能帮帮我吗?
【问题讨论】:
标签: objective-c macos cocoa opengl nsopenglview