我通常在Windows上编程,但我从学校获得了一个macbook pro,所以我正在尝试为OSX制作一个OpenGL应用程序.我下载并安装了XCode,但我不知道如何获得一个简单的OpenGL应用程序.我不想使用Objective-C,但我绝对不想使用GLUT.有人能指出我正确的方向吗?
Nik*_*chi 11
OS X上的OpenGL与几乎所有其他内容的最大区别在于头文件的位置.在OS X上:
#include <OpenGL/gl.h>
#include <OpenGL/glu.h>
#include <GLUT/glut.h>
Run Code Online (Sandbox Code Playgroud)
如果您想远离Objective-C/Cocoa和GLUT,您可以尝试SDL,这是一个跨平台的游戏库(窗口,2D图形,声音,输入等).
编辑:忘了mipadi发布的编译器标志,即:
-framework OpenGL
Run Code Online (Sandbox Code Playgroud)
这个问题在互联网时代非常古老,但最直接的方式就是在Objective-C中哄骗你的脚...抱歉.
我接近这个的一般方法如下:
NSOpenGLView在对象浏览器中查找对象,然后在窗口中将其打开.MyRenderer.MyRenderer.NSOpenGLView.
- (void) awakeFromNib:你的班级在这里初始化.不要在这里初始化OpenGL,否则你的程序会崩溃.- (void) drawRect:(NSRect)dirtRect:你在这里画画.- (void) prepareOpenGL:在这里初始化OpenGL.- (void) reshape:(NSRect)bounds:用于视图调整大小时.好消息是你可以在MyRenderer.mm中自由混合C++函数和类.您还可以使用C++ #include指令和Objective-C #import指令.你可以在里面做C++ drawRect没有问题.
坏消息是NSOpenGLView 不会每隔x毫秒重绘场景.只有在感觉有必要时才会重绘场景.你必须使用Cocoa的NSTimer类.
编辑:额外注:在drawRect方法,请确保调用glFlush()以及[[self openGLContext] flushBuffer].出于某种原因,只有调用[[self openGLContext] flushBuffer]不会在视图上为我绘制任何内容.
| 归档时间: |
|
| 查看次数: |
26611 次 |
| 最近记录: |