Använda XAML med holografiska DirectX-appar

Anteckning

Den här artikeln handlar om äldre inbyggda WinRT-API:er. För nya interna appprojekt rekommenderar vi att du använder OpenXR-API:et.

Det här avsnittet beskriver effekten av att växla mellan 2D XAML-vyer och fördjupade vyer i Din DirectX-app och hur du effektivt använder både en XAML-vy och en fördjupad vy.

Översikt över XAML-vyväxling

På HoloLens måste en fördjupad app som senare kan visa en 2D XAML-vy initiera XAML-vyn först och omedelbart växla till en fördjupad vy därifrån. XAML läses in innan din app kan göra något, vilket ger en liten ökning av starttiden. XAML fortsätter att uppta minnesutrymme i din appprocess medan det finns kvar i bakgrunden. Mängden startfördröjning och minnesanvändning beror på vad din app gör med XAML innan den växlar till den inbyggda vyn. Om du inte gör något i XAML-startkoden först förutom att starta den fördjupade vyn bör effekten vara mindre. Eftersom den holografiska återgivningen görs direkt till den fördjupade vyn undviker du dessutom XAML-relaterade begränsningar för återgivningen.

Minnesanvändningen räknas för både CPU och GPU. Direct3D 11 kan växla virtuellt grafikminne, men det kanske inte går att växla ut några eller alla XAML GPU-resurser, och det kan uppstå en märkbar prestandaträff. Hur som helst, att inte läsa in några XAML-funktioner som du inte behöver ger mer utrymme för din app och ger en bättre upplevelse.

Arbetsflöde för XAML-vyväxling

Arbetsflödet för en app som går direkt från XAML till integrerande läge ser ut så här:

  • Appen startar i 2D XAML-vyn.
  • Appens XAML-startsekvens identifierar om det aktuella systemet stöder holografisk återgivning:
  • I så fall skapar appen den integrerande vyn och tar den till förgrunden direkt. XAML-inläsning hoppas över för allt som inte behövs på Windows Mixed Reality enheter, inklusive renderingsklasser och tillgångsinläsning i XAML-vyn. Om appen använder XAML för tangentbordsindata bör den indatasidan fortfarande skapas.
  • Annars kan XAML-vyn fortsätta som vanligt.

Tips för att återge grafik i båda vyerna

Om din app behöver implementera viss rendering i DirectX för XAML-vyn i Windows Mixed Reality är det bästa valet att skapa en renderare som kan fungera med båda vyerna. Återgivningen ska vara en instans som kan nås från båda vyerna, och den bör växla mellan 2D och holografisk återgivning. På så sätt läses GPU-tillgångar bara in en gång, vilket minskar inläsningstiderna, minnespåverkan och mängden växlade resurser vid växling av vyer.