Strat DirectMedia simplu
Strat DirectMedia simplu software | |
---|---|
Tip | Bibliotecă software (nu este listată ) |
Dezvoltator | Sam Lantinga |
Data primei versiuni | 1998 |
Ultima versiune | 2.0.16 (10 august 2021) |
Ultima versiune beta | 2.0.0-7635 (13 august 2013 ) |
Sistem de operare | Multiplatform |
Limba | C. |
Licență | 1.2 Licență GNU LGPL / 2.0 Zlib ( licență gratuită ) |
Site-ul web | www.libsdl.org/ |
Simple Directmedia Layer (SDL) este un liber multi-platformă multimedia de bibliotecă , scrise în C , care creează un strat abstract pe partea de sus a diferitelor grafice și platforme software de sunet și , prin urmare , poate controla video, audio digitale, CD-ROM, sunete, fire, încărcare partajată de obiecte, temporizatoare și rețea. Această abstracție permite programatorilor să scrie o aplicație multimedia o dată și să o ruleze pe multe sisteme de operare: versiunea actuală acceptă oficial Linux , Windows , BeOS , MacOS și macOS , FreeBSD , OpenBSD , BSD / OS ,Solaris , IRIX și QNX, dar codul sursă oferă, de asemenea, suport neoficial pentru Windows CE , AmigaOS , Dreamcast , Atari , NetBSD , AIX , OSF / Tru64 , RISC OS și SymbianOS .
Istorie
Sam Lantinga a creat biblioteca, lansând-o la începutul anului 1998 în timp ce lucra pentru Loki Software . Ideea i-a venit în timp ce transporta o aplicație de la Windows la Macintosh. Apoi a folosit SDL pentru a aduce Doom la BeOS (vezi portul sursă Doom ). Mai multe alte biblioteci gratuite au fost dezvoltate pentru a lucra cu SDL, cum ar fi SMPEG și OpenAL . Sam Lantinga a fondat, de asemenea, Galaxy Gameworks în 2008 pentru a oferi suport comercial pentru SDL pe sistemele iOS ; cu toate acestea, compania a fost cedată chiar de Lantinga în 2011. [1]
SDL 2.0 este o actualizare majoră a codului SDL 1.2 și modifică porțiuni mari din API. Unele caracteristici noi includ suport pentru mai multe ferestre, suport pentru mai multe dispozitive de intrare (mulți șoareci, tastaturi, etc ...), grafică 2D accelerată și suport îmbunătățit Unicode . [2] SDL 2.0 este distribuit sub licența Zlib și, prin urmare, poate fi utilizat gratuit cu legarea statică în proiecte comerciale cu sursă închisă, spre deosebire de SDL 1.2, care permite doar legătura dinamică [3] .
Arhitectură
Biblioteca are legături la aproape orice limbaj de programare în existență, de populara C ++ , Perl , Python (prin pygame ), Pascal la mai puțin cunoscute Euphoria și maleabil . Acest lucru și faptul că este licențiat conform LGPL , fac din SDL o alegere comună pentru multe aplicații multimedia.
SDL este foarte simplu; funcționează doar ca o învelitoare ușoară pe mai multe platforme, care oferă suport pentru operațiuni 2D pixeli, sunete, acces la fișiere, gestionarea evenimentelor, temporizatoare, fire și multe altele. Este adesea folosit ca o completare a OpenGL prin configurarea ieșirii grafice și asigurarea gestionării dispozitivelor de intrare, caracteristici care depășesc cu mult OpenGL.
Biblioteca este împărțită în subsisteme , precum Video (gestionează atât funcțiile pentru suprafețe, cât și pentru accesarea OpenGL), Audio, CD-ROM, Joystick și Time. În afară de suportul de nivel scăzut, există unele biblioteci oficiale de asistență care oferă funcționalități suplimentare. Acestea includ „bibliotecile standard”, sunt furnizate pe site-ul oficial și incluse în documentația oficială:
- SDL_image - suport pentru diferite formate de imagine
- SDL_mixer - funcții audio complexe, în principal pentru amestecarea sunetelor
- SDL_net - suport pentru rețea
- SDL_ttf - Suport de redare TrueType Font
- SDL_rtf - Redare simplă a formatului de text îmbogățit
Portabilitate
SDL are cuvântul „strat” în numele său, deoarece este un strat de legătură cu funcționalitatea specifică a sistemului de operare. Scopul principal al SDL este de a oferi un cadru comun pentru accesarea acestor caracteristici.
Ca urmare a arhitecturii, o mare parte din codul sursă SDL este împărțit în module separate pentru fiecare sistem de operare; când se compilează SDL, sunt selectate modulele corecte pentru sistemul de operare țintă.
În Microsoft Windows , SDL oferă în mod implicit un link către interfața GDI ; Există, de asemenea, un link către bibliotecile DirectX . Versiunile mai vechi ale SDL foloseau DirectX 5, dar SDL 1.2 (actuala versiune stabilă) necesită DirectX 7. Sam Lantinga a declarat că intenționează să utilizeze DirectX 8 în viitoarele versiuni de SDL. [4]
Pe platformele X11 , inclusiv Linux , SDL folosește Xlib pentru a comunica cu sistemul X11 pentru grafică și evenimente.
Pe macOS , SDL folosește Quartz .
Subsisteme și sintaxă
Sintaxa SDL se bazează pe funcții: toate operațiunile efectuate în SDL sunt efectuate prin trecerea parametrilor la funcții. Structurile de date speciale sunt utilizate pentru a stoca informațiile pe care SDL trebuie să le funcționeze. Există câteva subsisteme în care SDL își clasifică funcțiile:
- Subsistemul Video, Evenimente și Thread - acesta oferă funcționalități pentru video, multi-threading și gestionarea evenimentelor .
- Subsistemul audio - acesta oferă capacități audio.
- Subsistemul Timp
- Subsistemul Joystick
- Subsistemul CD-ROM
Extensii
- SMPEG - bibliotecă de player MPEG SDL
- Guichan și ParaGUI - Seturi de widgeturi
- GGI - interfață grafică multiplată gratuită
Notă
- ^ Explorarea galaxiei . Slouken.blogspot.com , 6 aprilie 2011. Adus 16 iulie 2012 .
- ^ Foaie de parcurs SDL 2.0 , la wiki.libsdl.org . Adus la 25 iulie 2012 .
- ^ Licențierea bibliotecii Simple DirectMedia Layer , la libsdl.org . Adus la 16 iulie 2012 .
- ^ SDL mailing list , pe lists.libsdl.org , Libsdl.org. Adus la 16 iulie 2012 .
Elemente conexe
Alte proiecte
- Wikimedia Commons conține imagini sau alte fișiere pe Simple DirectMedia Layer
linkuri externe
- Documentația SDL , la libsdl.org . Adus la 4 mai 2019 (arhivat din original la 29 ianuarie 2013) .
- ( EN ) Site-ul oficial SDL , la libsdl.org .
- ( DE ) Site-ul german SDL , la libsdl.de .
- (RO) DevMaster.net - un site de dezvoltare de jocuri are și articole și tutoriale pe SDL.
- ( RO ) Tutorialul Wiki pentru programarea jocurilor pe SDL , la gpwiki.org . Adus la 25 decembrie 2007 (arhivat din original la 26 octombrie 2007) .