bool DG8DynamicVB::Initialise(int nv, int ni, int nc_p, int nc_t) { int result = 0; m_numvertex = nv; m_numindex = ni; IDirect3DDevice8 *dev = ((DG8Graphics *)fusion->Graphics)->m_RenderDevice; result = dev->CreateVertexBuffer( nv*sizeof(CUSTOMVERTEX), D3DUSAGE_DYNAMIC, D3DFVF_CUSTOMVERTEX, D3DPOOL_DEFAULT, &m_vertexbuffer); if(result != D3D_OK) return false; result = dev->CreateIndexBuffer( ni*sizeof(int), D3DUSAGE_DYNAMIC, D3DFMT_INDEX32, D3DPOOL_DEFAULT, &m_indexbuffer); CUSTOMVERTEX *ptr = NULL; result = m_vertexbuffer->Lock(0,0,(unsigned char **)&ptr,D3DLOCK_DISCARD); if(result == D3D_OK){ for(int a=0;a<nv;a++){ ptr[a].colour = DG8COLOUR( (char)m_material.Diffuse.r*256, (char)m_material.Diffuse.g*256, (char)m_material.Diffuse.b*256, (char)m_material.Diffuse.a*256); } } m_vertexbuffer->Unlock(); if(result != D3D_OK) return false; return true; }