diff options
author | Jasper Ras <jras@hostnet.nl> | 2025-06-04 09:14:47 +0200 |
---|---|---|
committer | Jasper Ras <jras@hostnet.nl> | 2025-06-04 09:14:47 +0200 |
commit | 32422d2b9001291d7136036581122cf4b4eec75c (patch) | |
tree | 356615063a97796665adfc71318573e790ca285d /Writing a UI library in Golang.md | |
parent | 9bd8cdf2ecc2b60f873b393122b19985cbc4587c (diff) |
Diffstat (limited to 'Writing a UI library in Golang.md')
-rw-r--r-- | Writing a UI library in Golang.md | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/Writing a UI library in Golang.md b/Writing a UI library in Golang.md new file mode 100644 index 0000000..4161204 --- /dev/null +++ b/Writing a UI library in Golang.md @@ -0,0 +1,25 @@ +--- +tags: + - golang + - ui +--- +Some interesting libraries to look at that render their own pixels instead of relying on C/C++ bindings: +- Fyne +- Gio + +What to look out for: +- How do they render to the screen? Do they use OpenGL, Vulkan or a software renderer? Do they use OS provided primitives? +- How do they handle events and propagate them through the UI? +- How do they manage positioning and sizing of UI elements? +- How do they define common elements such as buttons, lists, etc and how do they implement their behaviour. +- How do they make it cross-platform, if at all? + + +### Renderer +What kind of renderer to use? Build a software renderer or use hardware assisted rendering via openGL or Vulkan? +Gemini recommends to start with a software renderer and optimize later. Or if we want to learn more about graphics programming we start with OpenGL. + +## Basics +- Window creation (canvas): check golang.org/x/mobile/app or go-gl/glfw. +- Event loop to handle events +- Basic shape drawing primitives
\ No newline at end of file |