Enkelt DirectMedia Layer

Enkel DirectMedia Layer-
programvare
SjangerProgramvarebibliotek  (ikke  oppført )
UtviklerSam Lantinga
Dato for første versjon1998
Siste versjon2.24.0 (19. august 2022)
Siste  beta2.0.0-7635 (13. august 2013 )
OperativsystemMultiplattform
SpråkC.
Tillatelse1.2 GNU LGPL / 2.0 Zlib-lisens
( gratis lisens )
Nettstedwww.libsdl.org/

Simple DirectMedia Layer ( SDL ) er et gratis multi-plattform multimedia bibliotek , skrevet i C , som lager et abstrakt lag på toppen av ulike grafiske og lyd programvareplattformer og derfor kan kontrollere video, digital lyd, CD-ROM, lyder, tråder, delt opplasting av objekter, tidtakere og nettverk. Denne abstraksjonen lar programmerere skrive en multimedieapplikasjon én gang og kjøre den på mange operativsystemer: den nåværende versjonen støtter offisielt Linux , Windows , BeOS , MacOS og macOS , FreeBSD , OpenBSD , BSD / OS , Solaris , IRIX og QNX men kildekoden tilbyr også uoffisiell støtte for Windows CE , AmigaOS , Dreamcast , Atari , NetBSD , AIX , OSF/Tru64 , RISC OS og SymbianOS .

Historie

Sam Lantinga opprettet biblioteket og ga det ut tidlig i 1998 mens han jobbet for Loki Software . Ideen fikk han mens han porterte et program fra Windows til Macintosh. Han brukte deretter SDL for å bringe Doom til BeOS (se Doom-kildeport ). Flere andre gratis biblioteker er utviklet for å fungere med SDL, for eksempel SMPEG og OpenAL . Sam Lantinga grunnla også Galaxy Gameworks i 2008 for å gi kommersiell støtte for SDL på iOS -systemer ; Imidlertid ble selskapet solgt av Lantinga selv i 2011. [1]

SDL 2.0 er en stor oppdatering av SDL 1.2-koden og endrer store deler av API. Noen nye funksjoner inkluderer støtte for flere vinduer, støtte for flere inngangsenheter (mange mus, tastaturer, etc ...), akselerert 2D-grafikk og forbedret Unicode -støtte. [2] SDL 2.0 er distribuert under Zlib-lisensen , og kan derfor brukes fritt med statisk kobling i kommersielle lukkede kildeprosjekter, i motsetning til SDL 1.2 som kun tillater dynamisk kobling [3] .

Arkitektur

Biblioteket har lenker til nesten alle programmeringsspråk som finnes, fra de populære C++ , Perl , Python (via pygame ), Pascal til de mindre kjente Euphoria og Pliant . Dette, og det faktum at det er lisensiert under LGPL , gjør SDL til et vanlig valg for mange multimedieapplikasjoner.

SDL er veldig enkelt; den fungerer bare som en lett, tverrplattform-innpakning som gir støtte for 2D-pikseloperasjoner, lyder, filtilgang, hendelseshåndtering, tidtakere, tråder og mer. Den brukes ofte som et supplement til OpenGL ved å sette opp grafikkutgang og gi administrasjon av input-enhet, funksjoner som er langt utenfor omfanget av OpenGL.

Biblioteket er delt inn i undersystemer , som Video (styrer både funksjonene for overflater og for tilgang til OpenGL), Audio, CD-ROM, Joystick og Time. Bortsett fra støtte på lavt nivå, er det noen offisielle støttebiblioteker som gir ekstra funksjonalitet. Disse inkluderer "standardbibliotekene", de er gitt på den offisielle nettsiden og inkludert i den offisielle dokumentasjonen:

Portabilitet

SDL har ordet "lag" i navnet fordi det er et koblingslag til spesifikk operativsystemfunksjonalitet. Hovedformålet med SDL er å gi et felles rammeverk for tilgang til disse funksjonene.

Slik arkitekturen er unnfanget, er mye av SDL-kildekoden delt inn i separate moduler for hvert operativsystem; når SDL er kompilert, velges de riktige modulene for måloperativsystemet.

Under Microsoft Windows gir SDL en kobling til GDI -grensesnittet som standard ; Det er også en lenke til DirectX -bibliotekene . Eldre versjoner av SDL brukte DirectX 5, men SDL 1.2 (den nåværende stabile utgivelsen) krever DirectX 7. Sam Lantinga har uttalt at han har til hensikt å bruke DirectX 8 i fremtidige utgivelser av SDL. [4]

På X11 - plattformer , inkludert Linux , bruker SDL Xlib til å kommunisere med X11-systemet for grafikk og hendelser.

macOS bruker SDL Quartz .

Undersystemer og syntaks

SDL-syntaks er basert på funksjoner: alle operasjoner som gjøres i SDL utføres ved å sende parametere til funksjoner. Spesielle datastrukturer brukes til å lagre informasjonen SDL trenger for å fungere. Det er noen få undersystemer der SDL kategoriserer funksjonene sine:

Utvidelser

Merknader

  1. ^ Exploring the Galaxy . Slouken.blogspot.com , 6. april 2011. Hentet 16. juli 2012 .
  2. ^ SDL 2.0 Roadmap , på wiki.libsdl.org . Hentet 25. juli 2012 .
  3. ^ Lisensiere Simple DirectMedia Layer-biblioteket , på libsdl.org . Hentet 16. juli 2012 .
  4. ^ SDL-postliste , på lists.libsdl.org , Libsdl.org. Hentet 16. juli 2012 .

Relaterte elementer

Andre prosjekter

Eksterne lenker