ページ 11

D3DXLoadMeshFromX関数でのXファイルからメッシュの読み込み

Posted: 2017年7月02日(日) 19:46
by あき
DirectXのD3DXLoadMeshFromX関数を使用して、Xファイルからメッシュの読み込みを行いたいのですが、メッシュが読み込めずエラーが起きてしまいます。
ソースコードを貼りますのでどこがいけないのか教えていただけると助かります。
なお、DXライブラリを使用していますのでCreateDevice()のhwndのところはGetMainWindowHandle()関数で代用しています。

コード:

	LPDIRECT3D9 g_pD3D = NULL;
	LPDIRECT3DDEVICE9 g_pD3DDevice = NULL;

	if (NULL == (g_pD3D = Direct3DCreate9(D3D_SDK_VERSION)))
		return 0;

	D3DPRESENT_PARAMETERS d3dpp = { 0,0,D3DFMT_UNKNOWN,0,D3DMULTISAMPLE_NONE,0,
		D3DSWAPEFFECT_DISCARD,NULL,TRUE,TRUE,D3DFMT_D24S8,0,D3DPRESENT_RATE_DEFAULT,D3DPRESENT_INTERVAL_DEFAULT };

	if (FAILED(g_pD3D->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, GetMainWindowHandle(), D3DCREATE_HARDWARE_VERTEXPROCESSING,
		&d3dpp, &g_pD3DDevice))) {
		if (FAILED(g_pD3D->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, GetMainWindowHandle(), D3DCREATE_SOFTWARE_VERTEXPROCESSING,
			&d3dpp, &g_pD3DDevice))) {
			return 0;
		}
	}

	LPD3DXMESH StageMesh = NULL;
	LPD3DXBUFFER pMaterialsBuffer;
	DWORD NumMaterials = 0L;
	if (FAILED(D3DXLoadMeshFromX("Data/Stage/stage.x", D3DXMESH_SYSTEMMEM, g_pD3DDevice, NULL,
		&pMaterialsBuffer, NULL, &NumMaterials, &StageMesh))){
		return 0;
	}