How to add a new backend?

Hi there. I’ve been thinking of adding a backend for the Haiku OS to see if I could get Minecraft to run; in theory this shouldn’t be that difficult. However, I can’t seem to find any official documentation for what should be in a backend or how to implement one. I had tried taking some inspiration from the X11 backend, which in theory should be the closest to the Haiku API. But there are so many data structures needed there that it isn’t clear to me what is strictly necessary. It also raises another question, how many functions of the GLFW API need to be implemented?

Any sort of insight into this would be much appreciated.
Thank you.

Hi @onlytruethomas, welcome to the GLFW forums!

The null_* backend implementations might be a good place to start.

It looks like Haiku is supported by EGL with Mesa 3D, so you might be able to use the egl_context directly, or at least with only a little modification to add Haiku support if needed.

FYI There is an old issue requesting a Haiku backend which was closed as no one has taken this up: