private void drawMesh(Matrix worldMatrix, Matrix viewProjMatrix, Data.Mesh mesh, D3D9.Effect effect) { Matrix worldMatrix2 = worldMatrix * mesh.Rotation * mesh.Position; Matrix worldViewProjMatrix = worldMatrix2 * viewProjMatrix; Matrix worldInverseTranspose = Matrix.Invert(worldMatrix2); worldInverseTranspose = Matrix.Transpose(worldInverseTranspose); effect.SetValue("gWorldViewProj", worldViewProjMatrix); effect.SetValue("gWorldInvTrans", worldInverseTranspose); effect.SetTexture("gDiffuseTexture", mesh.DiffuseTexture); effect.CommitChanges(); DX.Device.SetStreamSource(0, mesh.VertexBuffer, 0, mesh.VertexDeclStride); DX.Device.VertexDeclaration = mesh.VertexDecl; DX.Device.Indices = mesh.IndexBuffer; Int32 primitiveCount = mesh.IndexCount / (mesh.Primitive == D3D9.PrimitiveType.LineList ? 2 : 3); DX.Device.DrawIndexedPrimitive(mesh.Primitive, 0, 0, mesh.VertexCount, 0, primitiveCount); }
public override void CommitParams() { _effect.CommitChanges(); }