Entendo que o Wayland é um compositor, que de alguma forma está envolvido com eventos, para que o software do próximo nível possa se registrar no Wayland para receber eventos e assim por diante. Mas Wayland não fornece janelas, apenas superfícies para renderizar janelas e outros gráficos.
Eu coloquei um monte de tempo para ensinar-me de programação C e criar gráficos muito básicos com uma mistura de XCB e Xlib, que mistura facilmente: #include <Xlib-xcb.h>
. Gostaria de continuar programando nesse nível, usando eventos xcb, primitivas gráficas xcb, pixmaps, XImages ou xcb_image_t e a extensão MIT-Shm para criar pixmaps de memória compartilhada e ximages de memória compartilhada.
As superfícies mmap'ed de Wayland são atraentes porque me permitem melhor flexibilidade do que o MIT-Shm, que depende da memória compartilhada do SysV.
Existe uma camada de software que fornece o nível de funcionalidade do xcb? Posso depender do suporte a xcb e Xlib, para que um programa X11 possa ser executado como um cliente Wayland?
Não estou interessado em usar GTK + ou Qt como alternativas à funcionalidade do tipo xcb. Eles são para programação sofisticada de GUI e isso não é algo que eu quero - eu quero programação de baixo nível.
Vejo Wayland-egl.h, usado em exemplos. O egl fornece funcionalidade semelhante à que encontro no xcb? Onde posso encontrar tutoriais simples mas abrangentes? Existe alguma documentação tão boa quanto a Xlib? A documentação do Xcb é atroz, mas, tendo os manuais e os tutoriais do Xlib em mãos, aprendi a juntar alguns códigos úteis.
Como programador amador, as informações que encontro on-line são muito enigmáticas, mas sempre acabam sendo uma questão de familiaridade com os vários termos e as bibliotecas relevantes. Na verdade, programar o xcb não é tão complexo, é apenas detalhado e desconhecido.
As informações disponíveis são tão difíceis de analisar e parecem não ter muitos detalhes importantes OU estão escritas em uma linguagem muito obscura e desconhecida para que eu possa entender. Alguém tem algumas dicas para o programador não iniciado, mas razoavelmente bom?