次の方法で共有


マルチスレッド OpenGL 描画戦略

GDI は複数のスレッドをサポートしていません。 スレッドごとに個別のデバイス コンテキストと個別のレンダリング コンテキストを使用する必要があります。 これにより、OpenGL アプリケーションを実行する単一プロセッサ システムで複数のスレッドを使用する場合のパフォーマンス上の利点が制限される傾向があります。 ただし、単一のプロセッサ システムでスレッドを使用して、パフォーマンスを大幅に向上させる方法があります。 たとえば、別のスレッドを使用して、OpenGL レンダリング呼び出しを専用の 3-D ハードウェアに渡すことができます。

対称マルチプロセッシング (SMP) システムは、複数のスレッドを使用することで大きなメリットを得ることができます。 明らかな方法は、プロセッサごとに個別のスレッドを使用して、別のウィンドウで OpenGL レンダリングを処理することです。 たとえば、フライト シミュレーション アプリケーションでは、個別のプロセッサとスレッドを使用して、前面、背面、および側面のビューをレンダリングできます。

スレッドは、現在アクティブなレンダリング コンテキストを 1 つだけ持つことができます。 複数のスレッドと複数のレンダリング コンテキストを使用する場合は、それらの使用を同期するように注意する必要があります。 たとえば、1 つのスレッドのみを使用して、すべてのスレッドが描画を完了した後 に SwapBuffers を呼び出します。