Drawing Backends
----------------

The Drawing backends provide means to draw on to a computer screen or
into a window. Instead of having one unified initialization interface,
each backend has its specific function and semantics. However, once a
backend is initialized, the backend structure provides a unified API
for controlling the drawing.

Backends API
------------

- link:backends_api.html[Drawing functions]
- link:backends_api.html#Events[Events]
- link:backends_api.html#Timers[Timers]
- link:backends_api.html#Tasks[Tasks]

TIP: For example usage see backend link:example_backend.html[example] and
     backend link:example_input.html[input example].

Backends initialization
-----------------------

Backends cover wide range of different ways how to draw on computer screen or
on a hardware displays, there are plenty of ways how to initialize a backend.

TIP: Whenever possible the link:backends_init.html#GenericInit[generic init]
     function is preferrable. See the link:example_backend.html[generic init example].

- link:backends_init.html#GenericInit[Generic init]
- link:backends_init.html#X11[X11 init]
- link:backends_init.html#Wayland[Wayland init]
- link:backends_init.html#LinuxDRM[Linux DRM init]
- link:backends_init.html#LinuxFramebuffer[Linux framebuffer init]
- link:backends_init.html#SDL[SDL init]
- link:backends_init.html#AALib[AA-lib init]
- link:backends_display.html[Hardware Displays]
