SDL (biblioteca)

Origem: Wikipédia, a enciclopédia livre.
Ir para: navegação, pesquisa
Question book.svg
Este artigo não cita fontes confiáveis e independentes. (desde maio de 2012). Por favor, adicione referências e insira-as corretamente no texto ou no rodapé. Conteúdo sem fontes poderá ser removido.
Encontre fontes: Google (notícias, livros e acadêmico)
Simple DirectMedia Layer
Ficheiro:Sdl-logo.png
Desenvolvedor Sam Lantinga
Versão estável 1.2.15 (20-jan-2012)
Versão em teste 2.0 (Nightly)
Escrito em C
Sistema operacional Multiplataforma
Gênero(s) API
Licença 1.2 GNU LGPL / 2.0 licença zlib
Página oficial http://www.libsdl.org
Simple DirectMedia Layer

Simple DirectMedia Layer (SDL) é uma biblioteca multimídia livre e de código aberto, multiplataforma, escrito em C que representa uma interface simples para gráficos, som, e dispositivos de entrada de várias plataformas.

SDL tem a palavra "layer" (camada) no título porque é na verdade um wrapper de várias funções específicas do sistema operacional. O propósito principal do SDL é fornecer um framework comum para acessar essas funções. Para maior funcionalidade além desse objetivo, várias bibliotecas foram criadas para funcionar em conjunto com SDL.[1]

Desenvolvedores de software usam-no para escrever jogos de computador e outras aplicações multimídia que funcionem em vários sistemas operacionais: Android, iOS, Linux, Mac OS X, Windows e outras plataformas não-suportadas oficialmente.[2] A biblioteca manipula vídeo, eventos, áudio digital, CD-ROM, threads, carregamento de objetos compartilhados, rede e timers (temporizadores).[3]

Galeria[editar | editar código-fonte]

Design[editar | editar código-fonte]

SDL age como um wrapper de camada fina e multiplataforma, fornecendo suporte a operações de pixel 2D, som, acesso à arquivos, manipulação de eventos, temporizadores, threading, e mais. É frequentemente usado para complementar o OpenGL estabelecendo saída gráfica e fornecendo entrada de mouse e teclado, que vão além do escopo do OpenGL.

A biblioteca é dividida em vários subsistemas, a saber, vídeo (controla ambas as funções de superfície e OpenGL), áudio, CD-ROM, joysticks, e subsistemas de timer. Além desse suporte básico de mais baixo nível, também há algumas bibliotecas oficiais separadas que fornecem mais funções. Essas compreendem a "biblioteca padrão", e são disponibilizadas no site oficial e incluídas na documentação oficial:

  • SDL_image — suporte para vários formatos de imagem
  • SDL_mixer — funções de áudio complexas, principalmente para mixagem de som
  • SDL_net — suporte a networking (rede)
  • SDL_ttf — suporte a renderização de fontes TrueType
  • SDL_rtf — renderização de textos em RTF simples

Existem também outras bibliotecas não-oficiais. Por exemplo: SDL_Collide no Sourceforge criada por Amir Taaki.

A biblioteca SDL possui bindings de linguagem para muitas linguagens de programação, das populares (C, C++, Pascal, Perl, Python (via Pygame), etc.) até as menos conhecidas como Ch (via ChSDL), Euphoria e Pliant. Isso torna SDL uma biblioteca de código aberto comumente utilizada para muitas aplicações multimídia.

História[editar | editar código-fonte]

Sam Lantinga criou a biblioteca, inicialmente lançando-a no começo de 1998, enquanto trabalhava na Loki Software. Ele teve a idéia enquanto portava uma aplicação do Windows para o Macintosh. Então usou a SDL para portar o Doom para o BeOS. Muitas outras bibliotecas livres apareceram para trabalhar com a SDL, como a SMPEG e a OpenAL. Ele também fundou a Galaxy Gameworks em 2008 para apoiar comercialmente o SDL, embora os planos da companhia estejam em espera devido a restrições de tempo.[4]

