It will be a cross platform windowing toolkit written entirely in Go. What does this project do and what does it not? The ultimate goal of GWL is just to be a window creation and window event handling library and nothin more. This means that GWL alone is not planned to be able to do any drawing to the window or have extra utilities that may be provided like audio playback. GWL however will hopefully expose the window to graphics libraries such as opengl and even vulkan. It will also expose an event handling interface that will handle standard window events like input.
I started this project because I am interested in computer graphics
Using whatever technology is available. Currently it works only for linux x11 using Go bindings for xcb these specifically.
As stated above GWL doesn't aim very high on its own, but that is for a reason. My plan is to create something that can be built off of by developers. I do have plans to create a GUI like tk or qt, written in Go using this project as the windowing and event system for cross platform compatibility.
GWL status will be outlined in this table
| Support | Windows | Linux | MacOS | Android | IOS |
|---|---|---|---|---|---|
| CreateWindow | ❌ | ✔️ | ❌ | ❌ | ❌ |
| Event Handling | ❌ | ⭕ | ❌ | ❌ | ❌ |
| OpenGL Context | ❌ | ❌ | ❌ | ❌ | ❌ |
| Vulkan Surface | ❌ | ❌ | ❌ | ❌ | ❌ |
- ✅ working, development mostly complete not likely to change
- ✔️ working, ongoing development subject to change
- ⭕ possibly working in development subject to heavy change
- ❌ not working not in development