Wikipedia for Schools in Portuguese is available here
CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
SITEMAP
Make a donation: IBAN: IT36M0708677020000000008016 - BIC/SWIFT:  ICRAITRRU60 - VALERIO DI STEFANO or
Privacy Policy Cookie Policy Terms and Conditions
SDL (biblioteca) - Wikipédia

SDL (biblioteca)

Origem: Wikipédia, a enciclopédia livre.

 Simple DirectMedia Layer
Desenvolvedor Sam Lantinga
Última versão 1.2.11 (26-jun-2006)
Sistema Op. Multiplataforma
Gênero API
Licença GNU LGPL
Website libsdl.org

Simple DirectMedia Layer (SDL) é uma biblioteca multimídia e multiplataforma escrita em C (mas diretamente compatível com C++ e possui interfaces para outras linguagens de programação, como Ada, Eiffel, Java, Lua, ML, Perl, PHP, Pike, Python, e Ruby), que cria uma abstração em várias plataformas de gráficos, sons, e entrada de APIs, tornando possível ao programador escrever um jogo de computador ou outra aplicação multimedia já que ela pode rodar em GNU/Linux, Windows, Mac OS Classic, Mac OS X, BeOS, FreeBSD, OpenBSD, Solaris, QNX, IRIX, e muitas outras plataformas não oficialmente suportadas. Ela gerencia video, eventos, audio digital, CD-ROM, som, threads, processamento de objetos compartilhados, rede e tempo.

Poder ser a sigla de uma empresa de design de interiores, [1], situada nas Caldas da Rainha, Portugal, a cerca de 80Kms a Norte de Lisboa

Índice

[editar] História

Camadas de operação de alguns sistemas
Ampliar
Camadas de operação de alguns sistemas

Sam Lantinga criou a biblioteca, primeiramente lançando 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 ele 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.

A biblioteca SDL teve ligações com quase toda linguagem que existe, desde a popular (C++, Perl, Python (com o pygame), Pascal etc.) até os menos conhecidos (como o Euphoria ou Pliant). Isso e o fato de ter o código aberto, licenciado sobre a LGPL, fazem do SDL uma escolha comum para muitas aplicações multimedia.

SDL em si é muito simples; ela meramente age de maneira transparente, de maneira multi-plataforma, provendo suporte para operações com pixels em 2D, som, acesso a arquivos, gerenciamento de eventos, tempo, threading, e mais. OpenGL é frequentemente usado com a SDL para prover rápida renderização em 3D. É também conhecida como uma DirectX multi-plataforma, embora tenha funcionalidades mais avançadas. SDL ainda tem uma porção de outras extensões que fazem dela mais fácil e com mais funções avançadas.

A Biblioteca é dividida em vários subsistemas, como o Video, Audio, CD-ROM, Joystick e Subsistemas de tempo. Além do básico, suporte alto-nível, também há umas poucas bibliotecas dependentes da SDL que provêem mais funcionalidades avançadas. Estas incluem SDL image (provê uma maneira fácil de carregar os formatos de imagem mais conhecidas hoje em dia), SDL mixer (funções complexas de audio, principalmente para mistura de som), SDL net (suporte a rede), SDL ttf (renderização de Fontes TrueType), SDL gfx (algumas funções gráficas adicionais, como redimensionar e girar imagens) e SDL rtf (renderização simples do Rich Text Format).

[editar] Instalação

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.

O Dev-C++ (IDE e compilador C++ gratuito para Windows, pode ser encontrado em www.bloodshed.net) possui pacotes prontos e configurados corretamente para desenvolvimento de aplicativos SDL. Basta baixá-los e instalá-los através do próprio gerenciador de pacotes do Dev-C++.

Um detalhe importante fica por conta do arquivo SDL.dll. Ele deve constar em algum diretório do sistema (como C:\windows\system) ou no próprio diretório do aplicativo.

[editar] Básico

Todo aplicativo SDL deve incluir o cabeçalho da SDL logo no início, com a declaração

 #include <SDL/SDL. h>

A primeira providência, no programa, é inicializar a SDL. Isso é feito com a função

 SDL_Init();

Como parâmetro, é necessário informar quais partes da SDL serão inicializada. Exemplos são o controle de vídeo (SDL_INIT_VIDEO), de som (SDL_INIT_AUDIO), cd-rom (SDL_INIT_CDROM), joystick (SDL_INIT_JOYSTICK), entre outros. Por enquanto, ficaremos apenas com vídeo e som.

 SDL_Init(SDL_INIT_VIDEO|SDL_INIT_AUDIO);

Essa função tem retorno, portanto, é possível testar se a SDL foi inicializada corretamente:

 if (SDL_Init(SDL_INIT_VIDEO|SDL_INIT_AUDIO) < 0)
 {
   printf("Nao foi possível inicializar a SDL: %s\n", SDL_GetError());
   return 1;
 }

Antes de explicar o próximo passo, uma breve explicação sobre as Surfaces do SDL. Uma Surface é uma área da memória utilizada para armanezar imagens. Praticamente tudo no SDL é feito com Surfaces. Cada imagem do jogo (como bolinhas, pás e tela de fundo num jogo tipo Pong), são Surfaces.

É possível desenhar uma Surface dentro de outra Surface. O melhor exemplo disso é a tela principal do jogo. Ela pode ser alocada como uma Surface de 640x480 (por exemplo), em branco. Depois, as Surfaces da bolinha e pás são declaradas e carregadas com os devidos arquivos bitmaps, para depois, cada uma dessas Surfaces ser desenhada na Surface principal do jogo, para finalmente ser exibido para o jogador.

Vamos começar com a tela principal do jogo. Para declarar uma Surface, usamos:

 SDL_Surface *tela;

Para inicializar a Surface como tela principal do jogo, usamos:

 tela = SDL_SetVideoMode(640, 480, 32, SDL_HWSURFACE|SDL_DOUBLEBUF);

[editar] Ligações externas

Static Wikipedia 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2006 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Sub-domains

CDRoms - Magnatune - Librivox - Liber Liber - Encyclopaedia Britannica - Project Gutenberg - Wikipedia 2008 - Wikipedia 2007 - Wikipedia 2006 -

Other Domains

https://www.classicistranieri.it - https://www.ebooksgratis.com - https://www.gutenbergaustralia.com - https://www.englishwikipedia.com - https://www.wikipediazim.com - https://www.wikisourcezim.com - https://www.projectgutenberg.net - https://www.projectgutenberg.es - https://www.radioascolto.com - https://www.debitoformtivo.it - https://www.wikipediaforschools.org - https://www.projectgutenbergzim.com