Compiz - Conhecendo a fundo II

Quando voltamos ao assunto de programação para Desktop, uma das melhores soluções no mundo de código aberto são as linguagens Python e C, pois ambas possibilitam uma grande integração com o Sistema Operacional, o qual o mesmo é desenvolvido.

[ Hits: 15.886 ]

Por: José Cleydson Ferreira da Silva em 26/08/2008


Relacionamento com ambiente gráfico X



É preciso ter uma boa performance quando relacionamos o Ambiente Gráfico ao Sistema Operacional Linux, ambos aparentemente são os mesmos, mas na realidade o Sistema Operacional não está interligado ao Ambiente Gráfico, ou seja, o Ambiente Gráfico trabalha sobre a plataforma de baixo nível e faz parte do seu corpo estrutural, por isso o mesmo sabe fazer um bom gerenciamento da memoria RAM proporcionando, assim, uma boa flexibilidade e desempenho na hora da execução do programa.

O Ambiente Gráfico que mencionamos é chamado de X. Ele possibilita a que outros programas possam gerenciar as suas janelas, mas para que isso possa ter bom exito existem observações importantes a tratar, tais como o tamanho de tela, múltiplas telas, conhecidas como bigscreen e multscreen. Apesar de serem diferentes elas são de extrema importância na hora da execução.

O multHead é responsável por gerenciar os dois tratamentos citados, seu objetivo principal é trabalhar em cabeçalho, na prática é como colocar várias pessoas usando a mesma máquina sem uma atrapalhar a outra.

A idéia do multHead é baseado nesta otimização e melhor aproveitamento dos recursos que temos. Essa é uma idéia que surgiu basicamente da comunidade de software livre. Acho que a maior e primeira referência no assunto foi Alvils Stoss, um letão (nascido na Letônia) que escreveu um patch para o kernel chamado Backstreet Ruby. Esse patch foi bem assimilado pela comunidade e mais tarde possibilitou o servidor X a suportar nativamente o conceito sem adaptações.

O servidor X é "um capítulo a parte". Na verdade a concepção dos sistemas Unix definem os recursos de vídeo através de uma aplicação remota cliente-servidor (X).

Esse processo de cabeçalho de compartilhamento X possui o mesmo efeito tanto para o Compiz, Xinerama, MergedFB, TwinView e XrandR. XRandR tem uma maneira diferente de começar a informação, mas para os plugins todas estas aproximações diferentes são transparentes.

Na configuração ou instalação de cada cabeçalho possui duas exposições dentro do compscreen, ou seja, cada compscreen compartilha a mesma posição. Para cada tela teremos uma variável de exposição: 0.0 para a primeira, 0.1 para a segunda. Esses cabeçalhos são na maioria das vezes independentes e não possibilitam uma movimentação das janelas entre elas. A razão fundamental disso é poder usar cartões de vídeos múltiplos. Por isso não é difícil adicionar funcionalidades, como o DRI e o composit quando usamos cartões de vídeo.

Relacionamento de cabeçalho de códigos

Não há muito a pensar aproximadamente para a maioria de programadores quando utilizam multscreen. Apenas certifique-se que você não mistura os dados de CompDisplay e de CompScreen. Também, nunca use d->screens sem dar um ciclo com ela. Em instalações normais, os d->screens referem-se a uma única tela, mas multscreen refere-se somente à varias telas. Uma regra é passar de algum modo o CompScreen sempre que você sabe que a função a usará. É seguro começar de screen->display, mas não diretamente CompDisplay.

Ao usar o multscreen verifique se o contexto esta correto antes de antes de modificar texturas. Isso pode facilmente ser feito usando o makescreencurrent, antes de fazer a modificação contextual. Todas as funções de núcleo que tratam textura fazem isso.

Bigscreen, entretanto, é ligeiramente mais complicado. Com bigscreen, nós tratamos somente o um CompScreen, mas o screen->outputDev entra no jogo. Por exemplo, há diferença entre a largura do monitor e a largura da tela. Além do que o Compiz igualmente se ajusta acima dos pontos diferentes de CompOutput para o desenho.

Para cada cabeçalho em um ambiente do bigscreen, os processos do paintOutput () são chamados. São chamados na "parte inferior" do paintScreen (), que é chamado somente uma vez por a tela real. O fullscreenOutput faz coisas ainda mais complicadas, que é um especial CompOutput que faça com que nós extraiamos à tela inteira, não apenas a parte superior.

s->width

Usado usado para tratar, larguras e as alturas saída-específicas.

s->height

Usado usado para tratar, larguras e as alturas saída-específicas.

makeScreenCurrent
CompDisplay

Usado usado para tratar saída, exposição, apresentação em tela.

CompScreen

Usado para tratar entrada. Um exemplo deste é a execução atual de ScreenGrabs. A entrada é tratada no contexto da exposição.

Referencia: www.compiz-fusion.org

Sobre o autor

José Cleydson Ferreira da Silva, o zékuruma, conheceu o Linux no início de 2007 na Escola Técnica, foi aprendiz do Hermes Nunes Pereira Júnior, o hnjunior durante 18 meses. Trabalha com Linux a um ano, tem artigos nos sites Viva o Linux e GNU-LIA. Usuário do Linux por filosofia, acredita que o mesmo pode quebrar os paradigmas do mundo globalizado.

Página anterior    

Páginas do artigo
   1. Uma leve introdução à linguagem de desenvolvimento
   2. Relacionamento com ambiente gráfico X
Outros artigos deste autor

Gerência de projetos com Redmine

Economia e liberdade: o software livre une o útil ao agradável

[Estudo de caso] Ferramentas Open Source tem sido um caso de sucesso na Biotecnologia e Bioinformática

Cadê o cubo?

Como migrar banco de dados MySQL para PostgreSQL

Leitura recomendada

Convocação da Seleção Brasileira do Software Livre

Instalando seu Quake III Arena no Linux

Manual de implantação do inventário CACIC

Monitorando Host via IPMI no Zabbix

Servidor VoIP com Slackware e Asterisk

  
Comentários
[1] Comentário enviado por albfneto em 27/08/2008 - 10:12h

Aproveitando, um link interessante...
Como usar Compiz, Metisse e Beryl, no Mandriva Spring:

http://technocrat.net/d/2007/7/10/22919

[2] Comentário enviado por cleysinhonv em 27/08/2008 - 10:21h

Olá albfneto

Boa a sua indicação no link citado acima, obrigado.

valeu

[3] Comentário enviado por enricolo4 em 28/08/2008 - 00:26h

Gostaria de saber como faço para ativar o compiz-fusion no fluxbox?

[4] Comentário enviado por cleysinhonv em 10/09/2008 - 09:40h

Olha eu nunca usei o fluxbox, ao receber o email acompanhamento de comentário, procurei pesquisar, mas poucas informações eu encontrei. A respeito do caso especifico.

Obrigado pela pergunta.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts