ent_getmesh(ENTITY* ent,var num,var lod);

ent_setmesh(ENTITY* ent,void* mesh,var num,var lod);

Returns or sets the DirectX mesh of the given model or terrain entity.

Parameters:

ent - model or terrain entity pointer, or NULL for level blocks.
num - number of the terrain chunk or level block, beginning with 0.
lod - number of the lod step for the mesh, 0..3.
mesh - mesh pointer to be set, or NULL when the mesh was released.

Returns

LPD3DXMESH cast to void*, or NULL if the entity contains less meshes than the given mesh or lod number.

Speed:

Fast

Remarks:

Example (lite-C):

#include <d3d9.h>
...
LPD3DXMESH pNewMesh;
D3DXCreateMesh(num_tris,num_verts,D3DXMESH_MANAGED,pvertexdecl,pd3ddev,&pNewMesh);
pNewMesh->LockVertexBuffer(0, &VBuffer);
pNewMesh->LockIndexBuffer(0, &wIndexBuffer);
pNewMesh->LockAttributeBuffer(0, &dwAttribBuffer);
...// set up vertices, triangles, and attributes
pNewMesh->UnlockVertexBuffer();
pNewMesh->UnlockIndexBuffer();
pNewMesh->UnlockAttributeBuffer();
ent_setmesh(my,pNewMesh,0,0);
...
// deallocate mesh at end of level or game
pNewMesh = ent_getmesh(my,0,0);
pNewMesh->Release();
ent_setmesh(my,NULL,0,0);

See also:

ent_status, vec_for_mesh, ent_getvertex, ent_buffers, pd3ddev

► latest version online