EngoEngine / engo

Engo is an open-source 2D game engine written in Go.
https://engoengine.github.io
MIT License
1.74k stars 136 forks source link

Vulkan rendering [WIP] [DO NOT MERGE] #723

Closed Noofbiz closed 1 year ago

Noofbiz commented 4 years ago

Adds the VulkanRenderSystem to common behind the build tag -vulkan so if people want to build their games with Vulkan instead of OpenGL as the renderer they can ^_^!

This is a work in progress, and is not ready yet. I'm just publishing it as I go like this to get feedback if anyone wants to, and maybe it'll help keep me more committed to doing it xP

TO DO:

github-actions[bot] commented 4 years ago

Coverage Status

Coverage increased (+1.8%) to 39.229% when pulling 74772398d3c078523ba920d8f6292d1c53ffad83 on vulkan-rendering into 8388859e3c882ee9312fa7da46ce7ee5a3e07037 on master.

Noofbiz commented 4 years ago

Now at this point I'm thinking some point down the road merging engo_glfw with engo_vulkan. engo could always create the device and swap chain, then it's up to the renderer to use it or not. This could be useful such that we could always default to Vulkan and use OpenGL as a fall-back if the device doesn't support Vulkan. The downside to this, however, is that it would require developers to have Vulkan installed to build engo. Just something to think on, really.

Noofbiz commented 4 years ago

Got caught up trying to fix our webgl implementation and had an idea about putting all the vulkan stuff in 'EngoEngine/gl' rather than here. It really is a replacement for gl, we can just mimic opengl functions in vulkan.