-
Notifications
You must be signed in to change notification settings - Fork 63
Technical details
This wiki currently onyl contains work-in-progress technical details.
For more information about the project, please see the README.md file in the main repository
All drawing is handled by the Skia library, which either uses CPU and a memory buffer or a more complicated hardware backend such as OpenGL. Both need some glue to connect Skia's result to what is shown on screen. This glue is contained in the visual
implementations in the gui
library. Events are handled by the events
components, and the native windows/views are handled by the window
components:
-
window
: implementations for XCB, XLib, Win32, AppKit, UIKit. -
visual
: implementations for XCB, Win32, GLX, EGL, WGL, CGL. -
events
: implementations for XCB, Win32, AppKit, UIKit.
These are combined in a way transparent to the user of the library. Every application should be independent of the underlying abstraction, and the functional result should be identical. Obviously some differences with respect to font rendering, performance, and slight visual differences might appear, but if these become noticeable, SkUI aims to decrease the difference between them.
It goes without saying that not all of these can be freely combined. Besides the availability of the underlying library or framework, some combinations are just not compatible. The tables below show the compatibility between various window
, events
, and visual
combinations.