Rendering
For rendering, we'll use wgpu, which is a safe and portable GPU abstraction in rust that implements the WebGPU API. Without this library, we would have write our own GPU abstraction and create separate backends for that abstraction. Supporting as many different platforms as possible for the sake of this engine provides flexibility. We could render on Android
with Vulkan, Windows
with DirectX, IOS
and MacOS
with Metal, or maybe even the web using webgl (and eventually webgpu!).