2

私のアプリケーションは、これらのフレームワークにリンクしています:

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

OpenGL.Framework はリンクされていないことに注意してください。ただし、DYLD_PRINT_LIBRARIES=1 を設定した後、次のことに注意してください。

...

dyld: ロード済み: /System/Library/Frameworks/ OpenGL.framework /Versions/A/ OpenGL

dyld: ロード済み: /System/Library/Frameworks/ OpenGL.framework /Versions/A/Libraries/...

dyld: ロード済み: /System/Library/Frameworks/ OpenGL.framework /Versions/A/Libraries/...

dyld: ロード済み: /System/Library/Frameworks/ OpenGL.framework /Versions/A/Libraries/...

dyld: ロード済み: /System/Library/Frameworks/ OpenGL.framework /Versions/A/Libraries/...

dyld: ロード済み: /System/Library/Frameworks/ OpenGL.framework /Versions/A/Libraries/...

...

[cocoa-dev list][1] に記載されているように、OpenGL フレームワークにより、新しい MacBook Pro で NVidia グラフィックス カードの電源がオンになるため、これは大きな問題です。

予想どおり、アプリケーションによって NVidia カードの電源が入ります。さらに悪いことに、ウィンドウが閉じられたときにフレームワークがアンロードされません。

私が持っている唯一の非標準のグラフィック要素は、いくつかのカスタム NSBezierPath 描画と影です。

基本的に、アプリが起動すると、ウィンドウが表示されるまで統合グラフィックスが使用され、その後、個別のグラフィックスの電源がオンになり、ウィンドウの状態に関係なくオンのままになります。


答え

NSBezierPaths またはクリアな背景を持つ NSView の場合は、必ず [myView setWantsLayer:NO] を設定してください。

4

2 に答える 2

1

また、Apple は、アプリを統合グラフィックス カードで実行できるようにするためのサポートを追加したようです。

NSSupportsAutomaticGraphicsSwitching to true は、2011 (およびそれ以降) の macbook に役立ちます。

http://developer.apple.com/library/mac/#qa/qa1734/_index.html%23//apple_ref/doc/uid/DTS40010791

この設定でアプリをテストする必要があります。

于 2012-10-02T15:09:04.657 に答える
1

OpenGL の読み込みに Cocoa が必要な機能を使用していると思います。CoreAnimation や派手な UI のようなものです。アプリで動画を表示していますか? 理由かもしれません。

同じフレームワークにリンクする新しいサンプル プロジェクトでも同じことが起こりますか?

于 2010-11-05T14:39:04.527 に答える