So I am having this error with my code and keep getting the Stack Overflow Error and cannot fix it no matter what I try. I was hoping someone could point out what is wrong.
Here is my model loading and drawing code:
////MODEL.CPP
#include "model.h"
Model::Model()
{
}
Model::~Model()
{
}
void Model::Load(LPCSTR Filename, LPDIRECT3DDEVICE9 GraphicsDevice)
{
HRESULT HR;
HR = D3DXLoadMeshFromX("Content/m.x", D3DXMESH_SYSTEMMEM,
GraphicsDevice, NULL, &MaterialBuffer, NULL, &MaterialCount,
&Mesh);
if (FAILED(HR))
MessageBox(NULL, "Can't load model!", "ERROR", MB_OK);
Materials = (D3DXMATERIAL*)MaterialBuffer->GetBufferPointer();
MeshMaterials = new D3DMATERIAL9[MaterialCount];
MeshTextures = new LPDIRECT3DTEXTURE9[MaterialCount];
for (DWORD i = 0; i < MaterialCount; i++)
{
MeshMaterials = Materials.MatD3D;
MeshMaterials.Ambient = MeshMaterials.Diffuse;
MeshTextures = NULL;
if (Materials.pTextureFilename)
D3DXCreateTextureFromFile(GraphicsDevice,
Materials.pTextureFilename, &MeshTextures);
}
MaterialBuffer->Release();
}
void Model::Render(LPDIRECT3DDEVICE9 GraphicsDevice)
{
D3DXMATRIX World;
D3DXMatrixIdentity(&World);
GraphicsDevice->SetTransform(D3DTS_WORLD, &World);
for (DWORD i = 0; i < MaterialCount; i++)
{
GraphicsDevice->SetMaterial(&MeshMaterials);
GraphicsDevice->SetTexture(0, MeshTextures);
Mesh->DrawSubset(i);
}
}
////MODEL.H
#ifndef _MODEL_H_
#define _MODEL_H_
#include <d3d9.h>
#include <d3dx9.h>
class Model
{
public:
Model();
~Model();
LPD3DXMESH Mesh;
LPD3DXBUFFER MaterialBuffer;
DWORD MaterialCount;
D3DXMATERIAL* Materials;
D3DMATERIAL9* MeshMaterials;
LPDIRECT3DTEXTURE9* MeshTextures;
void Load(LPCSTR, LPDIRECT3DDEVICE9);
void Render(LPDIRECT3DDEVICE9);
};
#endif
Does anyone spot why this would be calling a stackoverflow error?