Olá galera, nesta Quick Tips, irei falar sobre o Direct 2D do delphi 2010.

Introdução ao DirectX

As bibliotecas DirectX fazem parte da API do Windows a muito tempo, porém eram consideradas um modelo  separado de interface do usuário. No Windows 7, podemos usar alguns dos recursos do DirectX para podermos usar em nossas aplicações, bem parecido com o .Net Framework quando se utiliza o WPF(Windows Presentation Foundation).

O Windows Vista apresenta uma nova infra-estrutura para o DirectX chamado Windows Display Driver Model (WDDM), que permite que vários aplicativos compartilhem os serviços da Unidade de Processamento Gráfico . Podemos encontrar este recurso no AREO e Flip3D do Windows Vista. Temos uma grande mudança para o Windows 7, onde foi disponibilizado um novo conjunto de APIs do DirectX onde podemos exibir gráficos 2D e 3D, texto e imagens de forma bem rápida, em nossas aplicações. Uma das novidades no Direct2D é podermos pintar um formulário ou componente visual.

O Suporte nativo para VCL Direct2D é baseado em uma abstração do Registro da classe TCanvas. A unidade gráfica define uma nova classe base, chamado de TCustomCanvas, a qual herda de TCanvas juntamente com a nova classe TDirect2DCanvas(localizada na nova unit Direct2D)

                O Seu objetivo é substituir as antigas API’s GDI e GDI+ que são mais lentas.   

                Hoje a GDI e a GDI+ são responsáveis pelos efeitos 2D do Windows. A GDI + trouxe melhorias nas transparências e isso pode ser visto na interface do Windows XP. Porém continuamos a ter alguns problemas como falta de recursos mais avançados e desempenho uma vez que a GDI não é acelerada pela GPU.

 

       O GDI

             Graphics Device Interface, é um dos três subsistemas principais do Microsoft Windows. É um padrão desse sistema operacional para representar objetos gráficos e transmiti-los para dispositivos de saída, como monitores e impressoras. É responsável por tarefas como desenhar linhas, curvas e fontes, providenciando todo um API específico para a execução dessas operações. No Delphi a classe TCanvas é responsável por consumir esses recursos da API

 

      GDI+

                 Sucessora da GDI foi introduzida no Windows XP e trouxe grandes melhorias, como antialiasing de gráficos 2D, criação de gradientes e suporte muito melhor aos formatos de imagem como o JPEG e o PNG (inclusive foi na GDI+ que ocorreu a famosa falha que poderia fazer com que a exibição de uma simples imagem JPEG na internet permitisse a instalação de um malware no sistema afetado).

 

     GPU

                Graphics Processing unit, ou Unidade de Processamento Gráfico, conhecido também como VPU ou unidade de processamento visual, é o nome dado a um tipo microprocessador especializado em processar gráficos em computadores pessoais, estações de trabalho ou videogames. Uma GPU normalmente é utilizada em placas de vídeo, nas versões simplificadas são integradas diretamente em placas.

 

                A interface também suporta transformações, camadas anti-aliasing configurações, DPI,
instantâneos e status. O Direct2D tem poderosos recursos como canetas, pincéis e fontes, temos também um suporte completo de gradientes e outros. Encontramos nela vários outros objetos gráficos.

 

Veja a diferença entre GDI e o Direct2D, podemos notar que a imagem do DGI, tem algumas distorções, já não acontecendo no Direct2D

Direct 2d

 

O Direct2D esta disponível apenas no Windows 7, Windows Vista SP2 e Windows Server 2008 R2, além de estar nativo no Delphi 2010, temos disponível a nosso alcance as units Direct2D.pas, D2D1.pas e TDirect2DCanvas.

 

Com o DirectWrite podemos escrever com alta qualidade veja a diferença , o primeiro seria como Direct2D e o seguindo com o GDI

 


 

Direct2D

 

 

 

 

Fico por aqui ate à próxima Quick Tips.

 

Um abraço

 

Wesley Y