C++ Vulkan Implementation
Posted: 02 Oct 2020, 11:45
I created a Vulkan implementation of NoesisGUI in a game engine me and my friends are developing which uses Vulkan as the underlying graphics API. I thought I could share it here if anyone wants to take a look. I haven't had time to test it very much. Tiled rendering hasn't been tested at all. All the GUI code can be found in "GUI/Core".
The GUIRenderer in the engine is part of our RenderGraph rendering system, basically it receives resource updates from the RenderGraph, currently just the back buffer and a depth/stencil texture, all the other resources are created by the GUI system itself.
Since NoesisGUI uses alot of dynamic state I had to create different caches, the most complicated one is GUIPipelineStateCache, it manages and creates new Pipelines when requested depending on different requested dynamic state features.
Examples of these are:
The repo:
https://github.com/IbexOmega/CrazyCanvas
The GUIRenderer in the engine is part of our RenderGraph rendering system, basically it receives resource updates from the RenderGraph, currently just the back buffer and a depth/stencil texture, all the other resources are created by the GUI system itself.
Since NoesisGUI uses alot of dynamic state I had to create different caches, the most complicated one is GUIPipelineStateCache, it manages and creates new Pipelines when requested depending on different requested dynamic state features.
Examples of these are:
- Vertex Type
- Stencil Mode
- Blend Mode
The repo:
https://github.com/IbexOmega/CrazyCanvas