diff options
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 |