So I will need to call DrawPrimitive for every single object (Vertex Buffer) like

that:

Code:

LPDIRECT3DVERTEXBUFFER object[5]; // initialized with Sets Of Vertices
/* ... */
D3DXMATRIX matrix_for_calculations;
/* Drawing object1 */
D3DXMatrixTranslation(&matrix_for_calculation, x_posObject1,
y_posObject1, z_posObject1);
pd3dDevice->SetTransform(D3DTS_WORLD,&matrix_for_calculations);
// This means the Stream must be set everytime again for every single object??
pd3dDevice->SetStreamSource(0,object[1],0,sizeof(basic_Vertex));
#define ALL_TRIANGLES_OF_OBJECT1 3
DrawPrimitive(D3DPT_TRIANGLESTRIP,0,ALL_TRIANGLES_OF_OBJECT1);
/* And this procedure is necessary for EVERY object (that is again calculating the Translation_Rotation Matrix, Setting the Stream, calling Draw Primitive... until every Object is drawn at its new Position)??
I guess this must be even more slowly than locking the VertexBuffers, copy the Objects' new positions to the Vertex Buffer, and finally draw them.
5 calls to SetTransform plus 5 calls to MatrixTranslation(or RotationX_Y_Z) are executed more quickly than 5 calls to Lock() + 5 memcopy()?
Are you sure?
*/

Thanks for your tips!