理想的には、複数のワーカー スレッドで画面外のレンダー ターゲットにレンダリングし、レンダリングされたコンテンツを画面上のターゲットに「転送」できるようにしたいと考えています。hwnd レンダー ターゲットでは、これは問題ではないようです (msdn に例があります)。
画面上のレンダー ターゲットが DXGI スワップ チェーンに基づいている場合の方法がよくわかりません。私の知る限り、ウィンドウごとに 1 つのスワップ チェーンしか持てません。したがって、スワップ チェーンに基づくレンダー ターゲットは 1 つしか持てません。これは、オンスクリーン レンダリングがその単一のレンダー ターゲットを介してのみ実行できることを意味します。
上記の仮定が正しければ、マルチスレッド レンダリングを処理する最善の方法は何ですか? 画面上のターゲットへのアクセスをシリアル化する必要がありますか? ワーカー スレッドは単一のマルチスレッド d2d ファクトリを共有する必要がありますか? 適切なロック メカニズムが配置されている場合、画面上のターゲットの BeginDraw/EndDraw/Present をワーカー スレッド (つまり、画面上のターゲットを作成しなかったスレッド) で実行できますか?
提案をいただければ幸いです。ありがとう。