Vulkan Modules for JUCE | 0.5.0 beta now on Github!

The first goal was to add the LowLevelGraphics implementation. Everything in pw_vulkan_graphics sets up the necessary Vulkan stuff and shaders. A lot of this setup boilerplate is hidden in the pw_vulkan wrappers.

Now, it is possible to “inject” your own shader and commands into the pipeline. So in theory, you could build something like this.

void paint(Graphics& g)
{
  MyCustomContext mc(g);
  mc.drawCustomStuff(...);
}

But you’re right. There is no obvious way to do this at the moment. And you have to deeply understand Vulkan to achieve it. But it is possible, and I tested it. For this to work, it’s necessary to provide some form of interface in pw_vulkan_graphics to “hook” your drawing stuff into the existing pipeline.

Unfortunately I don’t have time to add examples. Neither to think of a system and this “universal interface” for simple custom shaders. Additionally the response from JUCE users and developers is very sparse. Why invest the effort if nobody cares until it works on the Mac? This should be the first priority, I think.

Anyway. I will post the code of the last “custom render” addition. Maybe this will help to clarify things.

1 Like