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.481 ]

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

Bioinformática - Instalação do Mr Bayes em ambiente paralelo

Cadê o cubo?

Bioinformática - Clustalw-MPI: Análise Filogenética utilizando computação paralela e distribuída

Implementando rotas estáticas no Linux com route

Cairo-Dock - Seu desktop Linux com cara de MAC

Leitura recomendada

Terminal de acesso (Quiosque) com Debian e Firefox

Zorin OS - interessante distro lançada no ano novo - primeiras impressões

cdrecord: gravando CDs de forma simples e prática

Gerência de projetos com Redmine

Introdução à Solus Linux - Distro Independente

  
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