Да, оно и не работало, ничего не выводит.
Заработало нормально с добавлением
uint vao;
typedef void (APIENTRY *_glGenVertexArrays) (GLsizei, GLuint*);
typedef void (APIENTRY *_glBindVertexArray) (GLuint);
_glGenVertexArrays glGenVertexArrays;
_glBindVertexArray glBindVertexArray;
glGenVertexArrays = (_glGenVertexArrays) QGLWidget::context()->getProcAddress("glGenVertexArrays");
glBindVertexArray = (_glBindVertexArray) QGLWidget::context()->getProcAddress("glBindVertexArray");
glGenVertexArrays(1, &vao);
glBindVertexArray(vao);
Но это, похоже, винапи, какой-то кроссплатформенный аналог был бы более желательным.
А это как раз перевод той статьи, для которой, похоже, нет исходников.
Тут
https://svn.theharmers.co.uk/svn/codes/public/opengl/trunk/ после примере кор профайл есть, похоже, то, что нужно, перспектив куб, но он использует глут.
Хотелось бы найти что-то подобное, но без винапи, глута, глфв/