使用OpenGL创建窗口 C ++

在OpenGL上制作任何程序的基本步骤是创建一个窗口,所有代码都将在其中工作,因此我们如何创建它?在您的机器上安装OpenGL库之后(Ubuntu的OpenGL安装指南:如何在Ubuntu中安装OpenGL),我们可以开始了。

首先让我们了解如何构建OpenGL程序吗?

  1. 最好将所有初始化和相关的一次性参数设置放在一起functioninit()

  2. 要在用户定义的函数中绘制(显示)的图片的几何描述,将在GLUT函数中引用glutDisplayFunc()

  3. 主要功能将包含GLUT功能,用于设置显示窗口和获取图像屏幕。

程序:

让我们动手处理代码:

#include<GL/freeglut.h>

//创建一个空寡妇的程序
void init(){
	glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);	//C行
	glutInitWindowSize(640,480);
	glutInitWindowPosition(1000,200);
	glutCreateWindow("Simple Window");
}

void display(){
	glClearColor(1.0,1.0,1.0,0.0);
	glClear(GL_COLOR_BUFFER_BIT);
	//gluOrtho2D(0.0,100.0,0,100.0); 
	glFlush();
}

int main(int argc,char **argv)
{
	glutInit(&argc,argv);			//A线
	init();					//B行
	glutDisplayFunc(display);
	glutMainLoop();
	
	return 0;
}

输出结果

使用OpenGL创建窗口  C ++

说明:

#include <GL / freeglut.h>,我们在程序中使用了GL / freeglut库,几乎在所有程序中都可以找到它。

在A行中,我们将其称为glutInit(&argv,argv)是因为它初始化了OpenGL实用工具包(GLUT),因此必须在开始时完成,并且是必须执行的步骤之一。

在B行中,我们将用户定义的函数调用为init()。现在我们了解了每行的含义,glutInitDisplayMode()用于选择缓冲选项和颜色模式选择。在这里,我们使用GLUT_SINGLE进行窗口显示,这意味着一个缓冲区将用于一种颜色,我们可以使用随后的两个或三个缓冲区模式来增加颜色的数量,我们使用GLUT_RGB意味着我们将使用红色,绿色和蓝色作为主要颜色颜色。glutWindowSize()用于定义要创建的窗口的大小。glutWindowPosition()用于定义屏幕上窗口的起点(它从角的左上角开始,即左1000像素,下200像素)。Glutcreatewindow() 负责在屏幕上创建窗口,我们也可以传递一个字符串参数,该参数在新创建的窗口顶部显示该字符串。

glutDisplayFunc()它将函数的名称作为其参数,并将其显示在屏幕上(尽管我们的displays()函数中没有任何要显示的内容,它将不显示任何内容)。

对于背景颜色,由于背景的默认颜色是黑色,要对其进行更改,我们使用两个函数,一个是glClearColor(r,g,b,a),该函数接受4个参数,分别用于红色,绿色,蓝色和Alpha值。它仅接受这三种颜色,因为我们在C行中定义了将仅使用该一种颜色,并且在0和1之间传递了一个值(浮点数)以定义其组成,结果颜色将是背景色,Alpha值是用于确定两种重叠颜色的结果。

其中a = 0是透明对象,a = 1是不透明对象

但是简单地使用glClearColor()不会改变背景颜色,可以肯定会设置背景但不会显示;除非我们使用glClear(GL_COLOR_BUFFER_BIT),否则它将激活图形处理器的颜色处理,并且分配的颜色将显示在窗口上。

gluOrtho2d()以四个浮点数作为参数,它们是Xmin,Xmax,Ymin和Ymax,它们定义了窗口内的坐标系。最后,我们使用glFlush()哪个将所有内容刷新到屏幕上。

glutMainLoop()是必须使用的函数,因为它负责将显示保持在屏幕上,否则程序将在没有人眼注意的情况下结束。