ImGui を使おうと組み込んで、以下の図に示すような文字の滲み・ぼけの症状に出遭ったときに確認するべきことを記載しておきます。なお、ImGuiを通常の組込をした場合には、このような状態になりません。
確認すべきこと
描画対象の解像度が正しく合っているか、これを確認しましょう。
上記の画像は、 DirectX のレンダーターゲットのサイズとウィンドウのクライアント領域のサイズが不一致という状態で撮影したものです。文字がぼけているだけに見えますが、ちょっと外れた位置でサイズ変更のアイコンが出たりして実際の操作にも少々課題ありとなっています。
追加情報
ImGui ではウィンドウハンドルから、自身のディスプレイサイズを取得しています。DirectX ではスワップチェインの作成時に解像度を指定します。どちらも実装者がサイズを設定するため、ここがズレることは可能性として低いのですが、 ウィンドウサイズについて補正を忘れると今回のような症状が出てきます。
AdjustWindowRect 関数を用いて、ウィンドウのクライアントサイズも意図した解像度になるようにしましょう。
ImGui 関係なく、描画内容がぼけている気がするという時にもこのような状態に出遭っていることがあります。パーピクセルの描画が出来ているはずなのにボケている!という場合には、一度チェックしてみることをお勧めします。
コメント