SwiftUIでMetalを使う
UIViewRepresentableでUIViewをSwiftUIのViewとしてwrapできる
MetalViewの実装例
Renderer (MTKViewDelegateの実装)に状態を渡す場合
MetalView自体に状態を持たせてupdateUIViewの中でcontext経由で渡す
MetalViewのctorに親のViewModelを渡し、親のViewModelにweakで参照を持たせる
親View -> 親ViewModel -> Renderer という経由で操作できる(e.g. シェーダーのコンパイル)
Coordinatorについて
structであるUIViewRepresentableの代わりに状態を保持するために使われる