OpenGL 编程(1)

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
原文地址:https://www.cnblogs.com/ikaka/p/4864577.html