ValveがDota 2で使われているらしきDirect3D-OpenGL変換のライブラリを抜きだして公開
邪悪なDRM付きのゲーム流通プラットフォームと不自由なソフトウェア実装のゲームを蔓延させているValveが、Dota 2で使われているらしき、ライブラリレベルでDirect3DをOpenGLに変換するラッパーライブラリ、TOGLをGitHubで公開した。
これは、Direct3D 9.0cのAPIでありながら、中身はOpenGLを使っているという、ラッパーライブラリ、あるいはソフトウェア互換レイヤーとでもいうべきライブラリだ。どうやら、Dota 2というゲームで使われているコードベースから、この部分だけ抜き出して公開したようだ。
DirectX 9.0cのすべての機能を実装しているわけではないという。HLSLバイトコードから、GLSLバイトコードへのトランスレーターを含む。Multiple Render Targetsはサポートしているが、Vertex Texture Fetchはサポートしていない。
また、このままではビルドすらできないし、また、Sourceエンジンの挙動に合わせるためにハードコードした部分もあるという
ところで、このようなライブラリには見覚えがある。そう。ANGLEだ。
angleproject - ANGLE: Almost Native Graphics Layer Engine - Google Project Hosting
ANGLEとは、不自由なMicrosoft Windows環境で、OpenGL ES 2.0環境をDirectX 9ないしはDirect X 11を使って実現するライブラリだ。つまり、TOGLの逆転版ということになる。
ANGLEは、ChromiumとFirefoxで、まともなOpenGL環境のない制限OSであるWindows環境で、WebGLを実装するために使われている。
DirectXはもはやその役目を終えたので、そろそろ終焉に向かって欲しい。