Hledat:

Invia.cz Last minute Tunisko Dovolená v Chorvatsku Pojeďte do Egypta Bulharsko Vydělávejte peníze s INVIA.CZ
 

Simple DirectMedia Layer

Simple DirectMedia Layer (SDL) je multiplatformní multimediální knihovna poskytující nízkoúrovňový přístup na audio, klávesnici, joystick, 2D počítačovou grafiku a 3D hardware přes OpenGL. Napsaná je v jazyce C, nicméně existuje řada wrapperů například pro jazyky Java, Delphi, Python, Perl a další. Současná verze 1.2 pro Microsoft Windows využívá knihovnu DirectX verze 7. Samotná knihovna obsahuje jen základní věci, na vše ostatní jsou potřebné doplňující knihovny (SDL_image, SDL_ttf, SDL_net, SDL_Sound, SDL_Mixer, smpeg a další).

Obsah

[editovat] Historie

Sam Lantinga vytvořil knihovnu běhěm svých prací pro Loki Software. Nápad dostal při portování Windows aplikace na Macintosh. SDL poté použil pro port Doomu na BeOS. Se SDL spolupracuje i několik dalších svobodných knihoven, jako například SMPEG a OpenAL.

Knihovna SDL je propojitelná s téměř libovolným existujícím programovacím jazykem, od populárních C++, Perl, Python (skrze pygame), Pascal, atd. k méně známým, jako například Euphoria, či Pliant. Toto společně s faktem, že SDL je software s otevřeným zdrojovým kódem a licencované pod LGPL činí SDL obvyklou volbou pro mnoho multimediálních aplikací.

SDL samotné je velmi jednoduché; funguje jako tenký multiplatformní wrapper poskytující podporu pro 2D operace s pixeli, zvuk, přístup k souborům, zpracování událostí, časování, vlákna atd. Je často použitá jako doplněk OpenGL k nastavení grafického výstupu a poskytnutí vstupu z klávesnice a myši, což je za předmětem zájmu OpenGL.

[editovat] Architektura

SDL má ve svém názvu slovo "layer" (vrstva) proto, že je to ve skutečnosti wrapper nad funkcionalitou specifickou pro konkrétní operační systém.

Na platformách s X11 používá SDL Xlib pro komunikaci s X11 systémem pro grafiku a události.

Na Mac OS X používá SDL Quartz.



[editovat] Příklad v jazyce C - Inicializace videa

Základ je vložit SDL.h, tato knihovna obsahuje hlavní funkce SDL. Protože budeme inicializovat video => budeme používat backbuffer, k tomuto účelu slouží v SDL ukazatel Screen na SDL_Surface. V samotné funkci nejdříve zkontrolujeme, jestli lze video inicializovat, pokud ne, vypíšeme chybu do stderr, což je už automaticky vytvořený stream pro zápis chyb. Do ukazatele Screen vložíme všechna nastavení našeho okna, tedy šířku, výšku, barevnou hloubku a příznaky (lze kombinovat pomocí |), pokud se inicializace nezdařila, vypíšeme chybu.

#include <SDL.h> 
 
typedef enum{false, true} BOOL; 
 
SDL_Surface * Screen; 
 
BOOL InitVideo(Uint16 ScreenWidth, Uint16 ScreenHeight, Uint32 Flags, Uint16 ColorDepth) 
{
        if(SDL_Init(SDL_INIT_VIDEO) != 0)
        {
                fprintf(stderr, "Nepodařilo se inicializovat SDL: %s\n", SDL_GetError());
                return false;
        }
        Screen = SDL_SetVideoMode(ScreenWidth, ScreenHeight, ColorDepth, Flags);
        if(!Screen)
        {
                fprintf(stderr, "Nepodařilo se nastavit video mód: %s\n", SDL_GetError());
                return false;
        }
}



[editovat] Externí odkazy

 
Simple DirectMedia Layer v jiných jazycích: Català, Deutsch, English, Español, Suomi, Français, Magyar, Bahasa Indonesia, Italiano, 日本語, 한국어, Nederlands, ‪Norsk (bokmål)‬, Polski, Português, Русский, Slovenčina, Svenska, Tiếng Việt, 中文
Tento článek je převzat z české wikipedie - otevřené encyklopedie, originální článek naleznete na adrese: „http://cs.wikipedia.org/wiki/Simple_DirectMedia_Layer
Stránka byla naposledy upravena v Stránka byla naposledy editována 23. 8. 2008 v 11:33.
Veškerý text je dostupný za podmínek GNU Free Documentation License (Autorské právo pro podrobnosti).
Další služby: Portál | Katalog | Hledej | Zprávy | Počasí | Kurzy | Práce | Slovník | TV | Online hry | Java hry | SMS | Loga a melodie | Chat | Fórum | Kontakt