The renderer now allows instancing. The way this works is by having to
vertex buffers. One contains the normal vertex geometry data, the other
contains per-instance data.
The Vulkan renderer now has a mesh structure which utilizes vertex, index,
and staging buffers. On the lisp side, you can now provide a vertex type
when creating a pipeline and the appropriate vertex data when creating
the mesh. Meshes are associated with pipelines.
Currently there is one vertex type: pos2color3, which will
likely be modified and replaced. There is no instanced rendering yet,
so drawing a pipeline just involves drawing every mesh associated with
that pipeline.
The Vulkan bits are written in C. Then in common lisp you talk to the
renderer. On the common lisp side, the program was made to allow
interaction with the REPL while the game runs. Vertex buffers have not
been implemented yet, the Vulkan stuff is currently barebones.