运行这个代码想要显示三角形,结果却是一片黑
#include <GLFW/glfw3.h>
int main(void)
{
GLFWwindow* window;
/* Initialize the library */
if (!glfwInit())
return -1;
/* Create a windowed mode window and its OpenGL context */
window = glfwCreateWindow(640, 480, "Hello World", NULL, NULL);
if (!window)
{
glfwTerminate();
return -1;
}
/* Make the window's context current */
glfwMakeContextCurrent(window);
/* Loop until the user closes the window */
while (!glfwWindowShouldClose(window))
{
/* Render here */
glClear(GL_COLOR_BUFFER_BIT);
glBegin(GL_TRIANGLES);
glVertex2f(-0.5f, -0.5f);
glVertex2f(0.0f, 0.5f);
glVertex2f(0.5f, -0.5f);
glEnd;
/* Swap front and back buffers */
glfwSwapBuffers(window);
/* Poll for and process events */
glfwPollEvents();
}
glfwTerminate();
return 0;
}
代码中有一个错误:glEnd应该被调用为函数,而不是作为一个变量。正确的代码应该是:
glEnd();
另外,代码中缺少了头文件#include <GL/gl.h>,应该添加到代码的开头。
不知道你这个问题是否已经解决, 如果还没有解决的话:所需要做的很简单,就是使用glReadPixels
函数来获取OpenGL当前渲染出的像素数据,主要参考了
保存BMP图片在之前的博客中的第一部分有记录,代码非常简单,也不需要额外的库。
而OpenGL的最基础环境搭建在之前的文章《创建一个最小的OpenGL实例》中有说明,本篇的代码也将以此为起点。