Silverlight 5 RCが登場。XNA互換APIの変更点は?
Silverlight 5 RCが登場しました。今回も3D周りのサポートのために加わったXNA互換APIに注目して、Silverlight 5 BetaからSilverlight 5 RCへの変更と新機能を見ておきたいと思います。
- Microsoft Silverlight 5 RC Tools for Visual Studio 2010 Service Pack 1
変更
DrawEventArgs
- DrawEventArgs.GraphicsDeviceプロパティは消え、GraphicsDeviceManager.Current.GraphicsDeviceプロパティを使うことになった。
新機能
エフェクト
Effectクラスおよび、「AlphaTestEffect」「BasicEffect」「DualTextureEffect」「EnvironmentMapEffect」「SkinnedEffect」クラスが追加された。
この機能は、Microsoft.Xna.Framework.Graphics.Extensions.dllアセンブリにある。
※Effectクラスは、シェーダ(HLSL)をまとめたエフェクト(.fx)を扱うクラス。
レンダーターゲット
XNAのRenderTarget2Dクラスに対応。
マルチサンプリング
RenderTarget2DとDrawingSurfaceでマルチサンプリングに対応する。
自作プログラムをRCへ移行してみました
「エフェクト」「レンダーターゲット」「マルチサンプル」が入ったようなので、Siliveright 5 RCでは、3D周りを構築するAPIとして、困ることはなくなったと思います。そこでひとまず、新機能はさておき、Beta段階で作成した自作プログラムに変更を加えて、Betaと同様の動作するようにしてみました。
「モデルビューア in Silverlight 5 Beta + XNA」を「モデルビューア in Silverlight 5 RC + XNA」へ
Betaのコードの主な変更箇所 | RC用への変更例 | 理由 |
---|---|---|
using Microsoft.Xna.Framework.Silverlight; | using System.Windows.Graphics; | Microsoft.Xna.Framework.Silverlight 名前空間の機能は、System.Windows.Xna.dll アセンブリになった。 |
GraphicsDeviceManager | 上記usingディレクティブの変更 | 上記により、Microsoft.Xna.Framework.Silverlight.GraphicsDeviceManagerクラスは、System.Windows.Xna.dll アセンブリのSystem.Windows.Graphics.GraphicsDeviceManagerクラスになった。 |
DrawEventArgs e; 〜 e.GraphicsDevice; | var graphicsDevice = GraphicsDeviceManager.Current.GraphicsDevice; 〜 | DrawEventArgsクラスからGraphicsDeviceプロパティは消え、GraphicsDeviceManager.Current.GraphicsDeviceプロパティを使うことになった。 |
IVertexType (自前実装) | Silverlight 5 (XNA)のものに変更 | IVertexTypeが定義されたので、自前の定義はコメントアウト。 |