summaryrefslogtreecommitdiff
path: root/Writing a UI library in Golang.md
diff options
context:
space:
mode:
Diffstat (limited to 'Writing a UI library in Golang.md')
-rw-r--r--Writing a UI library in Golang.md25
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