void mat_perspective( float *matrix, float fov, float aspect, float znear, float zfar) { float ymax, xmax; ymax = znear * tanf(fov * PI / 360.0); xmax = ymax * aspect; mat_frustum(matrix, -xmax, xmax, -ymax, ymax, znear, zfar); }
static void Reshape(int width, int height) { float ar = (float) width / height; WinWidth = width; WinHeight = height; glViewport(0, 0, width, height); mat_frustum(Projection, -ar, ar, -1, 1, 3, 25); /* pass viewport dims to the shader */ { GLfloat viewport[4]; glGetFloatv(GL_VIEWPORT, viewport); glUniform2f(uViewportSize, viewport[2], viewport[3]); } }