Graphics Device Interface

komponenta Microsoft Windows pro vykreslování na výstupní zařízení (obrazovky, tiskárny)
(přesměrováno z GDI)

Graphics Device Interface (zkráceně GDI či někdy nazýváno jako Graphical Device Interface) je spolu s kernelem a uživatelským rozhraním jednou ze tří hlavních součástí operačního systému Microsoft Windows. Graphics Device Interface slouží k reprezentaci grafických objektů a jejich transformací do výstupních zařízení jako jsou monitory či tiskárny. Ve Windows XP je k dispozici vylepšená verze GDI, GDI+.

GDI má na starosti úlohy jako je kreslení čar a křivek, rendrování fontů a zacházení s barevnými paletami. Není přímo zodpovědný za vykreslování oken, menu, atd. - to je vyhrazeno pro uživatelský subsystém, který se nachází v knihovně user32.dll a je na GDI postavený. GDI je podobný QuickDraw od Apple.
Pravděpodobně nejvýznamnější vlastností GDI, kromě metody přímého přístupu k hardware, je vlastnost Scaling a čerpání z cílového zařízení. S použitím GDI je velmi snadné kreslit a tisknout na více zařízeních, jakými jsou například obrazovka a tiskárna, a na každém, z těchto zařízení můžeme očekávat správnou reprodukci. Tato vlastnost je centrem celého WYSIWYGu, aplikací pro Microsoft Windows.
GDI využívají jednoduché hry, jako například FreeCell a miny, které nepotřebují rychlé vykreslování. GDI není schopno důkladně animovat a postrádá 3D vykreslování. Moderní hry používají DirectX nebo OpenGL, které umožňují programátorům lepší přístup k hardwarovým vlastnostem.

GDI Tiskárny editovat

Winprinter je tiskový procesor, který používá software ke zpracování tisku namísto toho, aby ho zpracovávala tiskárna. Pracuje tak, že rendruje obrázky do bitmap na uživatelově počítači a pak je posílá do tiskárny.

To umožňuje výrobcům tiskáren vyrábět i levnější tiskárny, protože o složení celé stránky se postará software počítače a ne hardware tiskárny. Obvykle však tyto tiskárny nepodporují PostScript a používají ovladače, založené na Unidrv. Winprinter používá GDI k přípravě výstupu, z toho důvodu se jim také často říká GDI tiskárny. Levnější modely laserových tiskáren jsou GDI zařízení. Většina výrobců nabízí i flexibilnější modely, které mají přidanou PCL kompatibilitu, PostScript, nebo obojí. Většinou je jen velmi málo modelů, které jsou „GDI-only“.

Technické detaily editovat

Device context (DC) je používán k definování atributů textu a obrázků, které jsou zobrazovány na obrazovce nebo tisknuty tiskárnou. Aktuální kontext udržuje GDI. DC, které nastavuje strukturu, je získáno před výstupem a je zapisován a uvolňován po částech, tak jak byly zapsány.

DC, jako většina GDI objektů, je nepropustný, nepřistupuje k datům přímo, můžeme je předat funkcím, které tato data zpracují, buď ke kreslení něčeho, ke zjištění informace o něčem, nebo ke změně objektu nějakým způsobem.

GDI+ editovat

S příchodem Windows XP, bylo GDI kritizováno a tak se v C++ založil nový subsystém GDI+. GDI+ má vylepšené 2D grafické prostředí, dále funkce jako 2D Anti-aliasing, koordinaci pomocí plovoucí čárky, alpha blending, gradiální stínování, komplexnější správu, podporu moderních grafických formátů jako JPEG a PNG (které v předchozí verzi GDI viditelně chyběly) a hlavně podporu pro skládání afinní transformace v 2D zobrazení. Užití těchto rysů je viditelné v uživatelském rozhraní Windows XP a jejich přítomnost v základní grafické vrstvě Windows XP velmi zjednodušilo implementaci vektorové grafiky (například Flash nebo SVG). Dynamická knihovna GDI+ je dodávána s spolu aplikacemi a dá se použít pod staršími verzemi Windows. GDI+ je podobné (účelem a strukturou) Apple Quartz 2D, nebo cairo.

GDI+ zranitelnost editovat

V září roku 2004 bylo zjištěno, že GDI+ a další API grafické rozhraní nebyly chráněné před zneužitím, souviselo to s vadou v JPEG knihovně. Tato vada umožňovala případnému narušiteli spustit kód na každém systému, který zobrazil jejich JPEG obrázky nástrojem, který používal dekodér v GDI+.

GDI a GDI+ aplikace ve Windows Vista editovat

Počínaje Windows Vista, všechny aplikace pro Windows včetně GDI a GDI+ aplikací běží v nově vytvořeném enginu a nejsou hardwarově akcelerovány. Nicméně, díky povaze složení plochy (vnitřní řízení pohybu bitmap, průhlednosti a anti-aliasingu GDI+ jsou ovládány DWM jádrem), mohou být operace jako pohyby a zvětšování oken rychlejší a mít lepší odezvu, protože podklad oken nemusí být přerendrováván.

Reference editovat

V tomto článku byl použit překlad textu z článku Graphics Device Interface na anglické Wikipedii.

Související články editovat

Externí odkazy editovat