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

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
あき

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

#1

投稿記事 by あき » 3年前

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;
	}

“C言語何でも質問掲示板” へ戻る