XAML használata holografikus DirectX-alkalmazásokkal

Megjegyzés

Ez a cikk az örökölt WinRT natív API-kkal kapcsolatos. Új natív alkalmazásprojektek esetén az OpenXR API használatát javasoljuk.

Ez a témakör ismerteti a 2D XAML-nézetek és a Modern nézetek közötti váltás hatását a DirectX-alkalmazásban, valamint azt, hogy hogyan lehet hatékonyan használni az XAML-nézetet és a modern nézetet.

XAML-nézetváltás áttekintése

A HoloLensben egy modern alkalmazásnak, amely később megjeleníthet egy 2D XAML-nézetet, először inicializálnia kell ezt az XAML-nézetet, és onnan azonnal át kell váltania egy modern nézetre. Az XAML betöltődik, mielőtt az alkalmazás bármit meg tud tenni, ami kis mértékben növeli az indítási időt. Az XAML továbbra is helyet foglal az alkalmazásfolyamatban, amíg a háttérben marad. Az indítási késleltetés és a memóriahasználat mennyisége attól függ, hogy az alkalmazás mit végez az XAML-sel, mielőtt a natív nézetre váltana. Ha először semmit sem tesz az XAML indítási kódjában, kivéve a modern nézet elindítását, a hatásnak kisebbnek kell lennie. Mivel a holografikus renderelés közvetlenül a modern nézetben történik, elkerülheti az XAML-hez kapcsolódó korlátozásokat a megjelenítésre vonatkozóan.

A memóriahasználat a CPU-hoz és a GPU-hoz is számít. A Direct3D 11 képes felcserélni a virtuális grafikus memóriát, de előfordulhat, hogy nem tudja felcserélni az XAML GPU-erőforrások egy részét vagy egészét, és észrevehető teljesítménybeli találatok jelenhetnek meg. Ha nem tölt be olyan XAML-funkciókat, amelyekre nincs szüksége, több helyet hagy az alkalmazásnak, és jobb élményt nyújt.

XAML-nézetváltási munkafolyamat

Egy olyan alkalmazás munkafolyamata, amely közvetlenül az XAML-ből a modern módba kerül, a következőhöz hasonló:

  • Az alkalmazás 2D XAML nézetben indul el.
  • Az alkalmazás XAML indítási sorozata észleli, hogy az aktuális rendszer támogatja-e a holografikus renderelést:
  • Ha igen, az alkalmazás létrehozza a magával ragadó nézetet, és azonnal az előtérbe helyezi. Az XAML-betöltés minden olyan esetben kimarad, ami nem szükséges Windows Mixed Reality eszközökön, beleértve a renderelési osztályokat és az eszközbetöltést az XAML nézetben. Ha az alkalmazás XAML-t használ a billentyűzetbemenethez, a beviteli oldalt továbbra is létre kell hozni.
  • Ha nem, az XAML nézet a szokásos módon folytathatja az üzleti munkát.

Tipp a grafikus elemek mindkét nézetben való megjelenítéséhez

Ha az alkalmazásnak bizonyos mennyiségű renderelést kell implementálnia a DirectX-ben az XAML-nézethez a Windows Mixed Reality, a legjobb megoldás, ha létrehoz egy renderelőt, amely mindkét nézettel használható. A renderelőnek egy olyan példánynak kell lennie, amely mindkét nézetben elérhető, és 2D és holografikus renderelés között kell váltania. Így a GPU-eszközök csak egyszer töltődnek be, ami csökkenti a betöltési időt, a memóriahatást és a felcserélt erőforrások mennyiségét a nézetek váltásakor.