【问题标题】:OpenGL on Mac OS X for an iPhone developer适用于 iPhone 开发人员的 Mac OS X 上的 OpenGL
【发布时间】:2011-09-22 01:12:45
【问题描述】:

我正在寻找适用于 Mac OS X 的基本 OpenGL 应用程序的一个很好的示例,但不是太简单。

我在 iOS 和 Objective-c 方面拥有良好的经验基础,但我从未构建过 Mac OS X 应用程序。

我所能找到的只是超级简单的示例,它们在 drawRect 中完成所有绘图和逻辑:或者具有层和抽象层的过于复杂的示例。我不想使用 Glut、SDL 或任何其他 3rd 方库或引擎。

我希望能够像在 iOS 游戏中一样驱动游戏循环并使用 CADisplayLink。我也宁愿不使用 .xib 文件,因为我喜欢了解正在发生的事情,并且那里的黑匣子对我来说隐藏了太多,尽管如果它能让我得到其他一切,我很乐意将它用作第一步(游戏循环、CADisplayLink 等)。

我的 iOS 代码手动创建了它的 OpenGL 视图,但 iOS 和 OS X 之间的差异似乎已经足够大,以至于我无法确定它的正面或反面。我只需要获得一个 Window 和一个 OpenGL 视图,并能够通过游戏循环绘制到它。

有人能指点我一个好的资源吗? Apples 的示例在简单和过于复杂之间跳跃,就像我在 Internet 上可以找到的所有其他示例一样。

【问题讨论】:

    标签: ios macos opengl


    【解决方案1】:

    抱歉,我无法回答您的问题。我一直使用 XIB 文件(很久以前,我也一直想重新发明轮子,但现在我很懒,更喜欢完成工作:p)而且我从不使用显示链接。

    你不喜欢覆盖 drawRect: 什么?

    我用来开始使用 OpenGL 的示例是这个:http://developer.apple.com/library/mac/#samplecode/CocoaGL/Introduction/Intro.html#//apple_ref/doc/uid/DTS10004501

    不太复杂,简单到可以理解(如果我没记错的话,它不使用任何 XIB :p)

    【讨论】:

    • 也许我误解了 drawRect: 的用途,但它似乎是在需要刷新窗口时由操作系统调用的,但对于始终运行游戏循环的游戏来说,这不会没道理。我不明白 drawRect: 是什么吗?
    • 啊,是的,您的理解是正确的,但是如果您查看我链接的示例,它只会创建一个计时器,该计时器将重复调用 drawRect: 方法。我不知道这是否是最好的方法,但它工作正常^^(至少在示例中,对于我的小引擎和编辑器^^)
    • 我花了一天时间破解你链接到的例子,我想我一切正常。我不知道这是否是最好的方法,但它现在有效。再次感谢。
    猜你喜欢
    • 1970-01-01
    • 2011-10-16
    • 1970-01-01
    • 1970-01-01
    • 2012-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-13
    相关资源
    最近更新 更多