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í OPENXR API.

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 HoloLens musí asistivní aplikace, která může později zobrazit 2D zobrazení XAML, nejprve toto zobrazení XAML inicializovat a okamžitě přepnout na imerzivní zobrazení. Xaml se načte dříve, než vaše aplikace může cokoli udělat, což zvýší dobu spuštění. XAML bude i nadále zabírat místo v paměti v procesu aplikace, zatímco zůstává na pozadí. Velikost zpoždění 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 nic nesnídáte s výjimkou spuštění imerzivního zobrazení, měl by to mít menší dopad. Vzhledem k tomu, že holografické vykreslování se provádí přímo v imerzivním zobrazení, vyhnete se tomuto vykreslování jakýchkoli omezení souvisejících s XAML.

Využití paměti se počítá 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 se zobrazit znatelný výkon. V každém případě nenačítáte žádné funkce XAML, které nepotřebujete, takže vaše aplikace bude mít více místo a zajistí lepší prostředí.

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

Pracovní postup pro aplikaci, která přejde přímo z XAML do imerzivního režimu, je následující:

  • Aplikace se spustí v zobrazení 2D 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í Windows Mixed Reality zařízeních, včetně všech vykreslovaných tříd a načítání prostředků v zobrazení XAML. Pokud aplikace používá XAML pro vstup z klávesnice, měla by se tato vstupní stránka přesto vytvořit.
  • Pokud ne, může zobrazení XAML pokračovat v práci jako obvykle.

Tip pro vykreslení grafiky napříč oběma zobrazeními

Pokud vaše aplikace potřebuje implementovat určité množství vykreslování v DirectX pro zobrazení XAML v Windows Mixed Reality, je nejlepší vytvořit jeden renderer, který může pracovat s oběma zobrazeními. Renderer by měl být jedna instance, ke které je možné přistupovat 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čítá jenom jednou, což zkracuje dobu načítání, dopad na paměť a množství prohoděných prostředků při přepínání zobrazení.