zoukankan      html  css  js  c++  java
  • 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
    
  • 相关阅读:
    博客园特效页脚保存
    go channel
    goland 注册
    mac安装go环境
    go 结构体与方法
    gin教程
    hihocoder234周 计算不包含黑点的矩形个数
    参考文献的正确姿势
    vscode用法
    使用extract-text-webpack-plugin提取css文件
  • 原文地址:https://www.cnblogs.com/ikaka/p/4864577.html
Copyright © 2011-2022 走看看