CCRenderTexture
スレッド内に描画しようとしています。私が持っている:
EAGLSharegroup *sharegroup = [[[[CCDirector sharedDirector] openGLView] context] sharegroup];
EAGLContext *k_context = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES2 sharegroup:sharegroup];
[EAGLContext setCurrentContext:k_context];
スレッドの先頭に。以外はすべて機能しましCCSprite.draw
た。レンダー テクスチャを次のようにテストしました。
[rt beginWithClear:1 g:1 b:1 a:1];
[sprite visit];
[rt end];
呼び出し[CCSprite visit]
てもスプライトは描画されません。 glGetError
すべてのステップで 0 を返します。
この問題をさらに調査するために、UI スレッドにすべてを配置し、コンテキスト呼び出しを削除しました。同じコードでスプライトが正しく描画されていることがわかります。また、このスプライトをシーンに追加して、スプライトが正しいことも確認しました。
また、スレッドを使用しない場合でも、上記の「コンテキスト設定呼び出し」を配置するとCCSprite.draw
、動作が停止しますが、CCRenderTexture
. 画面に描画している場合は正常に動作します。
この問題を解決する方法はありますか? 前もって感謝します!