在VC ++ 2010上的OPENGL superbible第5版中编译示例代码时出现运行时错误

时间:2011-07-13 09:23:21

标签: opengl

我已经开始学习OpenGL了。我从Superbible第5版开始。我在执行本书的第一个例子时遇到了运行时错误。 我试图在蓝色屏幕上渲染一个traingle。我使用Visual C ++ 2010作为我的开发IDE。 正如我之前提到的,当我运行程序时,我得到了上述异常。

我已经定义了一个GLBatch类Object。 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

正在创建一个问题。当我评论所有这些线时,我的项目已启动并运行。你能解释一下为什么会这样做吗。

0 个答案:

没有答案