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