SDL 2.0 é uma grande atualização ao código-base com uma API diferente, sem retrocompatibilidade[5] . Ela substitui várias partes da API 2.3 com maior suporte genérico para múltiplas opções de entrada e saída.

Algumas adições funcionais incluem suporte a múltiplas janelas, gráficos 2D acelerados por hardware, e melhor suporte a Unicode.[6]

SDL 2.0 possui licença zlib, e portanto é livremente disponível para linkagem estática em projetos comerciais de código fechado, ao contrário do SDL 1.2.[7] No mesmo dia que Sam Lantinga anunciou que estaria indo para a Valve Software, ele também anunciou que "era hora de disponibilizar o SDL 2.0 para as massas".[8]

Portas[editar | editar código-fonte]

Camadas de abstração de várias plataformas.

Devido ao modo como SDL foi projetado, muito do seu código fonte é dividido em módulos separados para cada sistema operacional, para fazer chamadas ao sistema subjacente. Quando SDL é compilado, os módulos corretos são selecionados para o sistema alvo.

No Microsoft Windows, SDL usa um backend GDI por padrão. Um backend em DirectX também está disponível. Versões antigas do SDL usavam DirectX 5, mas SDL 1.2 (a versão estável atual) requer DirectX 7 por padrão. Sam Lantinga mencionou que planeja usar DirectX 8 nas versões futuras do SDL.[9]

Nas plataformas X Window System, incluindo Linux e OpenVMS, SDL usa Xlib para se comunicar com o sistema X11 para gráficos e eventos.

No Mac OS X, SDL usa Quartz.

Sintaxe e subsistemas[editar | editar código-fonte]

A sintaxe de SDL é baseada em funções: todas as operações feitas em SDL são executadas passando parâmetros para funções. Estruturas especiais também são usadas para armazenar informações específicas que o SDL precisa controlar. Há alguns subsistemas diferentes sob os quais o SDL categoriza suas funções:

  • Subsistema de vídeo, eventos e threads: esse fornece funções de vídeo, multi-threading, e manipulação de eventos
  • Subsistema de áudio: fornece funções comuns de ádio
  • Subsistema de tempo
  • Subsistema de joystick
  • Subsistema de CD-ROM

Instalação[editar | editar código-fonte]

A SDL pode ser obtida no endereço www.libsdl.org. Há versões runtime (apenas para rodar aplicativos que dependem da SDL) e versões para desenvolvimento de aplicativos. Em alguns sistemas Linux como o Ubuntu, pode-se encontrar a biblioteca pré-compilada no gerenciador de pacotes nativo.

A versão 2.0, que ainda está sob testes, pode ser obtida pelo Mercurial e clonado diretamente para seu computador onde é possível usar os projetos prontos (como Visual Studio no Windows) para compilar as dlls e libs necessárias para o desenvolvimento; mais informações sobre isso podem ser encontradas nesse endereço: http://www.libsdl.org/hg.php.

Ver também[editar | editar código-fonte]

Referências[editar | editar código-fonte]

  1. SDL libraries Libsdl.org. Visitado em 15 January 2012.
  2. a list of the platforms SDL supports Libsdl.org. Visitado em 26 Nov 2012.
  3. SDL official website Libsdl.org. Visitado em 19 March 2010.
  4. Exploring the Galaxy (6 April 2011). Visitado em 30 Jan 2012.
  5. http://wiki.libsdl.org/moin.cgi/MigrationGuide#Backward-compatibility
  6. SDL 1.3 Roadmap (14 June 2011). Visitado em 25 July 2011.
  7. Licensing the Simple DirectMedia Layer library. Visitado em 30 Jan 2012.
  8. SDL 2.0 Is Coming Very Soon With New Features. Visitado em 17 Aug 2012.
  9. SDL mailing list Libsdl.org. Visitado em 23 March 2010.

Ligações externas[editar | editar código-fonte]

Ícone de esboço Este artigo sobre Software é um esboço. Você pode ajudar a Wikipédia expandindo-o.