我的NSOpenGLView不起作用。我已经尝试了一切

时间:2010-10-17 12:42:01

标签: objective-c c cocoa opengl nsopenglview

我想在NSOpenGLView中显示某些内容,但由于文档上总共有零字节文档,示例代码与文档 应该是一样大而复杂 ,我无法理解它。这是我的代码到目前为止,我的ANOpenGLView是NIB子类NSOpenGLView的{​​{1}}:

ANOpenGLView

如何让三角形出现?我唯一得到的是一个空白的白色屏幕。


P.S。我想用2D绘图。


编辑我已经更新了我的代码,这就是我现在所拥有的: screenshot

3 个答案:

答案 0 :(得分:1)

我不确定这是唯一的问题,但是:

  1. 您尚未定义像素格式
  2. 您尚未在代码
  3. 中设置矩阵
  4. 您尚未设置视口
  5. 这里http://www.cocoadev.com/index.pl?NSOpenGLView是一个简短的例子,它几乎就是你所需要的,但是当你需要正交来在2D空间中渲染时,设置了透视矩阵(功能glOrtho)。世界与世界在这种情况下,视图可以是身份。

    由于2D是你的目标,你不会过多地处理这个矩阵,只需设置一次。

答案 1 :(得分:1)

首先,你已经请求了一个双缓冲的上下文,但是你永远不会交换它们,所以你可能总是会进入看不见的后台缓冲区。在刷新后添加对glSwapAPPLE()的调用。

我对你所有的直接[self openGLContext]电话都不太确定。通常NSOpenGLView应该为你处理这些东西,但是在这种情况下你通过直接从你的计时器调用drawRect来绕过视图的设置,所以事情可能有点混乱。

您是否尝试过从您的计时器方法调用[self setNeedsDisplay:YES]并让普通视图设置发生?我希望重绘仍然足够快,这会让生活更轻松......

答案 2 :(得分:0)

编辑:@Peter是对的,仍然是一个很好的资源,只是不适用于这个问题。

Jeff Lamarche的openGL帖子是一个很棒的介绍,它们包含一个项目模板,可以为您处理大部分设置。

http://iphonedevelopment.blogspot.com/2009/05/opengl-es-from-ground-up-table-of.html