Holographic の DirectX アプリでの XAML の使用Using XAML with holographic DirectX apps

このトピックでは、間の切り替えの影響を説明します。 2D の XAML ビューとビューの没入型、DirectX アプリでの XAML ビューと没入型のビューの両方を効率的に使用する方法。This topic explains the impact of switching between 2D XAML views and immersive views in your DirectX app, and how to make efficient use of both a XAML view and immersive view.

XAML ビューの概要の切り替えXAML view switching overview

、HoloLens の通常没入型のアプリが 2D の XAML ビューを後で表示される場合はその XAML ビューを最初に初期化し、そこから、没入型のビューをすぐに切り替える必要があります。On HoloLens, a generally immersive app that may later display a 2D XAML view must initialize that XAML view first and immediately switch to an immersive view from there. つまり、XAML は、アプリが操作を実行する前に読み込まれます。This means XAML will load before your app can do anything. その結果、起動時間を少し増やすがあり、XAML は引き続きバック グラウンド; であるときに、アプリのプロセスのメモリ領域を占有ネイティブ ビューに切り替える前に XAML は量起動時の遅延とメモリ使用量はどのようなアプリによって異なります。As a result, there will be a small increase in your startup time, and XAML will continue to occupy memory space in your app process while it resides in the background; the amount of startup delay and memory usage depends on what your app does with XAML before switching to the native view. Nothing は、XAML スタートアップ、没入型の表示の開始点を除いて、最初のコードでは、影響はマイナーになります。If you do nothing in your XAML start up code at first except start your immersive view, the impact should be minor. また、没入型のビューに直接、holographic、レンダリングが行われるために、そのレンダリングに XAML に関連する制限を適用が済みます。Also, because your holographic rendering is done directly to the immersive view, you will avoid any XAML-related restrictions on that rendering.

CPU と GPU の両方のメモリ使用量をカウントすることに注意してください。Note that the memory usage counts for both CPU and GPU. Direct3d11 が仮想のグラフィック メモリとスワップできるが、XAML の GPU のリソースの一部またはすべてを入れ替えることができない可能性があり、顕著なパフォーマンスに影響がある可能性があります。Direct3D 11 is able to swap virtual graphics memory, but it might not be able to swap out some or all of the XAML GPU resources, and there might be a noticeable performance hit. どちらの方法でも、XAML の機能が読み込まれていませんしない必要があります、アプリの複数の部屋のままにして優れたエクスペリエンスを実現します。Either way, not loading any XAML features you don't need will leave more room for your app and provide a better experience.

XAML ビューのワークフローの切り替えXAML view switching workflow

ワークフローがあるイマーシブ モードに XAML から直接移動するアプリのようになります。The workflow for an app that goes directly from XAML to immersive mode is like so:

  • 2D の XAML ビューで、アプリの起動時します。The app starts up in the 2D XAML view.
  • アプリの XAML の起動シーケンスでは、現在のシステムが holographic のレンダリングをサポートしているかを検出します。The app’s XAML startup sequence detects if the current system supports holographic rendering:
  • そうである場合、アプリは没入型のビューを作成し、すぐ、前面に表示します。If so, the app creates the immersive view and brings it to the foreground right away. レンダリング クラスおよび XAML ビューで読み込まれる資産を含む、Windows Mixed Reality デバイス上の何もないために必要な XAML 読み込みがスキップされます。XAML loading is skipped for anything not necessary on Windows Mixed Reality devices, including any rendering classes and asset loading in the XAML view. アプリはキーボード入力の XAML を使用している場合は、その入力ページを作成もする必要があります。If the app is using XAML for keyboard input, that input page should still be created.
  • それ以外の場合は、XAML ビューが通常どおりの業務を続行できます。If not, the XAML view can proceed with business as usual.

両方のビューで、グラフィックのレンダリングをヒントします。Tip for rendering graphics across both views

を、アプリが Windows Mixed Reality で XAML ビューの DirectX で一定のレンダリングを実装する必要がある場合、最善の方法では、両方のビューで動作する 1 つのレンダラーを作成します。If your app needs to implement some amount of rendering in DirectX for the XAML view in Windows Mixed Reality, your best bet is to create one renderer that can work with both views. レンダラーが両方のビューからアクセスできる 1 つのインスタンスにする必要があり、2 D および holographic の表示を切り替えることができるようにします。The renderer should be one instance that can be accessed from both views, and it should be able to switch between 2D and holographic rendering. 読み込み時間、メモリへの影響、およびビューを切り替えるときにスワップするリソースの量を減少この GPU 資産は 1 回のみ読み込むようにします。That way GPU assets are only loaded once - this reduces load times, memory impact, and the amount of resources to be swapped when switching views.