This is a template for a GUI application or library that uses Skia
for drawing, OpenGL for rendering,
and winit
for window management.
It is based on the skia-safe
's gl-window example.
This template implements two core components: Application
and Window
.
It is the main entrypoint of the GUI. It initializes the event loop, creates a window, and runs the app. It is also responsible for handling the window events, such as resizing, redrawing, device input, etc.
To use the Application
, create a new instance with Application::new()
, and call the run()
method.
It is a wrapper around the winit::window::Window
, glutin
's OpenGl Context
and Surface
, and Skia's Surface
.
To open a new window, use the ApplicationInternal::open_window()
method.
To draw on the window's canvas, use the Window::draw()
method.