阻止OpenGL.framework从加载在Cocoa应用程序 [英] Prevent OpenGL.framework from Loading in Cocoa App

查看:177
本文介绍了阻止OpenGL.framework从加载在Cocoa应用程序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我对这些框架的应用程序链接:

My application links against these Frameworks:

Cocoa.Framework
AppKit.Framework
CoreData.Framework
Foundation.Framework

请注意,OpenGL.Framework是 。但是,在设置DYLD_PRINT_LIBRARIES = 1后,我注意到:

Note that OpenGL.Framework is NOT linked. However, after setting DYLD_PRINT_LIBRARIES=1, I note that:


...

...

dyld:loaded:/System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL

dyld: loaded: /System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL

dyld:loaded:/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/...

dyld: loaded: /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/...

dyld:loaded :/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/...

dyld: loaded: /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/...

dyld:loaded:/ System / Library / Frameworks / OpenGL.framework / Versions / A / Libraries /...

dyld: loaded: /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/...

dyld:loaded:/ System / Library / Frameworks / OpenGL.framework / Versions / A / Libraries /...

dyld: loaded: /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/...

dyld:loaded:/ System / Library / Frameworks / OpenGL .framework / Versions / A / Libraries /...

dyld: loaded: /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/...

...

这是一个巨大的问题,因为[可可开发人员列表] [1]中指出,OpenGL框架导致NVidia显卡启动为更新的MacBook优点。

This is a huge problem because, as noted on the [cocoa-dev list][1], the OpenGL framework causes the NVidia graphics card to power on for the newer MacBook Pros.

如我所料,我的应用程序会导致NVidia卡开机。更糟糕的是,当窗口关闭时框架不会卸载。

As expected, my application causes the NVidia card to power on. What's worse, is that the framework does not unload when the window is closed.

我唯一的非标准图形元素是一些自定义的NSBezierPath图纸和阴影。

The only non-standard graphic elements I have are some custom NSBezierPath drawings and a shadow.

基本上,当我的应用程序启动集成显卡时,系统会显示窗口,然后离散图形开启并保持开启状态窗口状态。

Essentially, when my app starts integrated graphics are used UNTIL the window is shown, and then discrete graphics are powered on and remain on regardless of the window state.

ANSWER

一个NSView与NSBezierPaths或清除背景,一定要设置:[myView setWantsLayer:NO]

For an NSView with NSBezierPaths OR clear backgrounds, make sure to set: [myView setWantsLayer:NO]

推荐答案

一个需要Cocoa加载OpenGL的功能。像CoreAnimation,或任何花哨的UI东西。您在应用程式中显示影片吗?可能是原因。

I'd say you user a feature that requires Cocoa to load OpenGL. Like CoreAnimation, or any fancy UI stuff. Are you showing videos in your app? Might be the reason.

同样的事情发生在一个全新的示例项目,链接到相同的框架?

Does the same thing happen on a brand-new example project that links to the same frameworks?

这篇关于阻止OpenGL.framework从加载在Cocoa应用程序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