2025/9/21(日)

1日かなり無をした。たまにしないと我慢ならない。


BrightCppの開発を進めた。ウィンドウのリサイズに対応した。最小化は対応してないのと、あとリサイズ後に1フレームだけ表示がおかしくなる。

普通に自分の不明だったのだが、リサイズ時のVulkan側からの反応はacquireNextImagepresentの両方で起きうる。そして自分の環境(Windows)の場合はpresentにおいてsuboptimalが返ってきていた。

suboptimalなので、無視することもできる。そして恐らくWindows版Vulkanの特性なのだが、suboptimalを無視して動作し続けた場合はウィンドウに従って引き延ばされて表示される。正直これでも良い気はする。

presentでのsuboptimalに対応してスワップチェーンを再作成した場合、その次以降のフレームは新しいウィンドウサイズに対応した表示になるが、そのフレームのpresent自体は正常に履行されるため、一瞬だけ引き延ばされて表示される。

どうすれば良いのだろうと思ったが、GLFW側でウィンドウリサイズ時のコールバックを設定すればリサイズを先んじて検出しpresent自体を中止できる。これで行けば多分問題ないが、設計上やや面倒くさいことになる。日を改めてやりたい。

Categories: