Некоторые примеры из четвертой главы(по крайней мере, ортогональная и перспективная проекции) сегфолтятся. Оказывается, в коде рисования сцены(из Src/Chapter04/OrthoGraphic) не инициализируются стеки конвейера(кажется, эта функция выделяет под них память, смотрю пока) - почему-то это делается только в функции масштабирования.
Автор книги - маковод. У кого есть под рукой мак, там всё работает без этой строки или это везде такая ошибка?
void RenderScene(void)
{
// Clear the window and the depth buffer
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
// glEnable(GL_CULL_FACE);
glEnable(GL_DEPTH_TEST);
transformPipeline.SetMatrixStacks(modelViewMatix, projectionMatrix);//без этого сегфолтится на инициализации шейдера
modelViewMatix.PushMatrix(viewFrame);
GLfloat vRed[] = { 1.0f, 0.0f, 0.0f, 1.0f };
GLfloat vGray[] = { 0.75f, 0.75f, 0.75f, 1.0f };
shaderManager.UseStockShader(GLT_SHADER_DEFAULT_LIGHT, transformPipeline.GetModelViewMatrix(), transformPipeline.GetProjectionMatrix(), vRed);
tubeBatch.Draw();
shaderManager.UseStockShader(GLT_SHADER_DEFAULT_LIGHT, transformPipeline.GetModelViewMatrix(), transformPipeline.GetProjectionMatrix(), vGray);
innerBatch.Draw();
modelViewMatix.PopMatrix();
glutSwapBuffers();
}