Я начал изучать OpenGL.Я начал с Superbible 5-го издания.Я сталкиваюсь с ошибками во время выполнения при выполнении самого первого примера книги.Я пытаюсь сделать трайлинг на синем экране.Я использую Visual C ++ 2010 в качестве среды разработки.Как я упоминал ранее, я получаю указанное выше исключение при запуске программы.
Я определил объект класса GLBatch.GLBatch triangleBatch;
, когда я пытаюсь использовать тот же объект при настройке контекста рендеринга, он терпит неудачу.
void SetUpRenderingContext()
{
//creating the Blue background
glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
shaderManager.InitializeStockShaders();
// Load up a triangle
GLfloat vVerts[] = { -0.5f, 0.0f, 0.0f,
0.5f, 0.0f, 0.0f,
0.0f, 0.5f, 0.0f };
if(triangleBatch)
{
triangleBatch.Begin(GL_TRIANGLES, 3);
triangleBatch.CopyVertexData3f(vVerts);
triangleBatch.End();
}
}
он терпит неудачу в самой первой строке triangleBatch.Begin ();
Я отладил проблему.Однако я внес некоторые незначительные изменения для проверки цели.Я включил файл GLBatch.cpp в мой обозреватель решений.Затем, отлаживая код, я заметил, что код в условной группе #ifdef OPENGL_ES ...... # endif
создает проблему.Когда я прокомментировал все эти строки, мой проект запущен.Можете ли вы объяснить мне, почему это ведет себя таким образом.