[Delphi][OpenGL] DirectDrawとかChangeDisplaySettingsとか妙な関係

三日坊主の最後の一日ですので、動くところまで持っていきたいのですが。
ウィンドウモードは問題ないのですが、最大化時、タイミングによって動いたり動かなかったり…わけわからんです。
ChangeDisplaySettingsは他のアプリのウィンドウに画面サイズ変更を通知しますので、律義に応答してくれるアプリは640×480の範囲に移動してしまいますし。*1
DirectDrawもChangeDisplaySettingsもやめて、単にTOPMOSTのウィンドウを最大化しておくだけにしようかなあ…。
最大化時で、たまたまうまく動いたときは、FPS一割り増しになって魅力的なのですけど。

…解決したかな?

思い切ってDirectDrawをやめて、ChangeDisplaySettingsのみにしました。
この場合…最大化のほうが同じ640×480でもウィンドウモードより遅い…何故でしょう…。

それと、最大化してからスクリーンモードを切り替えないと、上手く描画されない謎の現象が発生してまして、また最大化後にSetWindowPosやMoveWindowでリサイズしても駄目で…どういうことかといいますと、ウィンドウは画面サイズを切り替える前の最大化したサイズのままでして、またOpenGLがそのサイズを使うものですから、glViewportしてやらないと全部表示されないという…。

なんなんでしょうこれは…。
幾許かのトライの結果、「最前面ウィンドウが他にあれば正常に動く」「最大化時のサイズが640×480だと真っ黒のままで640×481だと動く」ことが判明。
本当になんなんでしょうこれは…。

*1:Delphiのエディタウィンドウがこれ!