Diferença entre composições do lado do servidor e do lado do cliente no Xorg?

6

xcompmgr fornece a seguinte opção:

-s     Server-side compositing with hard-edged shadows.

Da experimentação, posso dizer que isso é muito, muito mais rápido do que as opções do "lado do cliente". Mas o que exatamente isso está fazendo? No Xorg, qual é a diferença entre a composição do lado do cliente e do servidor?

E, mais ao ponto: qual conjunto de funções do Xorg eu teria que usar, se eu quisesse implementar a composição do lado do servidor em p. um gerenciador de janelas?

    
por DanL4096 25.04.2015 / 22:47

1 resposta

1

Então, olhando através dos fontes xcompmgr, descobri que:

  1. A principal diferença entre -s e -c parece ser como o próprio efeito de sombra é implementado, e não como a composição é feita. Eu tenho alguns problemas em seguir exatamente o que está acontecendo (gráficos não são o meu ponto strong), mas a rotina para gerar sombras "do lado do servidor" parece mais simples. Eu acho que apenas cria um bitmap cinza transparente do tamanho da janela, ou algo assim. O ponto é, é uma rotina menos cara.

  2. As funções que quero estão listadas em 'man Xcomposite' e disponíveis em X11 / extensions / Xcomposite.h. Para um gerenciador de composição (ou composição de WM), seria especificamente desejado XCompositeRedirectSubwindows () e XCompositeUnredirectSubwindows (). (O último deve ser executado antes de fechar a tela X, caso contrário, você obtém um segfault.)

por 28.04.2015 / 12:33