Archived

This topic is now archived and is closed to further replies.

Strange problem with Texture

This topic is 5704 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I have a little problem with my program. I have a class like this: class board { public: void render(float *t); // Methods board(LPDIRECT3DDEVICE8 g_pd3dDevice); virtual ~board(); // Variable & Objects LPDIRECT3DDEVICE8 mD3D; FONT2DVERTEX *v; LPDIRECT3DTEXTURE8 *m_pTexture; LPDIRECT3DVERTEXBUFFER8 m_pVB; }; the constructor is : board::board(LPDIRECT3DDEVICE8 g_pd3dDevice) { mD3D=g_pd3dDevice; m_pTexture=NULL; DWORD m_dwTexWidth=256; DWORD m_dwTexHeight=256; D3DCAPS8 d3dCaps; mD3D->GetDeviceCaps( &d3dCaps ); // Create a new texture for the font HRESULT hr = mD3D->CreateTexture( m_dwTexWidth, m_dwTexHeight, 1, 0, D3DFMT_A4R4G4B4, D3DPOOL_MANAGED, m_pTexture ); if( FAILED(hr) ) exit(0); } It''s compile very well, but at the execution the program exit and the debugor send me : Direct3D8: (ERROR) :Bad parameter passed pTexture. CreateTexture failedFirst-chance exception in 3d.exe (KERNEL32.DLL): 0xC0000005: Access Violation. Direct3D8: (ERROR) :Failure trying to create a texture But when I do this change : board::board(LPDIRECT3DDEVICE8 g_pd3dDevice) { mD3D=g_pd3dDevice; LPDIRECT3DTEXTURE8 pTexture; DWORD m_dwTexWidth=256; DWORD m_dwTexHeight=256; D3DCAPS8 d3dCaps; mD3D->GetDeviceCaps( &d3dCaps ); // Create a new texture for the font HRESULT hr = mD3D->CreateTexture( m_dwTexWidth, m_dwTexHeight, 1, 0, D3DFMT_A4R4G4B4, D3DPOOL_MANAGED, &pTexture ); if( FAILED(hr) ) exit(0); } the program work fine. What''s wrong with this strange Trouble. Thanks in advance.

Share this post


Link to post
Share on other sites
Well, the CreateTexture function asks for a pointer to pointer, witch just basicaly tells it where to store the new texture, because it creates it in memory and increases the rref. by one. dont wory about this, you just had that paramiter wrong.

[ my engine ][ my game ][ my email ]
SPAM

Share this post


Link to post
Share on other sites
HRESULT hr = mD3D->CreateTexture( m_dwTexWidth, m_dwTexHeight, 1,
0, D3DFMT_A4R4G4B4,
D3DPOOL_MANAGED, &m_pTexture);

HTH


Steve
DirectX Programmer
Soon to be the new Bill Gates

Share this post


Link to post
Share on other sites