Safe and rich Rust wrapper around the Vulkan API.
Brief summary of Vulkan
Instanceobject is the API entry point. It is the first object you must create before starting to use Vulkan.
PhysicalDeviceobject represents an implementation of Vulkan available on the system (eg. a graphics card, a CPU implementation, multiple graphics card working together, etc.). Physical devices can be enumerated from an instance with
Once you have chosen a physical device to use, you can a
Deviceobject from it. The
Deviceis the most important object of Vulkan, as it represents an open channel of communicaton with a physical device.
Images can be used to store data on memory accessible from the GPU (or Vulkan implementation). Buffers are usually used to store vertices, lights, etc. or arbitrary data, while images are used to store textures or multi-dimensional data.
In order to show something on the screen, you need a
Images that correspond to the content of the window or the monitor. When you present a swapchain, the content of one of these special images is shown on the screen.
GraphicsPipelines describe the way the GPU must perform a certain operation.
Shaders are programs that the GPU will execute as part of a pipeline. Descriptors can be used to access the content of buffers or images from within shaders.
For graphical operations,
Framebuffers describe on which images the implementation must draw upon.
In order to ask the GPU to do something, you must create a
CommandBuffercontains a list of commands that the GPU must perform. This can include copies between buffers, compute operations, or graphics operations. For the work to start, the
CommandBuffermust then be submitted to a
Queue, which is obtained when you create the