Original Post
Hi!
Hmm, I dunno why I always get stuck on thses stupid things but I could really use some help. I´m trying to laod a mesh, but it fails when trying to load each individual texture for the subsets.
Heres the code I use for loading.
Bad Monkey Productions
bool CPlayer::LoadTankMesh(IDirect3DDevice9 *p_D3DDev9)
{
if(FAILED(D3DXLoadMeshFromX("Meshes\\tiger.x",
D3DXMESH_SYSTEMMEM,p_D3DDev9, NULL,
&p_D3DXMtrlBuffer,NULL, &lNumMtrls, &p_D3DXMesh)))
{
MessageBox(NULL, "Failed to load mesh (tank)", "Error", MB_OK);
return false;
}
D3DXMATERIAL *p_D3DXMaterialBufferPtr = (D3DXMATERIAL*)p_D3DXMtrlBuffer->GetBufferPointer();
p_D3DMaterials = new D3DMATERIAL9[lNumMtrls];
p_D3DTextures = new LPDIRECT3DTEXTURE9[lNumMtrls];
for(unsigned long i = 0; i < lNumMtrls;i++)
{
p_D3DMaterials[i] = p_D3DXMaterialBufferPtr[i].MatD3D;
p_D3DMaterials[i].Ambient = p_D3DMaterials[i].Diffuse;
p_D3DTextures[i] = NULL;
if(FAILED(D3DXCreateTextureFromFile(p_D3DDev9,p_D3DXMaterialBufferPtr[i].pTextureFilename,
&p_D3DTextures[i])))
{
MessageBox(NULL, "Failed to load texture (tank)", "Error",MB_OK);
return false;
}
}
p_D3DXMtrlBuffer->Release();
return true;
}
And here are the member variables I set.
D3DMATERIAL9 *p_D3DMaterials; LPDIRECT3DTEXTURE9 *p_D3DTextures; LPD3DXBUFFER p_D3DXMtrlBuffer; LPD3DXMESH p_D3DXMesh; unsigned long lNumMtrls;It´s really annoying getting stuck like this, and if anyone has the time, please check it out.
Bad Monkey Productions