   2d quad translation
  Hi,yes this is the stupied question ever but i can't translate quad using worldmatrix. Let me explain. I'm using this code for render a simple "2d rectangle" with texture (a wanna be pushbutton): 1)Create vertex buffer2)set stream source3)Lock the vertex bufferVertexPosWColTex* vertices;vertices[0].colour = vertexColour;  vertices[0].x = (float) 0;  vertices[0].y = (float) 0;  vertices[0].z = 0.0f;  vertices[0].rhw = 1.0f;  vertices[0].u = 0.0f;  vertices[0].v = 0.0f;//vertices [1][2] and [3]//Unlock the vertex buffergd3dDevice->SetTexture (0, mTexButton);gd3dDevice->DrawPrimitive (D3DPT_TRIANGLEFAN, 0, 2);Ok now i want use (as tutorial say) world matrix for translate the quad in the screen, for this i do:D3DXMATRIX matOrtho;D3DXMATRIX matTranslation;D3DXMatrixTranslation (&matTranslation, Xt, Yt, 0.0f);D3DXMatrixOrthoLH (&matOrtho,ScreenWidth,ScreenHeight, 1.0f, 10.0f);gd3dDevice->SetTransform (D3DTS_PROJECTION, &matOrtho);gd3dDevice->SetTransform (D3DTS_VIEW, &matIdentity);gd3dDevice->SetTransform (D3DTS_WORLD, &matTranslation);But i cant'understand why nothing happen. Nothing appear to change with or without this code before "DrawPrimitive" the quad textured is render in the same exact position. So i think i will miss some. Can someone explain me?Thx for your time :)   
  Vertices that have a rhw component are specified in screen coordinates. They are not transformed by D3D's geometry pipeline. That's why the quad is always in the same position on the screen.If you want to control the quad's position using the world matrix, remove the rhw component (and update the FVF accordingly).   ;  thx :)   ;  ok last question is:Vertex 0 is supposed to be in screen coordinate 0,0 so why this gap ?