Умножение матрицы преобразования на эту матрицу вращения должно помочь:
float rot45X[16] = { 1.0, 0.0, 0.0, 0.0,
0.0, cos(PI/4), -sin(PI/4), 0.0,
0.0, sin(PI/4), cos(PI/4), 0.0,
0.0, 0.0, 0.0, 1.0 };
Редактировать: Вы также можете использовать функцию полезности
glRotatef(GLfloat angle, GLfloat x, GLfloat y, GLfloat z);
где [x, y, z] указывают ось вращения (да, он выполняет вращение вокруг произвольного вектора).
В вашем случае вам нужно было бы позвонить так:
glRotatef(45, 1, 0, 0);