怎样才能在单文档主窗口创建DirectX设备?
int CDxTestView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CScrollView::OnCreate(lpCreateStruct) == -1)
return -1;
InitD3D(&m_pD3D,&m_pDevice,m_hWnd);
// TODO: Add your specialized creation code here
return 0;
}
void InitD3D(LPDIRECT3D9 * ppD3D,LPDIRECT3DDEVICE9 *ppDevice,HWND hWnd)
{
//创建Direct3D 对象,并获取接口IDirect3D9 的指针,
//我们将通过该指针操作Direct3D 对象。
*ppD3D = ::Direct3DCreate9(D3D_SDK_VERSION);
D3DPRESENT_PARAMETERS d3dpp;
::ZeroMemory(&d3dpp, sizeof(d3dpp));
d3dpp.Windowed = TRUE; //创建窗口模式的Direct3D 程序
d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
d3dpp.BackBufferFormat = D3DFMT_UNKNOWN;
//调用方法IDirect3D9::CreateDevice 创建设备对象,并获取
//接口IDirect3DDevice9 的指针,我们将通过该指针操作设备对象
(*ppD3D)->CreateDevice(
D3DADAPTER_DEFAULT, //使用缺省的显卡
D3DDEVTYPE_HAL, //指定设备类型为HAL
hWnd, //Direct3D窗口的句柄
D3DCREATE_SOFTWARE_VERTEXPROCESSING,//软件顶点处理
&d3dpp, ppDevice);
}
运行到最后一个语句出错:DEBUG输出:
Direct3D9: (ERROR) :Failed to create driver surface
Direct3D9: (ERROR) :Failed to initialize primary swapchain
Direct3D9: (ERROR) :Failed to initialize Framework Device. CreateDevice Failed.
怎样才能不出错?
不好意思,因为没怎么用过DirectX,问题一大堆