Menu

quinta-feira, 13 de setembro de 2018

Gnome Shell pode ganhar compatibilidade as pirotecnias do Compiz

Um dos desenvolvedores do Compiz e contratado pela Canonical para manter o plugin Unity, anunciou que está trabalhando em uma possível adaptação do Compiz a todos os ambientes gráficos incluindo o Gnome.






Libanimation 



Confira abaixo a publicação do smspillaz no dia 10 de setembro de 2018.

"Algo em que trabalhei quando comecei no Endless foi a tarefa bastante interessante de “fazer o Windows Wobbly do Compiz funcionar no GNOME-Shell”.

Essa tarefa é interessante no sentido de que o GNOME-Shell não funciona da maneira que o plug-in instável do Compiz queria. Existe a extensão “Wobbly Windows” para o shell, mas isso foi meio fora do Endless, já que não queríamos depender do mecanismo de extensões e essa extensão também não funcionava do jeito que eu tinha vindo a conhecer e amar.






O que eu realmente queria fazer com esse projeto era replicar as mesmas janelas bambas e suaves do Compiz no próprio shell.

Onde você começa mesmo em tal projeto? A primeira parte difícil é tentar fazer as contas funcionarem e saber que você tem a matemática funcionando. Assim nasceu a libwobbly - uma biblioteca que reimplementa a mesma matemática que o próprio Compiz usava, permitindo que os chamadores criassem uma malha 3x3 de molas representando o efeito físico das janelas "bambas" e fornecendo funções para interpolar na malha 3x3. Então, usamos libwobbly em nosso fork do GNOME-Shell junto com o ClutterDeformEffect e uma ponte para obter as mesmas janelas bambas e suaves no GNOME-Shell.

No entanto, essa abordagem teve suas deficiências. Até muito recentemente, ele exportava apenas uma interface C ++, porque eu, muito tolamente, estava obstinado em manter as coisas em C ++ na época. Isso fez com que a integração no shell fosse penosa por vários motivos, entre eles freqüentes quebras de ABI devido a alterações no compilador ou reforço, precisando ter um typelib GObject-Introspection separado apenas para manipular o material C ++, regras de compilação separadas etc. Naturalmente, esse estado de coisas não foi bem apreciado por outros que trabalham em nosso garfo da concha, com a piada de que, sempre que a casca se rompe, a culpa é sempre da libwobbly.

Por algumas razões que não entendo, as animações de janela tornaram-se uma prioridade na Endless novamente e queríamos ver se poderíamos dar uma melhor olhada na libwobbly. Eu não queria jogar a coisa toda, já que ela foi bem testada e muito pensamento foi colocado em seu design.

O resultado é uma biblioteca aprimorada, libanimation projetada para ser usada a partir de programas C ++ com uma interface C ++, bem como C e bindings de linguagem com uma interface GObject envolvendo a interface C ++. No futuro, também devemos ser capazes de criar ligações emscripten para a interface C ++, permitindo que ele seja usado diretamente em programas da web também.

A mudança de nome representa uma ampliação do escopo do projeto. Por algumas razões, queríamos preservar não apenas as janelas instáveis, mas também os outros efeitos (decentes) do Compiz, entre eles o zoom, o pulo, o glide e a lâmpada mágica. A biblioteca não insiste em assumir qualquer uma das renderizações ou gerenciamento de gráfico de cena. Em vez disso, a libanimation é projetada para fornecer “a matemática” e pode ser vista como uma caixa preta, onde você a alimenta com uma configuração de animação solicitada, uma função step (linear, reversa, quadrática, sigmóide) e pode “sair” de uma série de transformações afins ou coordenadas deformadas, dado um par de coordenadas unitárias.

Com o tempo, mais animações serão adicionadas. Espero que a biblioteca seja útil para autores de outros compositores ou aplicativos e ajude a preservar algumas das partes mais mágicas do Compiz, à medida que a própria tecnologia se aproxima."


Para quem curte as pirotecnias do Compiz é um prato cheio hehehehe 





É aguardar para ver se de fato isso ganha corpo :)

Donate - Contribua para a melhoria do nosso trabalho!!
























Nenhum comentário:

Postar um comentário