1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
void * CMesh::GetLockVertices ( unsigned long * NumVertices , unsigned int * FVF , unsigned int * Stride )
{
// get the VB
VertexBuffer = NULL;
HRESULT hr = Mesh->GetVertexBuffer( & VertexBuffer );
if( FAILED ( hr ) )
{
TCHAR Msg [ ] = TEXT ( "Error - CMesh failed to get VB.\n" ) ;
CTools::Log ( Msg ) ;
return NULL ;
} ;
// Gain access to the model's vertices
void * Vertices = NULL ;
hr = VertexBuffer->Lock ( 0, 0, & Vertices, 0 ) ; // no sys lock ?
if ( FAILED ( hr ) )
{
TCHAR Msg [ ] = TEXT ( "Error - CMesh failed to lock VB.\n" ) ;
CTools::Log ( Msg ) ;
SAFE_RELEASE ( VertexBuffer ) ;
return NULL ;
} ;
* NumVertices = Mesh->GetNumVertices ( ) ;
* FVF = Mesh->GetFVF ( ) ;
* Stride = D3DXGetFVFVertexSize ( * FVF ) ;
return Vertices ;
}
void CMesh::UnlockVertices ( )
{
// Done with the vertex buffer
VertexBuffer->Unlock ( );
SAFE_RELEASE ( VertexBuffer ) ;
} |
Partager