XAML használata holografikus DirectX-alkalmazásokkal

Megjegyzés

Ez a cikk az örökölt WinRT natív API-kra vonatkozik. Az új natív alkalmazásprojektek esetében 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, hogyan lehet hatékonyan használni az XAML-nézetet és a modern nézetet is.

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

A HoloLens egy olyan modern alkalmazásnak, amely később egy 2D XAML-nézetet is megjeleníthet, először inicializálni kell ezt az XAML-nézetet, és azonnal át kell váltania egy modern nézetre. Az XAML betöltődik, mielőtt az alkalmazás bármit is képes lenne tenni, ami kicsivel megnöveli az indítási időt. Az XAML továbbra is lefoglal memóriaterületet az alkalmazásfolyamatban, amíg az a háttérben marad. Az indítási késleltetés és a memóriahasználat mértéke attól függ, hogy az alkalmazás mire használja az XAML-t, mielőtt átvált a natív nézetre. Ha először csak a modern nézetet indítja el az XAML indítási kódban, annak kisebbnek kell lennie. Továbbá, mivel a holografikus renderelés közvetlenül a modern nézetben történik, elkerülheti az XAML-re vonatkozó korlátozásokat.

A processzor és a GPU memóriahasználata is megszámol. A Direct3D 11 fel tudja cserélni a virtuális grafikus memóriát, de előfordulhat, hogy nem tudja kicserélni az XAML GPU-erőforrások egy vagy mindegyikét, és észrevehető teljesítmény-visszacsatolás is előfordulhat. Mindkét esetben a nem szükséges XAML-funkciók betöltése több helyet hagy az alkalmazásnak, és jobb élményt nyújt.

XAML nézetváltási munkafolyamat

Az XAML-ről a modern módba közvetlenül áttelő alkalmazások munkafolyamata a következő:

  • Az alkalmazás a 2D XAML nézetben indul el.
  • Az alkalmazás XAML indítási sorozata észleli, hogy a jelenlegi rendszer támogatja-e a holografikus renderelést:
  • Ha igen, az alkalmazás létrehozza a modern nézetet, és azonnal előtérbe hozza. Az XAML-betöltést a rendszer kihagyja minden olyan esetben, Windows Mixed Reality eszközön nem szükséges, beleértve a renderelési osztályokat és az eszközök betöltését az XAML nézetben. Ha az alkalmazás XAML-t használ a billentyűzettel való bevitelhez, ennek a beviteli lapnak is létre kell lennie.
  • Ha nem, az XAML-nézet a szokásos módon folytathatja a munkát.

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

Ha az alkalmazásnak valamilyen renderelést kell megvalósítania a DirectX-ban az Windows Mixed Reality XAML-nézetéhez, a legjobb megoldás egy olyan renderelő létrehozása, amely mindkét nézettel működik. A renderelőnek egy példánynak kell lennie, amely mindkét nézetből elérhető, és váltania kell a 2D és a holografikus renderelés között. Így a GPU-eszközök csak egyszer töltődik be, ami csökkenti a betöltési időt, a memóriára gyakorolt hatást és a felcserélett erőforrások mennyiségét a nézetek váltásakor.