No tutorial anterior foram apresentados vários aspectos e conceitos essenciais para quem pretende iniciar a sua jornada no desenvolvimento de software usando o DirectX.
Neste segundo tutorial vou mostrar como podemos configurar o Visual Studio para ficarmos prontos a desenvolver e compilar código C++ que usa funcionalidades do DirectX.
Para este efeito irei usar a release de Fevereiro de 2010 do DirectX SDK e o Visual Studio 2010 RC.
1ª Etapa - Instalação do DirectX SDK
Antes de mais é necessário fazer download do SDK neste local.
De seguida basta lançar o processo de instalação. Deverá aparecer uma janela como esta:

De seguida basta fazer Seguinte -> Seguinte -> (...) até o processo estar concluído :-)
2ª Etapa - Criar um novo Projecto
Este passo é o mais genérico de todos pois mesmo noutro tipo de projectos e com outras linguagens o processo é o mesmo. A única diferença encontra-se na natureza do projecto que escolhemos.
Eis o passos:
- Menu File -> New -> Project ( equivalente a Ctrl+Shift+N )
- Installed Templates -> Visual C++ -> Win32 -> Win32 Project

- Inserir nome do projecto -> OK
- Escolher 'Next >' -> Selecionar Windows application e Empty project -> Escolher Finish
Nesta altura teremos um novo projecto criado.
Este projecto permite desenvolver aplicações com recurso a C/C++ para ambientes gráficos Win32.
Não é requisito que o ambiente seja win32 (podíamos perfeitamente ter escolhido um projecto Consola) mas isso obrigaria a que mais tarde tivéssemos de adicionar umas linhas de código adicionais.
Em tutoriais posteriores irei mostrar como lidar com o problema de perdermos a consola (muito útil para debugging)!
3ª Etapa - Configuração da directoria de headers e bibliotecas
Tal como foi explicado no tutorial anterior, o DirectX é uma colecção de bibliotecas que expõem as funcionalidades avançadas de vários dispositivos de hardware.
Para termos acesso a este set de funcionalidades precisamos de uma interface e da sua implementação.
A directoria de headers é a que contem a interface ( ficheiros *.h ) e a directoria de bibliotecas contem a implementação das funcionalidades ( ficheiros .lib ).
A configuração é mais uma vez extremamente simples:
- Menu Project -> (ProjectName) Properties (Alt+F7)
- Configuration Properties (menu do lado esquerdo) -> VC++ Directories
Neste momento vamos ter de alterar o valor de dois campos: Include Directories e Library Directories.
O Include Directories deverá ficar com um valor parecido com este:
C:\Program Files (x86)\Microsoft DirectX SDK (February 2010)\Include
e o Library Directories com este:
C:\Program Files (x86)\Microsoft DirectX SDK (February 2010)\Lib\x86
Como é óbvio estes valores podem variar de computador para computador, o que é necessário garantir é que as duas pastas (Include e Lib\x86) são referenciadas. (Para já apenas nos iremos preocupar com projectos para targets x86)
Configurados estes campos, terminamos o processo clicando no botão OK ( fundo da janela das propriedades do projecto)
4ª Etapa - Indicar as bibliotecas do DirectX a serem usadas no processo de linkagem.
Inidicar em que pasta estão as bibliotecas não chega, é preciso indicar as que vamos usar ( tal como quando precisamos de uma interface fazemos #include do ficheiro onde essa interface está colocada ).
Existem pelo menos dois métodos de fazermos isto:
a) Via propriedades do projecto (novamente)
b) Via instruções de pre-processamente do VC++
a) Via propriedades do projecto
Menu Project -> Project Properties (Alt+F7) -> Configuration Properties -> Linker -> Input
A opção Input apresenta-nos uma série de campo. Devemos adicionar as bibliotecas que vamos usar no campo: Aditional Dependencies
b) Via instruções de pre-processamente do VC++
Este processo é o mais simples.
A instrução tem esta forma: #pragma comment( lib , "<nome_da_biblioteca>" ).
Se quiséssemos adicionar a biblioteca do Direct3D 10 ao processo de linkagem seria: #pragma comment( lib , "d3d10.lib" )
Não existe um processo mais ou menos correcto, tudo depende dos gostos de cada um.
Pessoalmente recomendo o método da alínea b) porque assim podemos partilhar ficheiros que já indicam que bibliotecas usar.
Por outro lado também é o método que irei usar nos tutoriais.
As samples do DirectX SDK usam o método da alínea a)
E é o fim do segundo tutorial! :-)
No próximo tutorial iremos ver como criar, lançar e gerir uma janela gráfica ( yey! :P )
'till there ;-)