I believe you are doing it in the wrong order. Remember order of matrix operations are critical

Normally in OpenGL you have:
ProjectionMatrix*ModelViewMatrix*matrix1*matrix2.. .

[code=delphi]
// Camera transformations
Cam := MatrixTransform(VectorNegate(Camera.Pos), VectorCreate(Camera.Pitch, Camera.Yaw, 0.0), VectorUniform(1.0)); //"Camera" transformation
ModelView2 := MatrixTransform(VectorCreate(0.0, 0.0, 0.0), VectorCreate(0.0, TriangleRot, 0.0), VectorUniform(0.5)); //Object transformation
ModelView := MatrixMultiply(ProjMat, MatrixMultiply(ModelView2, Modelview));

// Update the shader
glUniformMatrix4fv(glGetUniformLocation(ShaderMana ger.GLSLPrograms['minimal'].
ProgramHandle, 'mvpmatrix'), 1, ByteBool(GL_FALSE), @ModelView);
[/code]