OpenGL 编程一
GLUT工具库使用
GLUT 通过下面几个函数执行初始化一个窗口,并渲染。
- GLUT 初始化函数,并处理所有命令行参数, 应该在其他函数调用之前调用。
gluInit (int *argc, char **argv)
- 设置模式:RGBA模式, 颜色索引模式, 同时也可以设置单双缓冲,如设置一个所缓冲:
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA | GLUT_DEPTH)
glutInitDisplayMode(usigned int mode)
- 设置屏幕大小和位置
glutInitWindowSize(int width, int size)
glutInitWindowPosition(int x, int y)
- 声明使用OpenGL的版本
glutInitContextVersion(int mojorVersion, int minorVersion)
- 声明使用OpenGL渲染环境的类型
glutInitContextFlags(int flags)
- 创建窗口
glutCreateWindow(char *string)
- 显示回调函数,每当GLUT确定一个窗口的内容需要重新显示时,通过glutDisplayFunc注册那个回调函数会被执行。
glutDisplayFunc(void (*func)(void))
实例:
#include <GL/freeglut.h>
#include <GL/gl.h>
void renderFunction()
{
glClearColor(0.0, 0.0, 0.0, 0.0);
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0, 1.0, 1.0);
glOrtho(-1.0, 1.0, -1.0, 1.0, -1.0, 1.0);
glBegin(GL_POLYGON);
glVertex3f(0.25, 0.25, 0.0);
glVertex3f(0.75, 0.25, 0.0);
glVertex3f(0.75, 0.75, 0.0);
glVertex3f(0.25, 0.75, 0.0);
glEnd();
glFlush();
}
int main(int argc, char** argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE);
glutInitWindowSize(500,500);
glutInitWindowPosition(100,100);
glutCreateWindow("OpenGL - First window demo");
glutDisplayFunc(renderFunction);
glutMainLoop();
return 0;
}
//编译命令:
// gcc gl_test_0.c -o gl_test_0 -lGL -lGLU -lglut