MAC OS X je taky unix (6): Multimediální technologie podruhé

9. 6. 2005
Doba čtení: 6 minut

Sdílet

Minulým dílem jsme začali pronikat do multimediálních technologií Mac OS X, do technologií zvukových, grafických i kombinovaných. Ukázali jsme si některé základní systémové knihovny, na kterých podpora multimédií na Macu stojí a padá, a dnes se podíváme na zbytek těch nejdůležitějších. Krom toho probereme i aktuální dění okolo Apple – uvolnění WebKitu pod GNU GPL.

OpenGL

Grafická knihovna OpenGL je na většině operačních systémů implementována převážně výrobcem grafického hardware; Apple ale s firmami Ati a nVidia, které mu dodávají grafické karty na implementaci spolupracuje. V rámci této spolupráce výrobce karty připraví nejnižší úroveň ovladačů a firmware karty, ale veškerou návaznost na operační systém samotný řeší inženýři Apple. Tímto způsobem zniká jedinečná implementace, která na jedné straně nabízí stejnou verzi knihovny a podporu extensions a na straně druhé poskytuje systému nízkoúrovňovou kontrolu nad vším, co se děje s grafickým železem. Z tohoto důvodu a také díky plné integraci OpenGL do většiny grafických frameworků na Mac OS X plyne pro OpenGL na této platformě dvojice specifik; je extrémně jednoduché jej plně využít, a to i bez znalosti API, způsobu fungování knihovny a s minimálním vynaloženým úsilím, ale na druhou stranu platí uživatelé této platformy jistou cenu na výkonu nízkoúrovňových OpenGL aplikací, jako jsou například hry nebo profesionální 3D nástroje. Výměnou za tuto oběť cca 10% výkonu ve chvílích, kdy je grafická karta plně používána, získáte znatelný nárůst rychlosti a latence systému v situacích, kdy by na jiném systému nebyla vytížena vůbec a místo ní pracoval procesor.

Bohužel relativně nižší výkon spojený se slabšími grafickými kartami v některých modelech Maců se podepsal na výkonu náročných aplikací, zéjmena her. Ve spojení se špatnou optimalizací mnoha her pro Velocity Engine a architekturu PowerPC tak Apple ztrácí body jako herní platforma. Dá říct, že tady záleží na výrobci, do jaké míry svou aplikaci optimalizuje, a tak se můžeme například u profesionál­ního 3D studia Maya těšit perfektnímu výkonu, ale framerate Doom III vyloženě nepotěší. Dobrá zpráva je, že Apple si je této situace vědom a řeší ji. Nedávno oznámený přechod na Intel samozřejmě vyřeší problémy s optimalizací pro PowerPC architekturu a nově sestavený tým odborníků na OpenGL snad bude úspěšný ve své snaze optimalizovat applí implementaci této technologie. Navíc se zdá, že bychom se v nejbližší době mohli v Macích dočkat podstatně kvalitnějších grafických karet, takže se možná blýská na lepší časy.

Quartz & PDF

Formátem stojícím za vší grafickou aktivitou Mac OS X není nic jiného než právě Portable Dokument Format, univerzální a rozšiřitelný formát schopný obsáhnout prakticky jakoukoliv informaci od klasické bitmapy přes text až po vektory a 3D grafiku. V tomto bodě Mac OS X do jisté míry vychází z NeXTStepu, který pro všechny věci grafické používal PostScript, formát velmi podobný pokročilejšímu PDF. Implementace tohoto standardu je na Mac OS X obstarána technologií Quartz, která sestává z mnoha menších frameworků. Zde jsou dva nejdůležitější:

Quartz Composer, někdy také zvaný WindowServer, je server starající se především o vykreslování oken. Jednoduše řečeno je WindowServer zodpovědný za správu dat, která mu svěří jednotlivé aplikace, jejich umístění do jednoho PDF bufferu a zpřístupnění tohoto bufferu dalším programům. Quartz Composer sám žádné vykreslování neprovádí, pouze dokáže extrémně rychle generovat PDF výstup.

Quartz 2D je extrémně rychlý renderer PDF a PS formátů založený na službě CoreGraphics. Jedná se velmi pravděpodobně o nejrychlejší čtečku PDF souborů a má i nejširší podporu funkcí, z nichž některé dodnes neumí ani samotný Adobe Reader. Grafický výstup je navíc na systémech s více než 16 MB videoram hardwarově akcelerován pomocí OpenGL a knihovny Quartz Extreme, což umožňuje systému rozumně rozložit zátěž mezi procesor a grafickou kartu.

Díky použití PDF je Mac OS X prakticky jediný operační systém, který dnes obsahuje grafické prostředí na tak vysoké a navíc dále rozšiřitelné úrovni. Každé okno je samostatná vrstva, má vlastní alfa kanál a dají se na něj aplikovat (nejen) vektorové transformace, které se, mimochodem nepoužívají jenom na efektní minimalizaci. :) Samozřejmě, na rozdíl od ostatních grafických serverů má Quartz Composer v paměti obsah všech zobrazených oken a kdykoliv k nim poskytuje přístup, takže nikdy není vidět tolik typické překreslování obsahu, bílé obdélníky, okno a jiné grafické chyby, které s oblibou provádějí systémy bez neviditelných bufferů.

