The VulkAda Project (II)

by | Sep 20, 2021

It’s been a long time since I’ve written anything here, and nearly a year since I’ve addressed this topic.

As a refresher, a little over year ago I began the quest to create a Vulkan interface for Ada, my favorite programming language.  I intend to write my next PC game in Ada and make the transition from OpenGL to Vulkan.

Well, after over a year of off-and-on work, I’ve finally got something I’m happy with.

VulkAda sample window

This is a sample application I’ve been working on.  Here I have two texture mapped images and I’ve successfully ported my text rendering engine from OpenGL.  This is all coded in Ada and running through my own VulkAda interface layer.

At this point, I think I’ve come far enough to start a real project with this.  I’m still not 100% comfortable with Vulkan.  It’s a daunting API, but I think I’ve figured out enough to get the process going.  As I work on this project, VulkAda will continue to evolve as I discover bugs and rework things for maximum convenience.

It should be mentioned that VulkAda is a thick binding that tries to make everything as Ada-like as possible.  You generally won’t be dealing with any C constructs here, and the binding makes extensive use of Ada 2012 pre and post-conditions for validation.  At the time of this writing, it’s only been tested on Linux, but in the future I’ll get some experience with Windows and possibly the Metal interface layer for Mac OS.  Even cooler would be if I can get Haiku OS running again and see if its Mesa version supports any of this stuff.

Once I’ve actually started a proper Vulkan project, I’ll make VulkAda available for download here with the understanding that it’s still in development and subject to change.  I’m hoping that it will eventually become the definitive Vulkan interface for the Ada programming language.

Join Our Community

Find Us In Any Of These Sweet Places

Contact Us

We would love to hear from you. Please use this form to contact us, and we will get back to you as soon as possible!

3 + 9 =