我已经开始学习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
正在创建一个问题。当我评论所有这些线时,我的项目已启动并运行。你能解释一下为什么会这样做吗。