以前試した、kasとslintは、最小化するとエラーで落ちる。
依存しているクレートのせいでは?と思って、試して見た。
winit
slintが依存していると思われるwinit。
というか、rustで窓を生成する場合、ほぼこれ使ってると思われる程の有名クレート。
そんな有名クレートが最小化でエラーとか無いよね?
窓表示するだけのコード書いて実行した。
最小化・最大化は、問題なし。
問題ねぇじゃん。
winitは優秀なクレートでした。
wgpu
kasが依存していると思われるwgpu。
調査中に知ったのだが、WebGPUのrust実装だと単純に考えてたら違った。
Windows、Linux、macの各グラフィックスAPIのラッパーだった。
よって、Webだけじゃなくネイティブアプリも作れる。
ほほぅ、それはすごいな。
さっそくコード書く。
とは言え、窓はwinitで生成するので、絶対問題ないよね。
予想通り、最小化・最大化は問題なし。
slintのエラーは、slintコード
何でだよ、とさらにエラーをよく見る。
エラーは、slintのコードでエラーになってる。
上位フォルダはwinitなので、winitを使ってるのは、間違い。
と言う事は、slintがクソって事。
kasのエラーは、wgpuコード
エラーを確認すると依存クレートのwgpuのコードだった。
wgpuのせいじゃねぇか。
テストでは、窓はwinitを使ったけど、wgpuは何使ってるんだろ?
バックエンド問題
各クレートは便利にGUI使えるようにしてくれてるだけで、実際窓を作ってるのは、別物だったりする、らしい。
実際、winitを使うと問題ない。
wgpuは、基本的に自動的にバックエンドを選択するらしい。
オンライン端末で試すと、どうやらOpenGLが選択されているっぽい。
何でOpenGL?
Windowsなんだから、DX12だろ。
バックエンド選択ロジックおかしいんじゃねの?
バックエンド指定出来ないの?
rustのGUI、謎が多い。