Jump to content
  • Advertisement
Sign in to follow this  
giugio

inherit from ID3DXMesh

This topic is 3619 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

Hy . I would inherit from ID3DXMesh for add a name property for the mesh this is the code
Quote:
#pragma once #include "d3dUtility.h" using namespace std; class CMeshBase : public ID3DXMesh { public: CMeshBase(void); public: ~CMeshBase(void); string getName(); void setName(string strName); private: string m_strMeshName; };
all work fine , but this:
Quote:
HRESULT hr = D3DXCreateMeshFVF(nIndexes,nVertexes,D3DXMESH_MANAGED,Vertex::FVF,m_Device,&m_mesh);
where m_mesh is a member var = CMeshBase* m_mesh; the error is this:Error 1 error C2664: 'D3DXCreateMeshFVF' : cannot convert parameter 6 from 'CMeshBase **__w64 ' to 'LPD3DXMESH *' ps.How i insert code in the post?i use quote , but isn't correct i suppose

Share this post


Link to post
Share on other sites
Advertisement
This will implicitly cast from ID3DXMesh* to CMeshBase*, which is illegal. Think The actual instance pointed to by the ID3DXMesh* returned by D3DXCreateMeshFVF is not a CMeshBase.

To achieve what you are trying you could use composition instead.


class CMeshBase
{
ID3DXMesh* m_pMesh;
string m_strMeshName;
};



Share this post


Link to post
Share on other sites
You can't inherit from the actual implementation of ID3DXMesh. The actual class "ID3DXMesh" is just an in interface...it contains nothing but declarations of pure virtual functions. The actual methods are implented in some other class...it's probably a C++ class but it technically be any language that supports COM. Either way it doesn't matter, the implementation isn't exposed to you so you can't inherit from it. Inheriting from the interface doesn't gain you anything except for those pure virtual method declarations....methods that you would have to implement yourself. If you want to have your own mesh class and still make use of the ID3DXMesh functionality, you'll have to use inheritance via composition like janta suggested.

Also to post properly formatted code, you need to use the "code" or "source" tags. See the forum FAQ.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!