我的应用程序链接到这些框架:
Cocoa.Framework
AppKit.Framework
CoreData.Framework
Foundation.Framework
请注意,OpenGL.Framework 是NOT已链接。但是,设置 DYLD_PRINT_LIBRARIES=1 后,我注意到:
...
dyld:已加载:/System/Library/Frameworks/OpenGL框架/版本/A/OpenGL
dyld:已加载:/System/Library/Frameworks/OpenGL框架/版本/A/库/...
dyld:已加载:/System/Library/Frameworks/OpenGL框架/版本/A/库/...
dyld:已加载:/System/Library/Frameworks/OpenGL框架/版本/A/库/...
dyld:已加载:/System/Library/Frameworks/OpenGL框架/版本/A/库/...
dyld:已加载:/System/Library/Frameworks/OpenGL框架/版本/A/库/...
...
这是一个大问题,因为正如 [cocoa-dev 列表][1] 中所述,OpenGL 框架会导致 NVidia 显卡在较新的 MacBook Pro 上启动。
正如预期的那样,我的应用程序导致 NVidia 卡开机。更糟糕的是,当窗口关闭时框架不会卸载。
我唯一的非标准图形元素是一些自定义 NSBezierPath 绘图和阴影。
本质上,当我的应用程序启动时,使用集成显卡直到显示窗口,然后打开独立显卡并保持开启状态无论窗口状态如何。
ANSWER
对于具有 NSBezierPaths 或清晰背景的 NSView,请确保设置: [myView setWantsLayer:NO]
我想说您使用的功能需要 Cocoa 加载 OpenGL。比如 CoreAnimation,或者任何奇特的 UI 东西。您是否在应用程序中显示视频?可能是这个原因吧
在链接到相同框架的全新示例项目上是否会发生同样的情况?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)