XAML gebruiken met holografische DirectX-apps

Notitie

Dit artikel heeft betrekking op de verouderde systeemeigen WinRT-API's. Voor nieuwe systeemeigen app-projecten raden we u aan de OpenXR-API te gebruiken.

In dit onderwerp wordt uitgelegd wat de impact is van het schakelen tussen 2D XAML-weergaven en insluitende weergaven in uw DirectX-app en hoe u efficiënt gebruik kunt maken van zowel een XAML-weergave als een insluitende weergave.

Overzicht van schakelen tussen XAML-weergaven

Op HoloLens moet een insluitende app die later mogelijk een 2D XAML-weergave weergeeft, eerst die XAML-weergave initialiseren en van daaruit onmiddellijk overschakelen naar een insluitende weergave. XAML wordt geladen voordat uw app iets kan doen, wat een kleine toename van uw opstarttijd toevoegt. XAML blijft geheugenruimte in uw app-proces in beslag nemen terwijl het op de achtergrond blijft. De hoeveelheid opstartvertraging en het geheugengebruik zijn afhankelijk van wat uw app met XAML doet voordat u overschakelt naar de systeemeigen weergave. Als u in eerste instantie niets in uw XAML-opstartcode doet, behalve het starten van uw insluitende weergave, moet de impact klein zijn. Omdat uw holografische rendering rechtstreeks naar de insluitende weergave wordt uitgevoerd, vermijdt u eventuele XAML-gerelateerde beperkingen voor die rendering.

Het geheugengebruik telt voor zowel CPU als GPU. Direct3D 11 kan virtueel grafisch geheugen wisselen, maar het kan mogelijk niet in staat zijn om sommige of alle XAML GPU-resources te verwisselen, en er kan een merkbare prestatietreffer zijn. Hoe dan ook, als u geen XAML-functies laadt die u niet nodig hebt, blijft er meer ruimte over voor uw app en krijgt u een betere ervaring.

Werkstroom voor schakelen tussen XAML-weergaven

De werkstroom voor een app die rechtstreeks van XAML naar de insluitende modus gaat, is als volgt:

  • De app wordt gestart in de 2D XAML-weergave.
  • De XAML-opstartvolgorde van de app detecteert of het huidige systeem holografische rendering ondersteunt:
  • Als dat het zo is, maakt de app de insluitende weergave en wordt deze direct op de voorgrond geplaatst. Het laden van XAML wordt overgeslagen voor alles wat niet nodig is op Windows Mixed Reality apparaten, met inbegrip van renderingklassen en het laden van assets in de XAML-weergave. Als de app XAML gebruikt voor toetsenbordinvoer, moet die invoerpagina nog steeds worden gemaakt.
  • Zo niet, dan kan de XAML-weergave gewoon blijven werken.

Tip voor het weergeven van afbeeldingen in beide weergaven

Als uw app een bepaalde hoeveelheid rendering in DirectX moet implementeren voor de XAML-weergave in Windows Mixed Reality, kunt u het beste één renderer maken die met beide weergaven kan werken. De renderer moet één exemplaar zijn dat toegankelijk is vanuit beide weergaven en moet schakelen tussen 2D en holografische rendering. Op deze manier worden GPU-assets slechts eenmaal geladen, wat de laadtijden, geheugenimpact en de hoeveelheid gewisselde resources vermindert bij het schakelen tussen weergaven.