官术网_书友最值得收藏!

Inside the AppView class

The AppViewSource.cs and AppView.cs files contain the AppViewSource and AppView classes, respectively. These are the boilerplate code files that launch our scene in the app. AppViewSource is used in Program.cs, and all it does is start a new AppView. AppView is where most of the Holographic magic happens.

The following are the five different things this AppView class does:

  • Housekeeping: The constructor and the Dispose() method live here. The code needs to be IDisposable since most DirectX-based code is unmanaged. This means we need to clean things up when needed.

  • IFrameworkView members: IFrameworkView is the interface DirectX uses to draw its contents to. This contains the methods to load resources, run the view, and set a window that receives the graphics, and so on.

  • Application Lifecycle event handlers: If you have developed Store apps before, you will recognize these; this is where we handle suspension, reactivating, and other lifecycle events.

  • Window event handlers: Next to the lifecycle events, there are some other events that can occur during runtime: OnVisibilityChanged and OnWindowClosed can happen. This is where they are handled.

  • Input event handler: I mentioned before that you can hook up a Bluetooth keyboard to the device. If you do that, the user can press keys on that keyboard and you need to handle those. This is where that part is done. I would recommend against using this in normal scenarios. People walking around with a HoloLens will not normally carry a keyboard with them. However, in certain use cases, this might be desirable.

In the IFrameworkView.Initialize method, the app creates a new instance of the HelloHoloWorldMain class. This class is where our custom code is placed, so basically this is our entry point. The rest can be considered as boilerplate code, stuff the app needs to do anything at all.

In the following chapters, we will adapt this class heavily, but for now I want to show you another way to create HoloLens apps that will give you much nicer results much more easily. We will start to use Unity3D.

主站蜘蛛池模板: 乐昌市| 衢州市| 广东省| 道孚县| 古交市| 尚义县| 宁晋县| 大关县| 莱州市| 黄山市| 泉州市| 翁牛特旗| 务川| 晋中市| 高雄县| 黄浦区| 勃利县| 博罗县| 辽源市| 那曲县| 利辛县| 安新县| 米易县| 深州市| 萝北县| 白银市| 辽宁省| 溆浦县| 张家川| 苗栗市| 滁州市| 池州市| 湟源县| 赣榆县| 浦东新区| 应城市| 扶风县| 宝鸡市| 雷山县| 甘肃省| 海口市|