ティアリングについて

リアルタイム描画環境を実現するゲームループができたところで、次に気になるのがティアリングだ。例えば30FPSで、トップのFormの中に、OpenGLもしくはDirect3Dを関連付け、SwapBuffers()もしくはdevice->Present()を使って、バックバッファをFLIPすると、ひどいティアリングが発生してしまう。
理由はよくわからない。PresentationParameters をいろいろいじって見ても無駄だった。ハード依存ということもあるのだろう。
ところがどうだ、これが、Formではなく、その中に作成した、panelウィジェットに対してOpenGLまたDirect3Dのデバイスを関連付けしてやると、ティアリングは全く見られなくなった。このことから単純に、Windowed モードの場合は、フォームいっぱいの領域を占有するpanelを用意して、そこに3D描画するようにすればよいではないかなどと思ってしまうのだが、いかがだろうか。