ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

OpenGL第一讲——第一个OpenGL程序

2022-01-14 00:02:52  阅读:202  来源: 互联网

标签:窗口 第一个 OpenGL 程序 GLUT 0.5 400 函数


Chapter1 第一个GL程序

在一个黑色的窗口中央画一个白色的矩形:

#include <GL/glut.h>

void myDisplay(void)
{
    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("第一个OpenGL程序");
    glutDisplayFunc(&myDisplay);
    glutMainLoop();
    return 0;
}
image-20211229105939640
运行结果

首先包含头文件,glut里包含了gl和glu的头文件,所以只需要这一个

#include <GL/glut.h>

glut开头的函数都是GLUT工具包所提供的函数

// 对GLUT进行初始化,这个函数必须在其它的GLUT使用之前调用一次。其格式比较死板,一般照抄这句glutInit(&argc, argv)就可以了
glutInit(&argc, argv);
// 设置显示方式,其中GLUT_RGB表示使用RGB颜色,与之对应的还有GLUT_INDEX(表示使用索引颜色)。GLUT_SINGLE表示使用单缓冲,与之对应的还有GLUT_DOUBLE(使用双缓冲)。
glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
// 设置窗口在屏幕中的位置
glutInitWindowPosition(100, 100);
// 设置窗口的大小
glutInitWindowSize(400, 400);
// 根据前面设置的信息创建窗口。参数将被作为窗口的标题。
// 注意:窗口被创建后,并不立即显示到屏幕上。需要调用glutMainLoop才能看到窗口。
glutCreateWindow("第一个OpenGL程序");
// 设置一个函数,当需要进行画图时,这个函数就会被调用
glutDisplayFunc(&myDisplay);
// 进行一个消息循环。
glutMainLoop();

需要画图时,调用了myDisplay函数,其中以gl开头的都是OpenGL的函数:

// 清除。GL_COLOR_BUFFER_BIT表示清除颜色
glClear(GL_COLOR_BUFFER_BIT);
// 画一个矩形。四个参数分别表示了位于对角线上的两个点的横、纵坐标。
glRectf(-0.5f, -0.5f, 0.5f, 0.5f);
// 保证前面的OpenGL命令立即执行(而不是让它们在缓冲区中等待)。其作用跟fflush(stdout)类似。
glFlush();

标签:窗口,第一个,OpenGL,程序,GLUT,0.5,400,函数
来源: https://blog.csdn.net/weixin_47524903/article/details/122485343

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有