Direct3DCreate9不能直接用来创建设备对象,他只能创建D3D接口对象,然后通过创建出来的接口对象来创建D3D设备对象。
//这里g_pD3D是一个有待赋值的D3D接口对象
LPDIRECT3D9 g_pD3D = NULL;
//创建D3D接口对象
if( NULL == (g_pD3D = Direct3DCreate9(D3D_SDK_VERSION)))
return E_FAIL;
//这里pDevice是一个有待赋值的D3DDevice对象
LPDIRECT3DDEVICE9 pDevice = NULL;
//填充必要的D3DDevice参数,因为我们要自己定制我们所要创建的D3D设备特征
D3DPRESENT_PARAMETERS d3dpp;
ZeroMemory( &d3dpp, sizeof(d3dpp) );
d3dpp.Windowed = TRUE;
d3dpp.SwapEffect = D3DSWAPEFFECT_COPY;
//创建D3D设备对象
if( FAILED(g_pD3D->CreateDevice( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd,
D3DCREATE_SOFTWARE_VERTEXPROCESSING,
&d3dpp, &d3dDevice ) ) )
return E_FAIL;
然后就OK了
标签:地址,Direct3DCreate9