Witam. Napisałem sobie funkcję ładującą pliki *.x. Wszystko się kompiluje, tylko przy debugowaniu wyskakuje błąd. :-/
Treść błędu:
Unhandled exception at 0x77d4ed87 in GE_3D.exe: 0xC0000005: Access violation reading location 0x000001b0.
Call stack:
GE_3D.exe!InitMeshes() Line 22 + 0x14 bytes C++
Funkcja (kod):
HRESULT InitMeshes()
{
//Tworzenie bufora dla siatki
LPD3DXBUFFER g_MeshBuffer;
//Ładowanie siatki modelu
if(FAILED(D3DXLoadMeshFromX("gfx/beczka.x", D3DXMESH_SYSTEMMEM, g_myDevice, &g_MeshBuffer, NULL, NULL, &nMesh, &meshMesh)))
return E_FAIL;
//Tworzenie materiałów i tekstur dla modelu
//{
D3DXMATERIAL* dxMaterials = (D3DXMATERIAL*)g_MeshBuffer->GetBufferPointer();
mMesh = new D3DMATERIAL9[nMesh];
tMesh = new LPDIRECT3DTEXTURE9[nMesh];
for(DWORD i = 0; i < nMesh; i += 1)
{
mMesh[i] = dxMaterials[i].MatD3D;
mMesh[i].Ambient = mMesh[i].Diffuse;
if(FAILED(D3DXCreateTextureFromFile(g_myDevice, dxMaterials[i].pTextureFilename, &tMesh[i]))) //tutaj wyskakuje błąd
tMesh[i] = NULL;
}
//}
//Zwalnianie bufora siatki
g_MeshBuffer->Release();
return S_OK;
}