Použití XAML s holografickými aplikacemi DirectX

Poznámka

Tento článek se týká starších nativních rozhraní API WinRT. Pro nové projekty nativních aplikací doporučujeme použít rozhraní API OpenXR.

Toto téma vysvětluje dopad přepínání mezi 2D zobrazeními XAML a imerzivními zobrazeními v aplikaci DirectX a vysvětluje, jak efektivně využívat zobrazení XAML i imerzivní zobrazení.

Přehled přepínání zobrazení XAML

V HoloLensu musí imerzivní aplikace, která může později zobrazit 2D zobrazení XAML, nejprve inicializovat toto zobrazení XAML a okamžitě odsud přepnout do imerzivního zobrazení. XAML se načte dřív, než vaše aplikace něco dokáže, což jen o něco zvýší čas spuštění. XAML bude i nadále zabírat paměťový prostor v procesu aplikace, dokud zůstane na pozadí. Množství zpoždění při spuštění a využití paměti závisí na tom, co vaše aplikace dělá s XAML před přepnutím do nativního zobrazení. Pokud ve spouštěcím kódu XAML nejprve neprovedete nic kromě spuštění imerzivního zobrazení, měl by to mít malý dopad. Vzhledem k tomu, že se holografické vykreslování provádí přímo do imerzivního zobrazení, vyhnete se všem omezením souvisejícím s XAML pro toto vykreslování.

Počet využití paměti pro procesor i GPU. Rozhraní Direct3D 11 může prohodit virtuální grafickou paměť, ale nemusí být schopné prohodit některé nebo všechny prostředky XAML GPU a může dojít ke znatelnému snížení výkonu. Ať tak či onak, nenačte žádné funkce XAML, které nepotřebujete, zůstávejte pro vaši aplikaci více místa a získáte lepší prostředí.

Pracovní postup přepínání zobrazení XAML

Pracovní postup pro aplikaci, která přechází přímo z XAML do imerzivního režimu, vypadá takto:

  • Aplikace se spustí v 2D zobrazení XAML.
  • Spouštěcí sekvence XAML aplikace zjistí, jestli aktuální systém podporuje holografické vykreslování:
  • Pokud ano, aplikace vytvoří imerzivní zobrazení a hned ho přenese do popředí. Načítání XAML se přeskočí pro všechno, co není na Windows Mixed Reality zařízeních nezbytné, včetně všech tříd vykreslování a načítání prostředků v zobrazení XAML. Pokud aplikace používá pro zadávání pomocí klávesnice XAML, měla by se tato vstupní stránka přesto vytvořit.
  • Pokud ne, může zobrazení XAML pokračovat obvyklým způsobem.

Tip pro vykreslování grafiky v obou zobrazeních

Pokud vaše aplikace potřebuje implementovat určité množství vykreslování v rozhraní DirectX pro zobrazení XAML v Windows Mixed Reality, je nejlepší vytvořit jeden renderer, který bude fungovat s oběma zobrazeními. Vykreslovací modul by měl být jednou instancí, která je přístupná z obou zobrazení, a měl by přepínat mezi 2D a holografickým vykreslováním. Díky tomu se prostředky GPU načtou jenom jednou, což snižuje dobu načítání, dopad na paměť a množství prohozených prostředků při přepínání zobrazení.