1

glGenTextures()コンストラクターで動作しない理由を誰か教えてもらえますか?

私のプロジェクトのセットアップ方法は次のとおりです。

  • .draw現在アクティブなステージを呼び出すカスタム レンダラーが使用されます。
  • ステージが作成されると、それ自体 (コンストラクターの最後の行) が static に割り当てられますGlobal.activeStage
  • これで、レンダラーは.draw現在アクティブなステージを呼び出します。この参照は 内に保持されGlobal.activeStageます。
  • ステージには、ステージで必要なすべてのテクスチャをロードする関数があります。
  • この関数を初めて呼び出す.drawと、問題はありません。
  • ただし、コンストラクターで呼び出すと、glGenTextures()1..2..3 などではなくゼロ値を作成する以外はすべて機能します。
  • GL10どちらの場合も、取得ではなくグローバル参照が使用される.drawため、問題はありません。

私が使用している現在のステージへの参照が既に存在する場合にのみ、すべてが機能するようです (ステージが作成されている場合、たとえばコンストラクターが既に実行されている場合)。

関係あるか分かりませんが、onCreateSurface終了後にステージがスレッドに作成されます。

どの部分が関連するかを教えていただければ、コードの一部を投稿できます。

4

1 に答える 1

5

関連する ですべてのopenGL操作を実行する必要があると確信しています。これが、レンダラー (GL スレッドで実行される) から呼び出されたメソッドから呼び出されたときに機能するのですが、コンストラクター (あなたが言うように別のスレッドで実行されます) からではなく機能する理由です。ThreadopenGLdraw()

于 2012-05-15T13:00:18.660 に答える