Source code is slightly more structured than the one expected from a tutorial, but here is no notion of components, any entity defined here is just some sounding abstraction over the Wayland and EGL APIs
The application shows the basic operation of connecting to a wayland display and obtaining a reference to the plugin registry for then creating a window which can be painted via EGL / OpenGL ES
The Wayland display is the basic entrypoint for the APIs
The plugin registry enlists the extra protocols available on the system for enriching the Wayland architecture
Wayland itself offers only the base framework, any feature usually expected from a graphics/GUI library is delegated to such plugins
examples used in the code too are
XDG cross desktop graphics ?
extends the basic mechanics of surfaces/subsurfaces nested and overlapping with semantic roles for them ( window-toplevel cursor/tooltip/popup-overlays )
wl_output
info about displays/output devices ( physical? )
OpenGL is the first and most famous of the graphics APIs
allows the user to work with the graphics card by the means of a state machine
uploading/downloading data ( vertex/mesh, color/texture, program/shader, generic raw )
issuing commands
setting flags
it comes in various flavors, the most commons are OpenGL and OpenGL ES ( Embedded Systems )
EGL is the ??? underlying OpenGL and the other Khronos standards
Wayland-EGL
non so bene cos'è
ma offre delle funzioni per accomodare gli oggetti di wayland alle risorse che EGL si aspetta per iniziallizare roba
On some READMEs, you may see small images that convey metadata, such as whether or not all the tests are passing for the project. You can use Shields to add some to your README. Many services also have instructions for adding a badge.
Within a particular ecosystem, there may be a common way of installing things, such as using Yarn, NuGet, or Homebrew. However, consider the possibility that whoever is reading your README is a novice and would like more guidance. Listing specific steps helps remove ambiguity and gets people to using your project as quickly as possible. If it only runs in a specific context like a particular programming language version or operating system or has dependencies that have to be installed manually, also add a Requirements subsection.
## Usage
Use examples liberally, and show the expected output if you can. It's helpful to have inline the smallest example of usage that you can demonstrate, while providing links to more sophisticated examples if they are too long to reasonably include in the README.
## Support
Tell people where they can go to for help. It can be any combination of an issue tracker, a chat room, an email address, etc.
## Roadmap
If you have ideas for releases in the future, it is a good idea to list them in the README.
For people who want to make changes to your project, it's helpful to have some documentation on how to get started. Perhaps there is a script that they should run or some environment variables that they need to set. Make these steps explicit. These instructions could also be useful to your future self.
You can also document commands to lint the code or run tests. These steps help to ensure high code quality and reduce the likelihood that the changes inadvertently break something. Having instructions for running tests is especially helpful if it requires external setup, such as starting a Selenium server for testing in a browser.