在 Xcode 中针对 Mac 进行 OpenGL 开发。我可以强制软件渲染吗?

发布于 2024-10-31 15:00:01 字数 205 浏览 0 评论 0原文

我正在将 OpenGL 游戏从 iPhone 移植到 Mac,但遇到纹理损坏的问题。我猜这是一个内存问题。

问题是我的 mac 已经崩溃了 3 次(游戏启动时随机发生),所以调试起来变得很困难。

有什么办法可以强制软件渲染吗?

在此处输入图像描述

I'm porting an OpenGL game from iPhone to Mac, and having problems with textures getting corrupted. I guess it's a memory problem.

The thing is I've crashed the mac 3 times now (happens random when the game launches), so it's getting difficult to debug this.

Is there any way I can force software render?

enter image description here

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

对你的占有欲 2024-11-07 15:00:01

当您创建用于初始化上下文的像素格式属性列表时,选择kCGLRendererGenericID作为NSOpenGLPFARendererIDinitWithAttributes: )。

NSOpenGLPFARendererID

值是一个非负渲染器 ID 号。首选与指定 ID 匹配的 OpenGL 渲染器。 OpenGL 框架的 CGLRenderers.h 标头中提供了选择特定渲染器的常量。值得注意的是 kCGLRendererGenericID,它选择 Apple 软件渲染器。其他常量为特定硬件供应商选择渲染器。

注意! 我刚刚看到 kCGLRendererGenericID 已被弃用,要使用的是 kCGLRendererAppleSWID

另一个技巧是使用 OpenGL Profiler 启动应用程序。请参阅此处

http://lists.apple.com/archives/ quartzcomposer-dev/2010/Jun/msg00090.html

Select kCGLRendererGenericID as NSOpenGLPFARendererID when you create the pixelformat attribute list for initing the context (initWithAttributes:).

NSOpenGLPFARendererID

Value is a nonnegative renderer ID number. OpenGL renderers that match the specified ID are preferred. Constants to select specific renderers are provided in the CGLRenderers.h header of the OpenGL framework. Of note is kCGLRendererGenericID which selects the Apple software renderer. The other constants select renderers for specific hardware vendors.

NOTE! I just saw that kCGLRendererGenericID has been deprecated and the one to use is kCGLRendererAppleSWID

Another tip is to start the app with the OpenGL Profiler. See here

http://lists.apple.com/archives/quartzcomposer-dev/2010/Jun/msg00090.html

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文