VxDraw - Simple 2D rendering for Rust

Introduction

vxdraw is a rendering library for drawing sprites, text, and streaming textures to a window. It is not an engine, just a library, and has no runtime.

Note: This software is in its early stages and has only been built to satisfy the requirements of a work in progress. There will be some rough edges. Any contributions are very much welcome. Currently only Vulkan is supported as a back-end.

Features and Motivation

Documentation of the API can be found on https://docs.rs/vxdraw.

vxdraw is made for streaming changing sprites to the GPU, and is meant mainly for video games with animated, moving, and/or deforming sprites. If no sprite changes are made, the data is not re-uploaded to the GPU for the sake of efficiency.

vxdraw packs data tightly to acquire near-optimal GPU-upload performance. Its main organization point is the layer - which defines an absolute draw ordering. A layer is a collection of the same type of drawable item, of which there are 4:

And finally a pseudo-layer for debugging

Further features:

Snapshot Testing

vxdraw allows for snapshot testing by retrieving the full frame data.

Example Outputs