Ao programar com Wayland, em C, como posso obter a funcionalidade xcb e Xlib? [fechadas]

3

Eu entendo que Wayland é um compositor, que de alguma forma está envolvido com eventos, então o software do próximo nível pode se registrar no Wayland para receber eventos, e assim por diante. Mas o Wayland não oferece janelas, apenas superfícies para renderizar janelas e outros elementos gráficos.

Eu dediquei muito tempo ensinando programação em C e criei gráficos muito básicos com uma mistura de xcb e Xlib, que se misturam facilmente: #include <Xlib-xcb.h> . Eu gostaria de continuar a programação nesse nível, usando eventos xcb, primitivos gráficos xcb, pixmaps, XImages ou xcb_image_t's e a extensão MIT-Shm para criar pixmaps de memória compartilhada e ximages de memória compartilhada.

As superfícies mmap'ed do Wayland são atraentes porque me permitirão mais 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 de xcb e Xlib sendo suportados, então um programa X11 pode ser executado como um cliente Wayland?

Não estou interessado em usar o GTK + ou o Qt como alternativas à funcionalidade do tipo xcb. Eles são para programação GUI sofisticada e isso não é algo que eu quero - eu quero programação de baixo nível.

Eu vejo Wayland-egl.h, usado em exemplos. O egl fornece funcionalidade semelhante à que eu encontro no xcb? Onde posso encontrar tutoriais simples, mas abrangentes? Existe alguma documentação tão boa quanto a do Xlib? A documentação do Xcb é atroz, mas com os manuais e tutoriais do Xlib em mãos, aprendi a montar um código útil.

Como programador amador, a informação que eu encontro online é muito enigmática, mas sempre é uma questão de familiaridade com os vários termos e bibliotecas relevantes. Na verdade, programar xcb não é complexo, é apenas detalhado e desconhecido.

A informação disponível é tão difícil de entender e parece não ter muitos detalhes importantes OU está escrita em linguagem muito obscura e desconhecida para eu compreender. Alguém tem algumas indicações para o programador não iniciado mas razoavelmente bom?

    
por DeeDeeK 02.04.2018 / 23:38

1 resposta

0

Isso é embaraçoso: eu deveria ter checado as FAQs do Wayland do X.Org mais de uma vez. Eu encontrei a resposta para a minha pergunta exatamente onde eu procurei pela primeira vez ... [wayland.freedesktop.org/faq][1]

...there are some clients which rely on X11, and always will be. To that end, XWayland provides a plugin for Wayland compositors, running a real X server. This gives legacy clients a real and compliant X11 platform to run on, displayed side by side with native Wayland clients in your Wayland session

Peço desculpas pelo fraseado da minha pergunta, "o Xlib e o XCB estarão por aí por muito tempo ainda?" A frase "muito tempo ainda" está pedindo uma opinião e eu quis dizer conhecimento factual.

Onde se diz int a citação incluída aqui que "sempre haverá" clientes confiando em X11, eu interpreto isso para significar "por um longo tempo ainda". É meio vago, eu sei. Talvez, como programador, eu espere muita exatidão das linguagens naturais.

Outra boa notícia inexata, que tem relação se vale a pena escrever o código que usa o X11 é que há pouca ou nenhuma penalidade de sobrecarga "a sobrecarga de executar o X no Wayland".

Isso tudo me fez decidir: vou continuar com #include <Xlib-xcb.h> e não vou me preocupar com isso.

    
por DeeDeeK 05.04.2018 / 22:57