現在、私は、Androidで、Replica Islandからインスパイアされたデザインを使用してゲームを書いています。つまり、デュアルスレッドアプローチ、1つのロジックスレッド、1つのレンダースレッドです。Androidの並行レンダリングデザイン
これは、基本的にはレンダリング可能なゲームオブジェクトを処理するロジックスレッドに置かれた軽量レンダリングモジュールで設定しました。これはレンダリング・コマンドをレンダリング・スレッドに送ります(「スプライトfをx、yでレンダリング」など)。
私はこのデザインが好きですが、私の問題は現在リソース作成にあります。スプライトfがテクスチャを必要としているとします。これはロード時にロジックスレッドで要求されます。問題は、OpenGLコンテキストがレンダリングスレッドにあるため、テクスチャはレンダラスレッドでのみ作成できることです。現在、論理スレッドとレンダスレッドの間の唯一の同期ポイントは、フレームの最後にレンダリングキューを交換するときです。そのままにしておきたいと思います。
どのようにしてレンダリングスレッド上のものだけをレンダリングしながら、ロジックスレッド上でテクスチャやvboなどを作成したいのかを解決できますか? OpenGLのコンテキストを共有するのは良いアプローチですか?あるいはエンジンの他のデザインかもしれない?
EDIT:別の方法として、論理スレッドからの要求を入れるキューを用意することです。 「テクスチャの作成」など。レンダースレッドは、このキューを繰り返し処理してから、もう一方のキューのレンダリングを開始します。私はこの解決策を気に入っています。