Ошибка времени выполнения при компиляции примера кода в OPENGL Superbible 5-е издание на VC ++ 2010 - PullRequest
0 голосов
/ 13 июля 2011

Я начал изучать 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

создает проблему.Когда я прокомментировал все эти строки, мой проект запущен.Можете ли вы объяснить мне, почему это ведет себя таким образом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...