SDL

Simple DirectMedia Layer
Skaper(e)Sam Lantinga
Utvikler(e)Sam Lantinga
Utgitt 1998
Nyeste versjon2.30.3 (1. mai 2024)[1]
Kodelagerhttps://github.com/libsdl-org/SDL
OperativsystemMicrosoft Windows GNU/Linux Android macOS iOS FreeBSD Haiku
Skrevet iC[2]
TypeProgrammeringsgrensesnitt
LisensZlib-lisens,[3] LGPL 2.1
Nettstedwww.libsdl.org (en)

SDL på Commons
Simple DirectMedia Layer

Simple DirectMedia Layer (SDL) er et flerplattforms programvarebibliotek for multimedia skrevet i C. SDL er en abstraksjon mellom flere API-er innenfor grafikk-, lyd- og inndata som gjør det mulig å skrive et program som virker på ulike operativsystemer, slik som Linux, Windows, Mac OS X, AmigaOS og Amiga-klonen MorphOS. Biblioteket tar seg av grafikk, hendelser (events), digitallyd, CD-ROM, lyd, tråder, biblioteklasting og tidtakere. SDL er fri programvare.

Historie

Skaperen av SDL, Sam Lantinga ga ut første versjon tidlig i 1998. På denne tiden jobbet han for Loki Software, et firma som satset på å konvertere Windows-spill til Linux og Mac. Han fikk ideen mens han konverterte et program fra Windows til Macintosh. Etter dette konverterte han Doom til BeOS. Flere andre gratisbibliotek ble senere støttet i SDL. Blant annet SMPEG og OpenAL.

SDL-biblioteket kan brukes med nesten ethvert programmeringsspråk, fra populære (C++, Perl, Python (via pygame), Pascal og flere.) til mindre kjente (som Euphoria eller Pliant). SDL er i dag et vanlig valg for mange multimediaapplikasjoner, takket være den åpne kildekoden (lisensiert under LGPL) og den nevnte språkstøtten.

SDL fremstår som en tynn, flerplattforms «innpakning»(wrapper), som tilbyr 2D pikseloperasjoner, lyd, filbehandling, hendelseshåndtering (event handling), tråder og mer. SDL kombineres ofte med OpenGL ved å sette opp et vindu som OpenGL kan tegne i, og flere funksjoner som OpenGL ikke håndterer alene.

Biblioteket er delt inn i flere undergrupper, Video (som tar seg av overflatefunksjoner og OpenGL), Audio, CD-ROM , Joystick og Timer. Ved siden av denne lavnivåstøtten finnes det også en del offisielle biblioteker som tar seg av flere funksjoner. Dette kalles «standardbiblioteket». De er tilgjengelige på den offisielle nettsiden og er inkludert i dokumentasjonen:

  • SDL_image – støtter flere bildeformater, for eksempel JPEG og PNG.
  • SDL_mixer – flere og enklere funksjoner for ly,.hovedsakelig for avspilling av flere lyder samtidig. Støtter avspilling av moduler slik som MOD, XM(Fast Tracker) og IT(Impulse Tracker).
  • SDL_net – nettverksstøtte
  • SDL_ttf – TrueType Font-tegning
  • SDL_rtf – enkel Rich Text Format-tegning

Arkitektur

Abstaksjonslagene i flere SDL-plattformer

SDL har ordet «layer» i navnet fordi det egentlig er en «wrapper» for spesifikk operativsystemfunksjonalitet. Hovedhensikten med SDL er å tilby et felles rammeverk til å utnytte denne funksjonaliteten.

På grunn av oppbygningen av SDL er mye kildekode delt opp i separate moduler for hvert operativsystem for å utføre kall til underliggende systemer. Når SDL kompileres velges de riktige modulene for det ønskede systemet.

Microsoft Windows, er SDL en «wrapper» for DirectX, som igjen kommuniserer med grafikkdriveren. Eldre versjoner av SDL brukte DirectX 5, men SDL 1.2 krever DirectX 7 som standard. Sam Lantinga uttrykte i 2000 planer om å bruke DirectX 8 i fremtiden,[4] og per 2021 støtter SDL versjon 2.0.x standardmessig DirectX 9, men kan håndtere opptil DirectX 11. Programvaren støtter i tillegg de grafiske systemene OpenGL, Xlib for X11-vindussystemet, samt nyere grensesnitt som Vulkan og EGL i samspill med Wayland.

Mac OS X, bruker SDL Quartz og Metal.

Syntax og undernivåer

Syntaksen i SDL er funksjonsbasert. Alle operasjoner gjøres ved å sende parametere. Spesielle strukturer (oppramsningstypen struct?) brukes også til å lagre spesifikk informasjon som SDL må behandle. Det er en del forskjellige undernivåer som SDL katagoriserer funksjonene sine under:

  • Video, events and threads
  • Audio
  • Time
  • Joystick
  • CD-ROM

Skjermgalleri

Utvidelser

  • SMPEG – SDL MPEG Player Library
  • Guichan og ParaGUI – "widget"-samlingen.
  • GGI -grafikkgrensesnitt

Se også

Referanser

  1. ^ «2.30.3». 1. mai 2024. Besøkt 1. mai 2024. 
  2. ^ «The sdl Open Source Project on Open Hub: Languages Page». Open Hub. Besøkt 26. september 2018. 
  3. ^ https://github.com/libsdl-org/SDL/blob/main/LICENSE.txt.
  4. ^ Arkivert kopi fra libsdl.org

Eksterne lenker

  • (en) Offisielt nettsted Rediger på Wikidata
  • (en) Simple DirectMedia Layer – kategori av bilder, video eller lyd på Commons Rediger på Wikidata
  • (en) Simple DirectMedia Layer på GitHub Rediger på Wikidata
  • DevMaster.net – spillutviklingsside med artikler og guider for SDL.
  • "The Game Programming Wiki" sine SDL guider
  • SDL dokumentasjonen
  • SOL::Tutorials Hvordan sette opp SDL, tegne til skjermen, bruke tastatur og lage et enkelt spill.]
  • lazyfoo.net/SDL_tutorials Veiledninger for de fleste aspektene innen SDL. Alt fra kompilatoroppsett til OpenGL.]
Autoritetsdata