Informace o Direct2D
Toto téma představuje rozhraní API Direct2D, které vývojářům Win32 umožňuje provádět 2D úlohy vykreslování grafiky s vynikající kvalitou výkonu a vizuální kvality.
Co je Direct2D?
Direct2D je hardwarově akcelerované 2D grafické rozhraní API s okamžitým režimem, které poskytuje vysoce výkonné a vysoce kvalitní vykreslování pro 2D geometrii, rastrové obrázky a text. Rozhraní API Direct2D je navržené pro spolupráci s existujícím kódem, který používá rozhraní GDI, GDI+ nebo Direct3D.
Direct2D je určen především pro použití následujícími třídami vývojářů:
- Vývojáři rozsáhlých, podnikových nativních aplikací.
- Vývojáři, kteří vytvářejí řídicí sady nástrojů a knihovny pro spotřebu podřízenými vývojáři.
- Vývojáři, kteří vyžadují vykreslování 2D grafiky na straně serveru
- Vývojáři, kteří používají grafiku Direct3D a potřebují jednoduché, vysoce výkonné vykreslování 2D a textu pro nabídky, prvky uživatelského rozhraní (UI) a Heads-up displeje (HUD).
Proč Direct2D?
Mezi hlavní motivace pro vytvoření nového 2D grafického rozhraní API v Systému Microsoft Windows patří následující:
- Chcete-li držet krok s rostoucí úrovní vizuální bohatosti, na kterou jsou uživatelé Windows zvyklí.
- Aby vývojáři mohli psát 2D kód vykreslování, který se škáluje přímo s hardwarem pro zpracování grafiky počítače, na kterém běží.
- Aby vývojáři mohli psát kód pro vykreslování 2D grafiky, která může běžet v kontextu služby.
V posledních letech začali koncoví uživatelé očekávat větší vizuální věrnost v digitálních prostředích. Tento trend se odráží v spotřební elektronikě. GPS zařízení, zařízení pro přehrávání médií, mobilní telefony a digitální fotoaparáty poskytují konzistentně bohatší prostředí rok po roce. Tento trend lze také vidět v rozmanitosti grafického obsahu ve filmu, televizi, videohrách a na webu. Aby vývojáři drželi krok s těmito změnami, jsou neustále žádáni, aby své stávající aplikace pro Windows povýšili na vyšší úroveň vizuálního bohatství.
Grafické procesory v moderních počítačích s Windows se také neustále vyvíjejí, a to díky pokrokům v grafice videoher a funkcím Windows, jako jsou Windows Media Center a Aero. Některé aplikace pro Windows můžou využívat moderní grafické procesory pomocí rozhraní Microsoft Direct3D a Windows Presentation Foundation (WPF). I když Direct3D obsluhuje vysoce komplexní 3D grafické aplikace a WPF řeší potřeby vývojářů .NET, existují mezery pro vývojáře, kteří mají velké existující základy kódu vykreslování založené na GDI a GDI+ nebo kteří chtějí do svých aplikací založených na Direct3D začlenit vysoce kvalitní 2D grafiku.
Potřeba grafického rozhraní API, které je možné použít ve službě, se nakonec stává nově vznikajícím požadavkem pro vývojáře pracující ve scénářích podnikového a webového vývoje. Stávající vykreslovací rozhraní API se zaměřují na vykreslování na straně klienta v jedné uživatelské seanci. V takovém případě můžou při použití v kontextu služby zkrachovat v oblastech robustnosti a škálovatelnosti. K vyřešení tohoto řešení se vyžaduje nové rozhraní API.
Vysoký výkon s maximální dostupností
Direct2D je knihovna uživatelského režimu, která je vytvořená pomocí rozhraní API Direct3D 10.1. To znamená, že aplikace Direct2D využívají hardwarově akcelerované vykreslování v moderních běžných grafických procesorech. Hardwarová akcelerace se také dosahuje na starším hardwaru Direct3D 9 pomocí vykreslování Direct3D 10 úrovně 9. Tato kombinace poskytuje vynikající výkon na grafickém hardwaru na stávajících počítačích s Windows.
Poznámka
Počínaje Windows 8 se Direct2D sestavuje pomocí rozhraní API Direct3D 11.1.
Následující diagram znázorňuje vrstvenou architekturu Direct2D.
Pro scénáře, kdy použití hardwarové akcelerace není možné, direct2D obsahuje vysoce výkonný softwarový rasterizátor. Při softwarovém vykreslování mají aplikace, které používají Direct2D, výrazně lepší výkon vykreslování než u GDI+ a podobnou vizuální kvalitu. Rastrovač softwaru je také určen pro použití v kontextu služby.
Obsah vykreslený pomocí Direct2D lze také vzdáleně zobrazit pomocí infrastruktury protokolu RDP (Remote Desktop Protocol) v operačním systému Windows 7. Vývojáři můžou vybrat, jestli vykreslování zpracovává GPU na počítači pro zobrazení, nebo jestli se místně vykresluje a přenáší jako rastrové obrázky. Tuto volbu lze provést na základě požadované rychlosti výplně a množství grafických primitiv, které se vykreslují. Pokud je v počítači zobrazení spuštěn operační systém starší než Windows 7, vzdálené vykreslování zobrazení se provádí přenosem rastrových obrázků přes síť.
Poskytnutím jednoho rozhraní API, které kombinuje výkon Direct3D a vysokou dostupnost tím, že poskytuje záložní software, vzdálenou plochu a vykreslování služeb, direct2D umožňuje vývojářům mít jednu implementaci pro vykreslování s vysokým výkonem v mnoha různých scénářích.
Vizuální kvalita
Aplikace, které používají Direct2D pro grafiku, můžou poskytovat vyšší kvalitu vizuálu, než je možné dosáhnout pomocí GDI. Direct2D používá primitivní antialiasing k zajištění plynulejších křivek a čar v vykresleném obsahu. Při vykreslování 2-D primitiv je k dispozici také úplná podpora průhlednosti a prolínání alfa kanálů. Následující obrázky porovnávají aliasovaný obsah vykreslený pomocí GDI (vlevo) s antialiased obsahem vykresleným Direct2D (vpravo).
Vývojáři mohou určit aliasované vykreslování vektorové grafiky. To se používá ve scénářích, kdy se vyžaduje přichycení k pevným hranicím pixelů, například prvků uživatelského rozhraní, jako jsou ukazatele nebo pravítka, pokud se musí shodovat styl GDI výstupu nebo pokud se antialiasing provede v procesu vykreslování prostřednictvím funkce Multisample Antialiasing nebo jiného mechanismu.
Interoperabilita
Integrace vykreslování založeného na Direct2D je pro vývojáře snazší díky interoperabilitě na úrovni povrchu s GDI a Direct3D. Aplikace, které vykreslují obsah primárně pomocí rozhraní GDI, GDI+ nebo Direct3D, můžou začít pomocí Direct2D vykreslovat konkrétní oblasti aplikace a v průběhu času přejít na model, ve kterém se vykreslování provádí primárně prostřednictvím Direct2D, pomocí rozhraní GDI primárně pro moduly plug-in nebo starší rozšiřitelnost.
Direct2D také usnadňuje použití rozhraní DirectWrite pro vysoce kvalitní text a pokročilé zobrazovací funkce Microsoft Windows Imaging Component (WIC).
Další informace o interoperabilitě Direct2D najdete v části Interoperabilita sady Direct2D SDK.
Shrnutí
Microsoft Direct2D umožňuje vývojářům vytvářet ve svých aplikacích 2D grafické funkce, které poskytují vylepšenou vizuální kvalitu oproti GDI, a charakteristiky výkonu, které se škálují pomocí moderních grafických procesorů. Model interoperability Direct2D umožňuje vývojářům selektivně migrovat části své aplikace současně s GDI, GDI+ nebo direct3D vykreslováním.
Související témata
-
Rychlý úvod do Direct2D pro Windows 8