Direct3D10 は 覚えなおし?

インストールできなくても、ヘッダーやヘルプを見ることが出来たので覗いてみました。 個人的に一番気になっていたことは、新しいテクノロジが云々ということよりも、まず インターフェース名 だったりします。(ぉ

IDirect3D7 -> IDirect3D8 -> IDirect3D9 と来て、次は "IDirect3D10"? バージョン番号が二桁になるの? それはなんかダサい気がするんだけど………?

// d3d10.h : Line 4950 近辺
    MIDL_INTERFACE("9B7E4C0F-342C-4106-A19F-4F2704F689F0")
    ID3D10Device : public IUnknown

マジか

いやいやまてまて、IDirect3D10Device じゃなくて ID3D10Device ? Direct -> D とな? タイプが短くてよい感なのかもしれないと思ってみたけれど、Shiftキーを押したり離したりとメドそうだぞ。

…そういえば ID3D10 が無い。 IDirect3D9 に相当するものは何処に…? と思ったら

// d3d10misc.h : Line 107近辺

HRESULT WINAPI D3D10CreateDevice(
    IDXGIAdapter *pAdapter,
    D3D10_DRIVER_TYPE DriverType,
    HMODULE Software,
    UINT Flags,
    UINT SDKVersion,
    ID3D10Device **ppDevice);

ダイレクトに作成に変更かい

つか、もともと WGF として用意されていた為か、ライブラリ自体が大きく変更されてますね。 インターフェース一気に増えましたし。 …これは、色々と 覚えなおし のような気がしないでもありません。テクスチャの読み込みも

// Load the Texture
ID3D10Resource *pRes = NULL;
if( FAILED(D3DX10CreateTextureFromFile( g_pd3dDevice, L"seafloor.dds", NULL, NULL, &pRes )) || !pRes )
    return FALSE;
pRes->QueryInterface( __uuidof( ID3D10Texture2D ), (LPVOID*)&g_pTexture );
pRes->Release();

と1クッション置かなければいけないぐらいですから……。*1
……。Dx9もまだ覚えること沢山なのにぃ〜

参考 -インターフェース一覧 ぶっこ抜き-

  • ID3D10Asynchronous
  • ID3D10BlendState
  • ID3D10Blob
  • ID3D10Buffer
  • ID3D10Counter
  • ID3D10Debug
  • ID3D10DepthStencilState
  • ID3D10DepthStencilView
  • ID3D10Device
  • ID3D10DeviceChild
  • ID3D10Effect
  • ID3D10EffectBlendVariable
  • ID3D10EffectConstantBuffer
  • ID3D10EffectDepthStencilVariable
  • ID3D10EffectMatrixVariable
  • ID3D10EffectPass
  • ID3D10EffectPool
  • ID3D10EffectRasterizerVariable
  • ID3D10EffectSamplerVariable
  • ID3D10EffectScalarVariable
  • ID3D10EffectShaderResourceVariable
  • ID3D10EffectShaderVariable
  • ID3D10EffectStringVariable
  • ID3D10EffectTechnique
  • ID3D10EffectType
  • ID3D10EffectVariable
  • ID3D10EffectVectorVariable
  • ID3D10GeometryShader
  • ID3D10Include
  • ID3D10InfoQueue
  • ID3D10InputLayout
  • ID3D10Multithread
  • ID3D10PixelShader
  • ID3D10Predicate
  • ID3D10Query
  • ID3D10RasterizerState
  • ID3D10RenderTargetView
  • ID3D10Resource
  • ID3D10SamplerState
  • ID3D10ShaderReflection
  • ID3D10ShaderReflectionConstantBuffer
  • ID3D10ShaderReflectionType
  • ID3D10ShaderReflectionVariable
  • ID3D10ShaderResourceView
  • ID3D10StateBlock
  • ID3D10StateMirror
  • ID3D10Texture1D
  • ID3D10Texture2D
  • ID3D10Texture3D
  • ID3D10TextureCube
  • ID3D10VertexShader
  • ID3D10View
  • ID3DX10DataLoader
  • ID3DX10DataProcessor
  • ID3DX10Font
  • ID3DX10Mesh
  • ID3DX10MeshBuffer
  • ID3DX10SkinInfo
  • ID3DX10Sprite
  • ID3DX10ThreadPump
  • ID3DXMatrixStack

一気に増えたなぁー

*1:いやまぁ、この程度であれば対応できますが、他の部分がどうなっていることやら…