当前位置: 首页 > news >正文

【Qt之OpenGL】01创建OpenGL窗口

1.创建子类继承QOpenGLWidget

2.重写三个虚函数

/** 设置OpenGL的资源和状态,最先调用且调用一次* @brief initializeGL*/
virtual void initializeGL() override;
/** 设置OpenGL视口、投影等,当widget调整大小(或首次显示)时调用* @brief resizeGL* @param w* @param h
*/
virtual void resizeGL(int w, int h) override;
/** 渲染OpenGL窗口,当窗口widget需要更新时调用* @brief paintGL*/
virtual void paintGL() override;void CreateOpenGLWindow::initializeGL()
{//设置清空屏幕的颜色,黑色QOpenGLFunctions *f = context()->functions();f->glClearColor(0.f,0.f,0.f,0.f);
}void CreateOpenGLWindow::resizeGL(int w, int h)
{//设置视口大小,与窗口一样QOpenGLFunctions *f = context()->functions();f->glViewport(0,0,w,h);
}void CreateOpenGLWindow::paintGL()
{// 每次重绘之前清空屏幕颜色和深度缓冲QOpenGLFunctions *f = context()->functions();f->glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
}

initializeGL:

设置OpenGL的资源和状态,最先调用且调用一次

paintGL:

渲染OpenGL窗口,当窗口widget需要更新时调用。

在paintGL()以外的地方调用绘制函数是没有意义的,因为绘制图像最终将被paintGL()覆盖;

若需要从paintGL()以外的位置触发重新绘制(e.g. 使用计时器设置场景动画),则应调用widget的**update()**函数来安排更新。

resizeGL:

设置OpenGL视口、投影等,当widget调整大小(或首次显示)时调用

在这里插入图片描述

http://www.lryc.cn/news/342570.html

相关文章:

  • 如何判断代理IP质量?
  • 2023-2024年Web3行业报告合集(精选13份)
  • CSS中文本样式(详解网页文本样式)
  • tensorflow学习笔记(2)线性回归-20240507
  • 【JavaScript】作用域
  • C++程序设计教案
  • 修改Ubuntu远程登录欢迎提示信息
  • 暗区突围pc端下载教程 暗区突围pc端怎么下载
  • 大数据技术原理与技术简答
  • Mybatis的简介和下载安装
  • 大历史下的 tcp:一个松弛的传输协议
  • 加州大学欧文分校英语中级语法专项课程03:Tricky English Grammar 学习笔记
  • AI项目二十一:视频动态手势识别
  • 浅拷贝与深拷贝面试问题及回答
  • 推荐算法顶会论文合集
  • 组合模式(Composite)——结构型模式
  • 利用大模型提升个性化推荐的异构知识融合方法
  • Dockerfile 里 ENTRYPOINT 和 CMD 的区别
  • 腾讯的EdgeONE是什么?
  • SVM直观理解
  • Nessus 部署实验
  • 基于Springboot的水产养殖系统(有报告)。Javaee项目,springboot项目。
  • Java性能优化(五)-多线程调优-Lock同步锁的优化
  • WPF (Windows Presentation Foundation) 中 Attribute(属性)和 Property(属性)
  • 环形链表理解||QJ141.环形链表
  • java本地锁与分布式锁-个人笔记 @by_TWJ
  • 【每日刷题】Day33
  • vivado刷题笔记46
  • 网络基础——校验
  • SparkSQL与Hive整合 、SparkSQL函数操作