A engine gráfica do Windows 7 muda a forma com que o DWM (Desktop Windows Manager) trabalha, possui novas APIs, D2D e DWrite, o novo Direct3D 11, e melhorias para o uso de múltiplos dispositivos de saída.
David Blythe, arquiteto senior do Windows Desktop e Graphics Team, em entrevista fala o que é o Desktop Window Manager e como funciona. As aplicações não são mais apresentadas diretamente na tela, mas sim em um bitmap na memória e o DWM passa a ser responsável pela apresentação. Isto é usado para aplicar várias transformações gráficas antes de aparecerem na tela. É desta forma que os thumbnails animados na barra de tarefas são criados ou outros efeitos no desktop.
O problema com o DWM do Vista é a performance. Antes do Vista, uma aplicação deveria, por exemplo, utilizar o GDI para montar a imagem na tela enquanto o GDI utilizaria o acelerador gráfico para executar a tarefa. Já no Vista, o GDI monta a imagem na memória e o DWM torna-se responsável pela apresentação do bitmap na tela utilizando a GPU. O resultado são duas cópias da mesma imagem. No Windows 7 é o GDI que irá desenhar as imagens diretamente na memória gráfica o que reintroduz mínima aceleração de hardware no GDI. A mudança resulta em uma redução "drástica" do consumo de memória e uma rápida renderização.
As duas novas APIs do DirectX são a Direct2D e DirectWrite. De acordo com o MSDN, Direct2D é:
hardware-accelerated e immediate-mode, uma API para gráficos 2D de alta performance e alta qualidade ao renderizar 2D, bitmaps e texto. Direct2D API foi desenvolvida para interoperar com GDI, GDI+ e Direct3D.
Enquanto, DirectWrite:
DirectWrite fornece alta qualidade na renderização de texto, resolução independente de fontes e suporte total ao padrão Unicode. Quando utilizado com Direct2D, o DirectWrite é hardware-accelerated.
Direct3D 11 que vem no Windows 7 é um super conjunto do D3D10 e funcionará com hardware D3D9 e D3D10.x. Algumas das novas features presentes no D3D11 são:
- Tessellation — para aumentar, em tempo de execução, o número de polígonos visíveis a partir de um modelo de baixo detalhe poligonal.
- Multithreaded rendering — para renderizar o mesmo objeto Direct3D em diferentes threads em CPUs multi core.
- Compute shaders — que expõe o shader pipeline para tarefas não gráficas como stream processing e aceleração física, semelhante ao que atinge o NVIDIA CUDA, HLSL Shader Model 5, entre outros.
Uma das características não muito trabalhadas no Vista, mas a ser abordada com o Windows 7 é o gerenciamento de múltiplos monitores e dispositivos de exibição, como projetores. Para dar suporte ao grande número de configurações de dispositivos de saída possíveis, as GDI APIs foram estendidas e uma configuração poderá ser facilmente selecionada pressionando apenas a tecla Windows + P.
Links úteis: Windows 7 Graphics Architecture Overview Parte 1, Parte 2 e Parte 3, Windows 7: Introducing Direct2D e Windows 7: Unlocking the GPU with Direct3D (PDC).