NSWindow
テスト目的で「cocos Player」を起動するコンテンツ エディタを構築しています。ユーザーは、一部のコンテンツをテストしてから、ウィンドウを閉じることができます。
そのため、cocos をシャットダウンして、同じアプリ内で再起動できるようにする必要があります。
CC_MAC_USE_DISPLAY_LINK_THREAD
スレッド モデルを使用すると、すべてが機能します。これを機能させるには、修正を加える必要がありましたCCDirectorMac
。を使用するときにandによって nil に設定されていないため、 toCCDirectorMac | stopAnimation
を設定する必要がありました。_runningThread
nil
#if
#elif
CC_MAC_USE_DISPLAY_LINK_THREAD
とにかく、ディレクターを「終了」して、後で問題なく再起動できるようになりました。
私の質問は次のとおりです。cocos2D をときどき使用する AppKit エディターを構築している場合CC_MAC_USE_MAIN_THREAD
、ドキュメントで提案されているスレッド モデルは実際にはどのようなものでしょうか?
私が使用するCC_MAC_USE_MAIN_THREAD
と、次の行にハングインします。stopAnimation
CVDisplayLinkStop(displayLink);
メインスレッドは問題なく、ツールのスレッド化の問題を回避できると思います。パフォーマンスは問題ではありません。cocos2d をシャットダウンして再起動するサンプル コードを見つけることができませんNSWindow
。
シャットダウン/再起動する私の手順は次のとおりです。
- 電話
[[CCDirector sharedDirector] end]
- これは
stopAnimation
- 次に、最初に行ったのと同じ方法で cocos2d を再初期化します
Mac デスクトップ アプリのスレッド モデルに関するアドバイスと、CVDisplayLinkStop
ハングする理由を教えてください。
前もって感謝します。