DirectX 9.L will be a DirectX 10 for Windows XP ?

「がくっちの散財でいこう」より.

DirectX 9.L will be a DirectX 10 for Windows XP

WindowsVista専用のDirectX10ですが、WindowsXP用にDirectX9.Lというのを出すそうです

これはVista専用と言われたDX10を名前を変えてWindowsXPでも使えるようにしたものだそうです

DX10=DX9.Lということだそうです

まぎらわしいっすね(゚∀゚)

何かこう聞いたことあるテクノロジの名前を適当に組み合わせて電波記事書いてみました,という感じの記事が the Inquirer に載っていたので,某 Private News Group の方を覗いてみたら,案の定既にスレッドが出来ていて,DirectX MVP の面々から「誰かあのバカを止めろ(意訳)」「まあ the inquirer だし.マジメに受け取る奴いないんじゃね?(意訳)」とか散々書かれてて笑いました.
まあそういうことで.



MSDN Forums にもスレッドが.
Where does Directx 9L fit in?
なお,何故 DirectX 10 ではなく Direct3D 10 かについては,@IT の以下の記事のコラムで書きましたのであわせてどうぞ.
http://www.atmarkit.co.jp/fdotnet/directxworld/directxworld03/directxworld03_01.html


ってこれだと普段 DirectX 開発とかやっていない人は意味分からんか.
一応軽く説明しておくと,こんな感じ.

Direct3D 9

Windows 9x/Windows 2000/XP/2003 Serverで現在活躍中の DirectX 最新版.
ただし実質的にアップデートされているのは Direct3D 9 のみ.その Direct3D 9 は Windows 98/2000 時代に導入されたいわゆる WDM*1 と呼ばれるドライバモデルに依存している.ドライバレベルではわりと DirectDraw の呪いが沢山残っていたり.

Direct3D 9Ex / Direct3D 9.L / WGF 1.0

Windows Vista で導入される新しいドライバモデルである WDDM を使用した Direct3D 9 改良版.以前は Direct3D 9.L (L は Longhorn の意) と呼ばれていた.さらに以前は Windows Graphics Foundation (WGF) 1.0 と呼ばれていた,最近は Direct3D 9Ex と呼ばれることが多いような気がする*2
なお,これらの名称は開発者の間では 1 年以上前から知られていたものだが(id:NyaRuRu:20050828#p1),それを今頃分かったかのように書いているあたりで既に例の記事は電波っぽいと.
ちなみに Windows Vista の Aero は WDDM / Direct3D 9Ex 専用.今目の前に Aero 環境があるという人は,既に Direct3D 9.L = Direct3D 9Ex のお世話になっていますのでご安心を.というか,従来の DirectX 9.0 の API だと DWM や WPF でパフォーマンス上不利な場面がある → 折角だし専用 API を追加すればいいじゃん → Direct3D 9Ex という流れがある以上,ドライバレベルで配慮されているのは当然と.
あと,Aero / DWM は Direct3D 10 で動いていると誤解している人もたまにいるみたいですが,そんなことはありません.
Windows SDK を使用すると Direct3D 9Ex を使用したアプリケーションは誰でも作ることができますが,当然実行には Windows Vista が必要です.さりげなく id:NyaRuRu:20060628#p2 のサンプルコードは Direct3D 9Ex 使っていたり.

Direct3D 10 / WGF 2.0 ?

いわゆる Direct3D 10 .Windows Vista RTM の段階ではまだリリースされませんCore Runtime Library のみがインストールされています

Direct3D 10.1 / 真の WGF 2.0 ?

初期の Direct3D 10 では,予定しているハードウェア仮想化技術全ての実装が行われるわけではなく,いくつかの高度なトピックについては Direct3D 10.1 にずれ込むと言われています.



あと,うちの日記とか @IT の記事でもいくつか DirectX 9.L という記述をしていますが,もはや DirectX = Direct3D という状況なので,「Direct3D 9.L や Direct3D 10 と書きましょう」という動きが一部開発者の間で広がっています.どういうことかというと,下の表のようにいわゆる DirectX のコアコンポーネントのうち,まともに開発が続いているのは Direct3D だけで,他の技術はクロスプラットフォームライブラリに移行したり,標準 API に格上げされたりしているわけですな.
もちろん,従来の DirectX コンポーネントVista で動かなくなるわけではありません.例えば DirectSound は内部的に Windows Core Audio API に丸投げすることでちゃんと動作が保証されています.ただ,完全に動くかというとそうでもなくて,例えば Direct3D RM のランタイムライブラリが除去されていること*3などは注意が必要かもしれません.









































Windwos/Xbox 360

Cross Platform
Legacy DirectX Windows Vista
DirectDraw
Direct3D 9 Direct3D D3D9Ex/D3D10
DirectPlay
DirectShow Media Foundation API
XACT DirectSound Windows Core Audio API
DirectMusic
XInput DirectInput

(追記)勘違いしていたので XConnect という単語を削除.

*1:Vista との比較では,XPDM と呼ばれることもある

*2:http://letskilldave.com/archive/2006/10/17/DirectX-10-for-Windows-XP_3F00_--Repeat-after-me_3A00_-No.-No.-No_2E00_.aspx

*3:「TechNet フォーラム」の『[http://forums.microsoft.com/technet-ja/ShowPost.aspx?PostID=714964&SiteID=36:title=d3drm.dllが無くて、動かないソフトがたくさんある。]』参照のこと.