Loading AI tools
Da Wikipédia, a enciclopédia livre
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.
Simple DirectMedia Layer | |
---|---|
![]() Logo do SDL | |
Desenvolvedor | Sam Lantinga |
Lançamento | 1998 (25–26 anos) |
Versão estável | 2.30.3 (1 de maio de 2024[1]) |
Escrito em | C |
Sistema operacional | Windows, macOS, Linux, iOS, Android |
Gênero(s) | API |
Licença | zlib |
Estado do desenvolvimento | Ativo |
Página oficial | www |
Repositório | github |
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.[2]
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.[3] A biblioteca manipula vídeo, eventos, áudio digital, CD-ROM, threads, carregamento de objetos compartilhados, rede e timers (temporizadores).[4]
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:
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.
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.[5]
SDL 2.0 é uma grande atualização ao código-base com uma API diferente, sem retrocompatibilidade.[6] 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.[7]
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.[8] 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".[9]
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.[10]
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.
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:
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: www.libsdl.org/hg.php.
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.