环境:win10
库:OpenGL gult库

创建单个窗口
OpenGL在创建窗口前,先进行窗口的初始化,并可以设置窗口的模式、窗口的位置、窗口的尺寸大小

int main(int argc, char *argv[])
{   glutInit(&argc, argv);//初始化gult窗体库glutInitDisplayMode(GLUT_ALPHA | GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH | GLUT_STENCIL);//设置窗口的显示模式gultInitWindowSize(1080,1080);//设置初始窗口大小glutInitWindowPosition(0,0);//设置初始窗口位glutCreatWindow("This is my first Display");//创建窗口,并命名为“This is my first Display”glutDisplayFunc(display_callback);//执行画面绘制函数,执行display_callback回调函数,进行画面绘制glutReshapeFunc(reshape_callback);//改变窗口大小,执行reshape_callback回调函数,调整窗口大小,并保持图形比例(如无画面大小变化需求,则可忽略)glutKeyboardFunc(keyboard_callback);//接受键盘控制,执行keyboard_callback回调函数,处理键盘输入并执行相应逻辑(如无键盘输入需求,则可忽略)timer_callback(20);//时间回调函数,循环绘制画面,20ms执行一次glutMainLoop();//glut事件循环函数,无限循环以上所以事件return 0;
}

/画面绘制回调函数/

void display_callback(void)
{glClearColor(0.f, 0.f, 0.f, 0.f);//设置OpenGL画面颜色glClear(GL_COLOR_BUGGER_BIT);//清除缓存颜色,将所有的像素设置为glClearColor()设置的值draw_scene();//画面绘制函数,画面要显示什么画面,将在这个函数里实现即可
}

/时间回调函数/

static void timer_callback(int value)
{draw_scene();glutPostRedisplay();//标记当前窗口需要重复绘制glutTimerFunc(timer_value > 0 ? timer_value : 1, timer_callback, value);//定时器
}

创建多个窗口
创建多个窗口在main函数中重复执行glutCreatWindow、glutDisplayFunc函数,并新增第二个窗口的回调函数,在timer回调函数里同样重复调用即可。

结束语:代码是最低级的实现手段,方法才是最珍贵的,这里只是我所熟悉也比较喜欢的一种实现方法,仅供借鉴。

OpenGL-glut创建窗口相关推荐

  1. OpenGL之创建窗口

    目录 什么是OpenGL? 核心模式与立即渲染模式 立即渲染模式 (Immediate mode) 核心模式(Core-profile) 状态机 对象 创建窗口 配置环境 什么是OpenGL? 一般它 ...

  2. OpenGL创建窗口

    OpenGL创建窗口 OpenGL创建窗口 源代码剖析 主要源代码 OpenGL创建窗口 OpenGL没有自己的API用于创建和操作窗口.支持OpenGL的现代窗口系统包括一个子系统,该子系统提供Op ...

  3. 如何在Python中创建OpenGL/Glut

    OpenGL(开放图形库)是一种跨语言.多平台的应用程序编程接口(API),用于绘制二维和三维计算机图形. API通常用于与图形处理单元(GPU)交互,以实现硬件加速渲染.OpenGL由Silicon ...

  4. 【OpenGL】七、桌面窗口搭建 ( 导入头文件 | 桌面程序入口函数 | 注册窗口 | 创建窗口 | 显示窗口 )

    文章目录 一.导入头文件 二.桌面程序入口函数 三.注册窗口 四.创建窗口 五.显示窗口 六.完整代码示例 七.相关资源 基于 [OpenGL]一.Visual Studio 2019 创建 Wind ...

  5. Opengl入门-glfw3创建窗口改变背景色

    文章目录 一.目标 二.结果 三.具体步骤 下载 一.目标 opengl windows环境 glfw3创建窗口改变背景色 二.结果 三.具体步骤 1 glfw是窗口库需要头文件,依赖路径,调用依赖 ...

  6. 基于C++和OpenGL (GLUT) 实现太阳系行星系统

    基于C++和OpenGL (GLUT) 实现太阳系行星系统 效果图: 分析与设计 OpenGL 包含了很多渲染函数,但是他们的设计目的是独立于任何窗口系统或操作系统的.因此,它自身并没有包含创建打开窗 ...

  7. OpenGL Glut剖析(2)--平行投影及其显示范围

    http://anony3721.blog.163.com/blog/static/51197420114282720194/ OpenGL Glut剖析(2)--平行投影及其显示范围 2011-05 ...

  8. 实验0.2 OpenGL程序创建与运行

    下列介绍与图示均以Microsoft Visual Studio Community 2017版本(下面简称为VS)为例,其它版本类似. 1. 创建控制台应用 (1)点击:文件→新建→项目,如下图所示 ...

  9. 【OpenGL】八、初始化 OpenGL 渲染环境 ( 导入 OpenGL 头文件 | 链接 OpenGL 库 | 将窗口设置为 OpenGL 窗口 | 设置像素格式描述符 | 渲染绘制 ) ★

    文章目录 一.导入 OpenGL 的两个头文件 二.链接 OpenGL 库 三.将 Windows 桌面窗口改成 OpenGL 窗口 四.获取窗口设备 五.设置像素格式描述符 六.设置像素格式 七.创 ...

最新文章

  1. 计算机网络各种传输介质说明
  2. python wordcloud 错误 ModuleNotFoundError: No module named 'query_integral_image'
  3. C++又一坑:动态链接库中的全局变量
  4. iphone静音键失灵_你知道iPhone手机中哪些一般人不知道的功能?
  5. 主机名修改 Oracle监听器,oracle agent不能启动的解决方案
  6. 第20天学习Java的笔记-static静态
  7. 分治算法-02凸包问题
  8. CSS串联和后代选择器
  9. 地产遇冷之际,行业竞争加剧,房企如何走出营销低谷,先声夺人?
  10. Matlab重建信号实验总结,实验三信号采样与重建(实验报告).doc
  11. 基于php和mysql的网上购物系统设计与实现_基于PHP+MySQL的网上购物系统设计与实现...
  12. 机器人油封_机器人油封 机器人减速机 机器人伺服电机油封 KVNOK油封
  13. ActiveSync 无法同步解决记录
  14. 电脑(笔记本/台式)如何关闭UAC
  15. FDD LTE B1是什么
  16. python使用 photoshop-python-api 调用ps处理批量动作操作
  17. mysql insert 写法_mysql中insert into语句的6种写法(上)
  18. 至少144只独角兽在等着IPO,数据不好,PE 给的估值可能保不住了
  19. 代发核心期刊骗局_“代发论文”骗局:近2000人被骗 多数不愿报案
  20. .Net Core快速开发平台源码 敏捷开发框架OA系统 CRM快速开发框架

热门文章

  1. pycharm运行报错:Process finished with exit code -1073741515 (0xC0000135)
  2. POI 在导出的Excel中插入图片
  3. 创客集结号:3D打印技术原理
  4. 区块链超级记帐本架构概览
  5. 启用计算机双通道内存的方法,如何正确开启双通道
  6. XP系统经典故障FAQ
  7. HyperLPR车牌识别库代码分析总结(15)
  8. 软件测试工程师面试题总结
  9. linux怎么生成图形,如何在Ubuntu 16.04中创建GIF动态图片
  10. 正则表达式的基本用法