构建OpenGL应用程序在OSX 10.9中不起作用

时间:2014-10-14 13:36:16

标签: c++ macos opengl

使用OSX 10.9 / XCode6在我的Macbook Pro上构建任何C ++ / OpenGL应用程序正在生成一个空白窗口,没有任何渲染。 glClear工作,我可以看到清晰的颜色,但绘图命令似乎只是被忽略(没有GL错误,我没有注意到任何可疑的步骤通过调试器)。我附加OpenGL分析器时只是空白。 GPU和显示驱动程序都很好(蒸汽游戏/预构建的二进制文件工作得很好),据我所知,我的构建环境是理智的(我使用MacPorts作为第三方库)。

可能导致此问题的原因是什么?

更多详情:

我正在开发一款多平台独立游戏,现在正尝试将游戏移植到OSX。我们的游戏使用SDL2进行OpenGL上下文管理。 我浪费了2天的调试时间,无法发现我们的代码有任何问题或任何迹象表明为什么没有进行渲染。在Linux中使用相同的构建文件和库,游戏在那里完美运行。 该问题与我的显示硬件或驱动程序无关,因为使用OpenGL的预构建二进制文件可以正常工作。

我在XCode和NetBeans上编写了几个简单的OpenGL Hello World应用程序(this sample code for example)和不同的窗口/上下文库(SDL2,SFML和GLFW)(以确保XCode不是问题) )我得到了完全相同的结果。只是一个空白的屏幕。 这真让我感到困惑,到目前为止,我一直试图弄清楚如何修复它。

鉴于我所掌握的信息,唯一可能的嫌疑人是我与#34; -framework OpenGL"相关联的OpenGL库。论点。但据我所知,那些预先构建并准备好使用XCode,所以我做一些愚蠢的事情并打破它们的可能性很小。

修改

添加一些更积极的错误检查给了我新的线索。 glewInit()调用抛出一个无效的枚举错误,但似乎是预期的行为,应该被忽略[source]。

1 个答案:

答案 0 :(得分:0)

我设法得到一个简单的三角形来显示!

不确定我是如何第一次错过它但glEnableVertexAttribArray()失败并导致无效操作GL错误,似乎在OSX OpenGL 3.2+核心glEnableVertexAttribArray()失败,如果没有顶点数组对象在调用时绑定(在该特定示例代码中就是这种情况)。我不确定为什么我认为顶点属性数组与顶点数组对象在功能上没有关系。

无论如何,由于我设法从OpenGL中获得一些渲染,这意味着我的系统/环境没有任何问题,因此我认为我的主要问题已经解决。

谢谢!