opengl win32程序建立

opengl win32程序建立
     最近开始学习opengl。opengl win32下有很多框架可以用,它们的基本原理大至是对win32窗口程序的封装,和opengl初始化的一些封装。看了下,最终选定glfw。
            第一个程序如下:
#include <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(480, 320, "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))
	{
		/* Draw a triangle */
		glBegin(GL_TRIANGLES);

		glColor3f(1.0, 0.0, 0.0);    // Red
		glVertex3f(0.0, 1.0, 0.0);

		glColor3f(0.0, 1.0, 0.0);    // Green
		glVertex3f(-1.0, -1.0, 0.0);

		glColor3f(0.0, 0.0, 1.0);    // Blue
		glVertex3f(1.0, -1.0, 0.0);

		glEnd();

		/* Swap front and back buffers */
		glfwSwapBuffers(window);

		/* Poll for and process events */
		glfwPollEvents();
	}

	glfwTerminate();
	return 0;
}

然后在工程中加入所需lib,opengl32.lib,glfw3dll.lib,运行会显示一个三角形。
这段程序,首先调用glfwInit()来进行初始化。然后创建窗口。glfwcreateWindow.再把opengl绘制与窗口关联。查询窗口状态glfwWindowShouldClose(window),glBegin到glEnd绘制三角形。glfwWapBuffers()缓冲区翻转。glfwPollEvents()分发事件。glfwTerminate()结束glfw相关的资源。

通过三角形,我们发现。屏幕正中间为(0,0),y向上增加,x向右增加。整个屏幕x,y∈(-1,1)渲染正方向逆时针。基本图元为三角形,四边形只是两个按逆时针拼接的三角形。

你可能感兴趣的:(opengl win32程序建立)