Here's the vertex shader:

Here's the code that generates the matrix:Code :#version 120 uniform mat4 cammat; attribute vec3 a_vert; attribute vec2 a_tex; attribute vec3 a_norm; varying vec2 av_tex; void main() { gl_Position = cammat * vec4(a_vert.xyz, 1); av_tex = a_tex; }

Code :scen.activeCam = glm::mat4(1); scen.activeCam *= glm::perspective(glm::radians(67.f), 640.0f / 480, 0.001f, 1000.f); scen.activeCam = glm::ortho(-5, 5, -5, 5); scen.activeCam = glm::translate(scen.activeCam, glm::vec3{0, 0, -2}); // somewhere else. glUniformMatrix4fv(glGetUniformLocation(shaderprog, "cammat"), 1, GL_FALSE, glm::value_ptr(curscene->activeCam));

But if I translate activeCam by a positive X value, the camera seems to go left, when it should be going right (or all objects should be going left).

The mesh on the screen moves right, instead.