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

Support Metal and DirectX rendering #722

Open Noofbiz opened 4 years ago

Noofbiz commented 4 years ago

Since Apple is not only serious about depreciating OpenGL, isn’t working with Molten, and really wants everyone to exclusively use Metal, we should add support for the Rendering to work with Metal as well. I also heard a rumor that Apple may move to their own hardware altogether (no more intel) which would make support of OpenGL/Vulkan on MacOS harder. It’ll be safest just to support Metal in my opinion. Since we’re supporting multiple rendering back-ends, I might as well do DirectX as well, since Windows appears to be supporting it again and UWP would be easier to do with DirectX too.

I’m also wondering if there’s a way to hot-swap rendering back-ends? So a game could be compiled to support Vulkan and use OpenGL as a fallback, for example. World of Warcraft allows for swapping out Vulkan for Metal, DirectX, and OpenGL, and doesn’t even require the game to restart when adjusting those settings, so it’s definitely possible.