Mimochodem pomocí Quartz se samozřejmě dá v Mac OS X tvořit nebo vykreslovat jakýkoliv PDF soubor a výsledky, které dává Quartz Composer, jsou často o řád lepší než výstup z leckterého komerčního produktu, Adobe Acrobat nevyjímaje.

ColorSync

Jako skutečně pokročilý multimediální systém obsahuje Mac OS X pravděpodobně nejpokročilejší současný nástroj na správu barev. ColorSync byl původně navržen čistě pro počítače Macintosh, ale byl později přijat jako mezinárodní standard International Color Consortium, které Apple pomáhal založit. Díky této organizaci dnes existují tolik nepostradatelné ICC profily a Mac OS nabízí skutečně kvalitní podporu. V systému je zabudována správa barev na úrovni Quartz Composeru, který k vytvářenému PDF bufferu rovnou řadí i příslušně nakalibrovaný profil. Profily je možno tvořit v systému pomocí robustní sady nástrojů a referencí včetně modelových vykreslení deformace barevných modelů při proložení zvoleným profilem. Díky utilitě a frameworku ColorSync se dnes Mac OS X může chlubit nejlepší správou barev v dnešním grafickém průmyslu.

Aktuální dění okolo Apple – uvolnění WebKitu pod GNU GPL

V této části bych náš výklad na chvíli rád přerušil a na žádost šéfredaktora podal krátký výklad k nedávným událostem okolo technologie WebKit. Vezměme to tedy od mrtě věci a začněme prostým O co jde? Jak jistě mnoho čtenářů ví, když se Apple rozhodl vytvořit pro svůj systém vlastní webový prohlížeč, zvažoval mnoho closed i open source variant. Ačkoliv na pozice vývojářů najal některé z autorů mozillího jádra Gecko, bylo nakonec rozhodnuto použít v té době dosti nerozvinutý, ale zato čistý a přehledný engine khtml, součást KDE.

Jak se rozhodli, tak také učinili a z upraveného a vylepšeného khtml a kjs se po jistých úpravách a přidání některých technologií závislých na Mac OS X staly knihovny WebCore a JavaScript Core, které ještě spolu s jednoduchým Cocoa wrapperem tvoří Framework WebKit. Mnoho změn, které Apple provedl, bylo backportováno do mateřské větve khtml spravované vývojáři KDE, ale dlouhodobá bližší spolupráce se proti mnohým předpokladům nerozběhla a oba vývojářské týmy šly víceméně svojí cestou. To bylo před dvěma lety.

Díky LGPL licenci, pod kterou byly kjs a khtml uvolněny, Apple zpočátku ponechává svoje přidané technologie jako closed source a programátoři pracující na WebCore často řeší problémy nebo další vývoj vykreslovacího enginu na úrovni wrapperu, čímž komplikují život programátorům pracujícím na khtml. Navíc, zatímco vývojáři Applu mají plný přístup k repositáři khtml a vidí tak i CVS historii změn a jejich plné opodstatnění, sami poskytují zdrojové kódy pouze jako velký .diff a nedávají ke změnám ani plné vysvětlení. Přesto se autorům khtml podařilo backportovat mnohá vylepšení, která David Hyatt a jeho tým implementovali a uživatelé jsou spokojeni.

Když nedávno pan Hyatt ohlásil, že Safari je první prohlížeč, který projde testem Acid2, došla jednomu z vývojářů khtml trpělivost a na neustálé dotazy uživatelů na současný stav Acid2 a Konqueroru odpověděl rozčíleným příspěvkem, ve kterém kritizoval Apple za jeho korporační přístup k Open Source a ignorování komunity. Na tento blogpost do několika dní reagovala prakticky celá technicky vzdělaná veřejnost a během krátké doby byli vývojáři KDE Applem pozváni k otevřené diskusi přes video konferenci.

ict ve školství 24

Dnes (vlastně předevčírem), několik týdnů po konferenci, se Apple rozhodl vytvořit veřejné CVS s aktuálními zdrojovými kódy WebCore, JavaScriptCore a ostatních částí WebKitu, nově uvolněných pod LGPL licencí. Správa tohoto repositáře, stejně jako projektových stránek, byla přenechána organizaci OpenDarwin.org, která se už dlouho zabývá prací s unixovým podkladem Mac OS X, Darwinem a jeho jádrem XNU. Na stránkách je kromě CVS repositáře ještě návod, jak si zkompilovat prohlížeč, jak správně psát kód pro WebKit, a také veřejná Bugzilla.

Štastný konec? Tentokrát snad ano – Apple má poměrně milý zvyk čas od času uvolnit nějakou svou technologii jako OpenSource, ale rozhodně není žádný samaritán komunity. Jako každé komerční společnosti jde i Apple o vlastní zisk, ať už finanční, nebo dlouhodobý, a tento krok byl pravděpodobně učiněn ze snahy nenaštvat si komunitu. Dle mého názoru však alespoň ukazuje na flexibilitu této společnosti, která se nebojí přecházet mezi architekturami hardware i software a pořád si při tom zachovat vlastní styl.

Autor článku