Desenvolvimento - Visual Studio

Instalando a biblioteca SDL no Visual Studio

Veja neste artigo como instalar e configurar a biblioteca SDL no Visual Studio.

por Joel Rodrigues



SDL - Sample DirectMedia Layer – é uma biblioteca multiplataforma projetada para prover acesso simples e de baixo nível ao teclado, mouse, joystic, áudio e gráficos via OpenGL e Direct3D.

A SDL atualmente suporta os sistemas operacionais Windows, Mac OS X, Linux, iOS e Android. SDL é desenvolvida em C e pode ser utilizada nativamente em C++, que é sua principal forma de uso (devido às melhorias da C++ em relação a C, que permitem uma melhor organização dos projetos, como aplicação de padrões para estruturação do jogo).

Como essa biblioteca é mais utilizada em projetos C++, e o Visual Studio é atualmente um dos principais IDEs para essa linguagem, neste artigo será explicado como instalar a SDL e criar um projeto para utilizá-la. Apesar de simples, existe um procedimento de importação dos arquivos da biblioteca que precisa ser feito para garantir o bom funcionamento do programa. Após instalada a SDL, criaremos um projeto simples para demonstrar alguns dos recursos mais simples.

Download da biblioteca

Para fazer download, da SDL, devemos começar acessando o site http://www.libsdl.org/ e clicar no menu SDL 2.0, na categoria Downloads (Figura 1).

Download da biblioteca SDL

Figura 1: Download da biblioteca SDL

Na página de downloads, devemos baixar a biblioteca de desenvolvimento (Development Libraries) e as DLLs (Runtime Binaries), conforme é indicado na Figura 2.

Itens a serem baixado

Figura 2: Itens a serem baixado

Instalando a biblioteca no Visual Studio

Feito o download, podemos criar um novo projeto C++ no Visual Studio, no qual será importada a biblioteca. Após clicar em FILE > New > Project ..., devemos selecionar o template Win32 Project, como vemos na Figura 3.

Criando um novo projeto C++ no Visual Studio

Figura 3: Criando um novo projeto C++ no Visual Studio

Na tela de configuração do projeto, após clicar em Next na seção Overview, devemos selecionar o tipo Console Application e marcar a opção Empty Project (Figura 4), em seguida basta clicar em Finish.

Configurações do projeto C++

Figura 4: Configurações do projeto C++

Com o projeto criado, devemos clicar em Build para que seja criada a pasta Debug, dentro do diretório do projeto. Para dentro desta pasta devemos então copiar a DLL SDL2.dll, presente em um dos arquivos compactados que foram baixados anteriormente (Runtime Binaries).

O próximo passo é copiar a pasta com as bibliotecas de desenvolvimento (pacote baixado na categoria Development Libraries) para dentro do diretório do projeto (agora no mesmo nível da pasta Debug). Para facilitar o entendimento, a Figura 5 mostra como deve ficar a estrutura de pastas do projeto.

Diretório do projeto com a pasta da biblioteca

Figura 5: Diretório do projeto com a pasta da biblioteca

Após copiar essa pasta, o procedimento seguinte é clicar com a direita sobre o projeto no Solution Explorer e depois em Properties (o mesmo pode ser feito clicando no menu PROJECT > Properties do Visual Studio). Na janela de propriedades, clicamos então no item VC++ Directories, no menu da esquerda (Figura 6).

Propriedades do projeto

Figura 6: Propriedades do projeto

Em seguida deve-se clicar em Include Directories, e em , na caixa de opções que aparecerá. Na janela Include Directories que será aberta, clicamos no menu New Line que fica no topo, e depois no botão com três pontos que aparece na linha inserida (Figura 7).

Incluindo novo diretório

Figura 7: Incluindo novo diretório

Clicando no botão com três pontos, devemos navegar até a pasta que foi copiada para dentro do diretório do projeto (neste exemplo, foi a pasta SDL2-2.0.3) e dentro dela selecionar a pasta include. Feito isso, o diretório selecionado será incluído na nova linha e então podemos clicar em OK.

Na sequência repetimos o procedimento, mas dessa vez no item Library Directories. Ao clicar no botão com três pontos na nova linha, devemos selecionar, dentro da pasta lib, a subpasta referente à arquitetura do sistema operacional que se está utilizando (x86 ou x64). Depois, basta clicar em OK.

O próximo passo é clicar no item Input, na categoria Linker do menu da esquerda (janela de propriedades), e editar o item Aditional Dependencies (Figura 8).

Editando as dependências adicionais do projeto

Figura 8: Editando as dependências adicionais do projeto

Na janela que se abrirá (Aditional Dependencies) deve-se inserir duas linhas: SDL2.lib e SDL2main.lib, de acordo com a Figura 9.

Aditional Dependencies

Figura 9: Aditional Dependencies

Para finalizar, clicando no menu System, ainda na categoria Linker do lado esquerdo, mudamos a propriedade SubSystem para “Windows (/SUBSYSTEM:WINDOWS)” e clicamos em OK. Com isso finalizamos a instalação da SDL em nosso projeto.

Testando a SDL em um projeto

Para testar a SDL, podemos clicar com a direita na pasta Source Files no Solution Explorer, selecionar a opção Add > New Item... e selecionar C++ File (.cpp). Dê um nome ao arquivo (costuma-se usar Main.cpp para o arquivo principal do projeto) e clique em OK.

No arquivo criado, insira o seguinte conteúdo, constante na Listagem 1.

Listagem 1: Criando uma janela simples com SDL

#include 

int main(int argc, char* argv[]){
	SDL_Init(SDL_INIT_EVERYTHING);
	SDL_Window *window = SDL_CreateWindow("Teste SDL",
										  SDL_WINDOWPOS_UNDEFINED,
										  SDL_WINDOWPOS_UNDEFINED,
										  640,
										  480,
										  SDL_WINDOW_OPENGL);
	SDL_Surface *surface = SDL_GetWindowSurface(window);
	SDL_Rect rect = {100,100,440,280};
	SDL_FillRect(surface, &rect, SDL_MapRGB(surface->format, 255,0,0));
	SDL_UpdateWindowSurface(window);
	SDL_Delay(3000);
	SDL_DestroyWindow(window);
	SDL_Quit();
	return 0;
}

Isso deverá criar uma janela com um retângulo vermelho no centro, que durará 3 segundos até ser destruída e liberada da memória.

Links

Joel Rodrigues

Joel Rodrigues - Técnico em Informática - IFRN Cursando Bacharelado em Ciências e Tecnologia - UFRN Programador .NET/C# e Delphi há quase 3 anos, já tendo trabalhado com Webservices, WPF, Windows Phone 7 e ASP.NET, possui ainda conhecimentos em HTML, CSS e Javascript (JQuery).