先日 WPF でVulkan の話をしましたが、あれからも作業をしていてようやく見てわかるくらいの進捗となりました。
現在画面クリア程度までですが以下のように動いています。
構造について
今後の利用方法のことも考慮してこの Vulkan のコントロールの実現については2層構造としています。
下のレイヤーでは VulkanAPI を単に C# でラッピングしたものとなっています。
それを使ってコントロールを作成するといった構造になっています。
VulkanAPI のラッピングレイヤを直接使うことで、 C# であっても Vulkan の割と面倒なところを味わうことができるようになってます。
そもそも楽に使うために Vulkan を選ぶわけではないはずなので、便利に分厚くラッピングするのは本末転倒です。
C#の部分について
今のところ以下のような感じになってます。
初期化・描画・終了あたりの関数を登録してもらって動かす感じにしています。
結果、今のところは画面のクリアが動いてるところまでを確認しています。
一応、コントロールを使ってある程度簡単にという側面もあるかと思ってこのようにしています。
画面のクリアで C# のコードが 200 行に届かないくらいになっています。
予定など
画面クリアだけでなくキューブが出せるくらいにはサンプルコードを用意したいと思ってます。
そこまで到達したら、本ブログで説明記事を出していきたいと思います。
ちなみに、今回のコントロールやVulkan C# ラッパは NuGet で予定通り公開をしていきます。