PDC 2008 (10/28)

PDC 2008も2日目です。今日は2つのキーノートがありました。

最初のキーノートでは、Windows 7のデスクトップや機能、Windows 7用の API(C/C++: 2D用DirectXなど, .NET: Ribbonなど)、.NET Framework 4.0、Visual Studio 2010、Silverlight Toolkit、Office 14やOffice Web Application などたくさんの紹介やアナウンスがありました。

PDC08 003 PDC08 005

PDC08 006 PDC08 007

今日参加したセッションは以下の通りです。

  • Windows 7: Welcome to the Windows 7 Desktop
  • WPF Roadmap
  • Windows 7: Integrate with the Windows 7 Desktop
  • Windows 7: Writing Your Application to Shine on Modern Graphics Hardware

Windows 7: Welcome to the Windows 7 Desktop

Windows 7の新しいデスクトップ(特にタスクバー)を紹介していました。Windows Vistaのタスクバーを改善しました。スタートボタンのすぐ右のランチャーと実行中のアイコンが一緒になったような感じでしょうか。ゴールは「Early and Often」だそうです。タスクバーでより素早く起動と切り替えができるようにしたとのことです。タスクバーのアイコンは開発者が拡張できます、これについては後で書きます。アイコンが大きくなったのはMacを真似したわけじゃないと強調していました。これはランチセッションだったので、お昼ご飯を食べ損ねました(より正確にはバナナ2本のみ)。

PDC08 009

WPF Roadmap

まずWPF 3.0→3.5→3.5 SP1の話から始まり、WPF アプリケーションの Lawson's Smart Office や、Virtualizes のパフォーマンスが向上したというデモが行われました。そして WPF Tool Kit と  Configurator(Client Profile Configuration Designer)、Visual State Managerなどのリリースが紹介されました。WPF Ribbon Preview も紹介されましたが、私はまだダウンロードを見つけられません。https://windowsclient.net/wpf/ にもこれらの説明が載っています(英語)。

.NET Framework 4.0 & Visual Studio 2010でのWPFの強化も説明されました。もちろん DataGridVisual State Manager のようなWPF Toolkit の機能はサポートされますし、よりGPUを使ってスケーラブルにするということで、ピクセル シェーダ 3.0とか頂点シェーダ(?)という言葉があったようでした。

XAMLについては、読み書きできるAPIを用意し、VS10のXAML Designerでは、RAD Databinding, Auto Layout, Property Editing, Style Addなどを強化し、手での編集を減らすとのことです。もちろん Silverlight のXAMLも動作する(just work)と言っていました。

また、Windows 7用のコントロールとして、Touch & Multi-Touch, Taskbar, Common Dialog などが追加されます。Windows 7 には .NET Framework(4.0ではなく) 3.5 SP1 が搭載されます。

Multimedia Starter Kit (キーノートでもマルチタッチのデモなので使われた画像やビデオなどの表示アプリ)というのもアナウンスしていたと思うのですが、これもまだダウンロードが見つかりません。

PDC08 012 PDC08 016

Windows 7: Integrate with the Windows 7 Desktop

前述のタスクバー アイコンをアプリでカスタマイズする話です。

タスクバー アイコンを右クリックするとジャンプリストが表示されます。そこに表示されるリストの一部をアプリケーションでカスタマイズできます。そのためのインターフェイスとしてIShellItemsIShellLinksがあります。またアプリケーションはApplication ID(AppID)を明示的に宣言でき、それによって複数のアプリなどを1つのグループにまとめることができます。

アプリが実行中のときはタスクバー アイコンにマウスオーバーするとサムネイルが表示されます。そのサムネールにボタンなどを付けるカスタマイズができます。例として出していたのは、ビデオプレイヤーのサムネイルにプレイ・ポーズなどのボタンを付けたものでした。それ以外にオーバーレイアイコン(通常のアイコンの右下に付加される小さなアイコン)や、プログレスバー(アイコンの背景がプログレスバーになる)、カスタムスイッチャーなどがあります。これらのためのインターフェイスとしてITaskbarList3インターフェイスが用意されました。SetOverlayIcon, SetProgressSty, RegistorTab, SetTabOrder... これらには Managed Wrapper が用意され、XAML でも記述できます。ただし、下位互換性はない(Vista や XP では使えない)ので、アプリ側でOSをチェックして使わないようにしてください。

Windows 7: Writing Your Application to Shine on Modern Graphics Hardware

DirectXの話です(!)。またHigh Color, High DPI への対応の話もありました。

まず、Windows 7 の Desktop Window Manager は Direct3D 10.1 を使って、グラス(半透明のWindow枠)のぼかしにシェーダを使い、Window のメモリー消費を50%削減したそうです。 Direct3D 10.1 はソフトウェア エミュレーションもあり、リモートでの動作もサポートされるとのことです。そういえばキーノートで、Windows 7 はメモリー消費を減らしたのでネットブックでもちゃんと動くと言ってました。

Direct3D 10 は Caps(D3D9以前では同じバージョンでもハードウェアによって使えない機能があるので、Caps と呼ばれるHWの能力をチェックするフラグがありました) もないし、DXGI のようなインフラAPIもあるのでゲーム以外のアプリにも使いやすいですよと宣伝してました(WPFが出た後では、今更遅いと思いますが...)。D3D 10の例としてDassault の 3DLive というアプリケーションがデモされました。これは OpenGL から D3D10 に移植したそうです。パフォーマンスを出すにはスケールを考慮し、描画ループにネットワークI/Oなどを入れないようにして、PIX でベンチマークするように。

Windows 7 用の新しい API として Direct2DDirectWrite が用意されました(C++ネイティブだけのAPI)。Windows UI、IE、Office でもこれらを使うようです。もちろんハードウェア アクセラレーションされますし、ソフトウェア エミュレーションもあります。Direct2D に含まれるのは、2D Vector, 2D Geometry, Bitmap, Text です。またD3DやGDIとのインターオペラビリティがあり、XPS 経由で印刷もサポートされています。DirectWrite はテキスト表示(ClearType)のための API であり、Direct2D 経由でハードウェア アクセラレーションされます。D2D/D3D, DirectWrite/D2D, DX/GDI などのインターオペラビリティは高速になるよう設計されています。

PDC08 017

Windows 7 では、High Color として 10bpc SRGB, 10bpc XR, 16bpcHDR がサポートされます。High DPI のために DPI Virutualization(Vistaにもある)が用意されます。またDynamic System Change のために(例えばUSBディスプレイ、ノートPCのドッキング)、WM_DISPLAYCHANGED イベントが追加されました。

Direct3D 11 は D3D9, D3D10, D3D11 のハードウェアで動作すると言ってました(本当かな?)。Direct3D 11 ではマルチスレッド、テセレーション、シェーダのサブルーチン、コンピュート シェーダ(画像処理などに向く)などがサポートされます。

会場を出ると、隣のStaples Centerでバスケットの試合が始まるところでした。

PDC08 018

このブログはマイクロソフトの公式アナウンスではありません。

[追記] Channel9 へのリンクを追加しました。