Home > Notícias

Aceleradoras de vídeo: 2D

Editorial IT Forum 365

04/10/2010 às 19h03

Foto:

Tenho um forte palpite que brevemente estaremos discutindo aqui controladoras de vídeo de alto desempenho. E para que possamos efetivamente avaliar o quão complexas são estas controladoras e dar o devido crédito aos magos tecnológicos que as desenvolvem e fabricam, é preciso conhecer pelo menos as noções básicas sobre o processo de criação das imagens nas entranhas do computador. Vamos, então, ao trabalho.

Antigamente as coisas eram muito simples. E bota simples nisso: os primeiros computadores sequer podiam mostrar imagens, pois usavam a chamada "interface de caracteres". Tudo aquilo que eles exibiam eram caracteres, ou seja, letras e sinais gráficos.

O interessante é que os usuários mais recentes, ao ouvir esta afirmação, não percebem claramente a diferença. Isto porque eles estão acostumados com suas "interfaces gráficas" (GUIs, ou "Graphics User Interfaces") onde tudo o que se vê na tela são gráficos, inclusive os caracteres, pois as novas interfaces nada mais fazem que "desenhar" na tela. E quando se lê um texto em uma tela de Windows, do Mac ou de qualquer distribuição Linux que use interface gráfica (ou seja, ícones e coisas que tais), o que na verdade se está enxergando são caracteres desenhados na tela.

Por isto é possível, por exemplo, mudar a fonte (ou seja, o "desenho" das letras) sem alterar o texto. Da próxima vez que você estiver digitando algo em um programa que permita alterar fontes, experimente selecionar um trecho do texto e trocar a fonte para, por exemplo, "Brush Script", "Magneto" ou "Mistral" e terá uma boa ideia do que chamo de "desenhar caracteres na tela".

[singlepic id=2986 w=320 h=240 float=]

Mas note que a memória de vídeo (cujos chips normalmente residiam na própria controladora de vídeo, como hoje) não armazenava o "desenho" da tela. Guardava apenas uma tabela na qual cada posição correspondente a um dos pequenos retângulos da tabela (ou matriz) de 80x25 era preenchida com o código do caractere que deveria ser mostrado naquela posição e certos detalhes, como cor do caractere e do fundo (no máximo dezesseis) e atributos do caractere: sublinhado, piscante, enfatizado e reverso (trocando as cores do caractere e do fundo; se não entendeu, espere um pouco que logo ficará claro). Os circuitos da controladora, então, liam a matriz, preenchiam cada posição da tela com a imagem do caractere (copiada daquela que estava gravada em uma memória permanente também residente na controladora) conforme seus atributos e enviavam, agora sim, a imagem da tela completa para o vídeo sessenta vezes por segundo.

Quando o programa precisava mudar o conteúdo da tela, enviava mais uma linha para a UCP, que repetia o processo e a enviava para a controladora. Que, por sua vez, compunha uma nova "imagem" movendo cada linha anterior uma posição para cima, liberando assim a linha de baixo para receber os novos caracteres.

Note que, ao sistema, não era possível mover o cursor para cima e "encaixar" uma linha entre as demais. Tudo o que fosse escrito na tela do sistema tinha que ser na última linha livre. O usuário poderia, no máximo, emitir o comando "cls" (de "clear screen", limpar tela) e apagar tudo, começando novamente da primeira linha (é claro que, durante a execução de um programa, seria possível mover o cursor e inserir linhas, mas para isso o programa precisava ter acesso direto à memória de vídeo e cabia ao programador fazer todo o trabalho braçal exigido).

O resultado era o que aparece na Figura 1, uma tela do Macro Assembler da MS. Tudo nela são caracteres, mesmo aquilo que parece desenho. As bordas, por exemplo, são "montadas" com caracteres especiais e os menus são obtidos alterando as cores da letra e do fundo. Repare bem e veja que tanto no menu quanto no corpo do programa a fonte é exatamente a mesma e do mesmo tamanho, já que não havia como alterar nem uma coisa nem outra. Repare ainda como era possível alterar as cores do fundo e dos caracteres e note, no painel da direita, como se pode trocar as cores da frente e do fundo (entendeu agora o atributo "reverso"?). Quem tiver paciência pode contar: nela há exatas 25 linhas e 80 colunas.

Se você usa Windows e quer ter uma ideia aproximada de com que isto se parecia, abra o menu Iniciar, clique em "Todos os Programas", "Acessórios" e abra um Prompt de Comando. E se desejar usufruir a experiência de trabalhar em telas de caracteres, da próxima vez que ligar seu computador, acesse o "setup". Verá então como é trabalhar com telas com número fixo de linhas e colunas e com uma "fonte" gravada em ROM que não se pode alterar. Dureza...

Junte-se a nós e receba nossas melhores histórias de tecnologia. Newsletter Newsletter por e-mail