搭建opengl环境可以看我之前出过的教程
在Visual C++下简易OpenGL环境搭建教程_星空_MAX的博客-CSDN博客_c++opengl
opengl有着其他语言的版本,创建图形的思想全都一致,都可以参考
使用opengl函数完成窗体的绘制
#include<GL/glut.h>
void Display()
{
glClear(GL_COLOR_BUFFER_BIT);
glRectf(-0.5f,-0.5f,0.5f,0.5f);
glFlush();
}
int main(int argc,char *argv[])
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
glutInitWindowPosition(100, 100);
glutInitWindowSize(400, 400);
glutCreateWindow("OpenGLTest");
glutDisplayFunc(&Display);
glutMainLoop();
return 0;
}
执行后
1.#include<GL/glut.h>
为Opengl的GLUT头文件
2.glutInit
完成初始化过程,在其余代码执行之前之前调用一次
如果没有调用用就会出现
Function <glutCreateWindow> called without first calling 'glutInit'
3.glutInitDisplayMode
设置显示方式
其中表示用了RGB颜色模式和单缓冲模式
这些就是其中的模式,运算符组合成不同的标志位,具体的含有我将在以后的函数中去讲
4.glutInitWindowPosition
设置窗体相对于屏幕的位置
5.glutWindowSize
设置窗体的大小
6.glutCreatWindowSize
创建好窗体,参数为窗体的标题,但是主义,窗口不会立即显示出来,需要调用后来的
glutmain才能看清窗口
像在UE引擎里面,CreatWidget以后需要AddToView,才将创建好的窗口渲染到屏幕上,但其实这个窗体在内存里面有一份
6.glutDisplayFunc
注册一个函数,当需要时候,这个函数就会完成绘制
7.glutMainLoop
将相关函数进行循环调用,然后就可以显示窗口了
8.glClear
表明需要清楚的缓存
其中GL_COLOR_BUFFER_BIT清除颜色
还有其他的缓存将在请问以后细讲
-
GL_COLOR_BUFFER_BIT: 当前可写的颜色缓冲
-
GL_DEPTH_BUFFER_BIT: 深度缓冲
-
GL_ACCUM_BUFFER_BIT: 累积缓冲
-
GL_STENCIL_BUFFER_BIT: 模板缓冲
9. glRectf
画一个矩形,前两个参数代表矩形左上角点的坐标,后两个参数代表矩形右下角点的坐标
10.glFlush
在有限时间内强制执行OpenGl函数,单缓冲模式下物体会一个一个胡子hi到屏幕上面