QGLWidgets の 3 レイヤー階層を使用して、CAD のようなアプリで 5 つの OpenGL ビューポート間でシェーダーと頂点データを共有しています。ルート コンテキストはアプリケーション全体のシェーダーをコンパイルするために使用され、ドキュメントごとのコンテキストはモデルの頂点データを共有するために使用され、ビューポート コンテキストは実際にレンダリングを行うものです (グリッド頂点データやその他のビューポートごとのものも含まれます)。
シェーダーの共有は正常に機能しているようで、グリッドの描画も同様ですが、頂点データの共有に関しては失敗し、正直に言うと、どのように機能するのかわかりません...
モデル コンテキストが最新の状態でアイテムの 3D アイコンを作成しました。これは、'name' が 1 の最初の VAO であったためです。 )が現在であるため、VAO 1が呼び出されますが、描画されるのはビューポートのVAO 1です-私の素敵な赤いグリッドの中心線。OpenGL コンテキストは共有できますが、名前が一意ではないため、各アイテムが属する「名前空間」をどのように指定できますか?
モデル VAO が呼び出される直前にモデル コンテキストを最新のものにしようとしましたが、適切な VAO もビューポートも描画されません。
これは私には非常に基本的なことのように思えるので、何か愚かなことをしているに違いありません - 何か提案はありますか?