笔者初使用OpenGL之时,所遇到的命令不能生效的问题:比如开始想用gLClearColor来设置背景色为红色,结果执行后背景还是默认的黑色。后来查阅资料,才知道这与OpenGL的指令执行流程有关,要让设置的绘制效果实现,需要用到glFlush()或glFinish()函数。

OpenGL是用一条渲染管线线性处理命令的,它的绘图机制是:先用 OpenGL 的绘图上下文 Rendering Context (简称为 RC )把图画好,再把所绘结果通过 SwapBuffer() 函数传给 Window 的 绘图上下文 Device Context (简记为 DC)。要注意的是,程序运行过程中,可以有多个 DC,但只能有一个 RC。因此当一个 DC 画完图后,要立即释放 RC,以便其它的 DC 也使用。(转自http://blog.sina.com.cn/s/blog_4e6f376d0100c0o2.html)

回到开头那个问题,一般来说,我们提交给OpenGL的绘图指令(比如设置背景色)并不是马上送给图形硬件执行,而是放到一个缓冲区里面,等待缓冲区满了再将这些指令送给图形硬件执行,所以只写了短短的几条设置背景色之类的指令是无法填满缓冲区的,自然这些指令不能马上执行以达到所需要的效果了。因此每次在写完绘图代码需要让其完成效果时我们需要在代码后面添加glFlush()或gLFinish()函数:(1)gLFlush()作用是将缓冲区中的指令(无论是否为满)立刻送给图形硬件执行,发送完立即返回;(2)glFinish()作用也是将缓冲区中的指令(无论是否为满)立刻送给图形硬件执行,但是要等待图形硬件执行完这些指令才返回。

转载于:https://www.cnblogs.com/tiandsp/p/7440827.html

(转)gLFlush()和gLFinish()相关推荐

  1. android没有实现glFlush或glFinish

    用户不能强制渲染出已经提交的内容,这个动作由系统托管.由此给老代码带来一些问题,企图在一帧里多次改变显示内容是不可能的.

  2. Tile-Based架构下的性能调校

    Performance Tunning for Tile-Based Architecture Tile-Based架构下的性能调校 by Bruce Merry GameKnife译 译序 在大概1 ...

  3. 编写你的应用程序(三)、3D图形

    原文链接:https://developer.chrome.com/native-client/devguide/coding/3D-graphics 注意:已针对ChromeOS以外的平台公布了此处 ...

  4. TBR架构的一些理解

    现在移动侧的GPU渲染架构(Bifrost.valhall)是按照job的方式来进行的,共有3类job:vs-job.tile-job.fs-job:它们都是在shader core中执行的:tile ...

  5. 移动端GPGPU 架构

    最近在面试的时候发现移动端现在是越来越热,然后就有被问到GPU的框架什么的PC端的这个可以参考这个:GPU硬件架构及其运行机制移动端的与PC端有很大的区别!比如移动端可以说没有独立的显存只有些寄存器c ...

  6. OpenGLES性能优化

    1.避免同步和Flushing操作 OpenGL ES的命令执行通常是在command buffer中积累一定量的命令后,再做批处理执行,这样效率会更高:但是一些OpenGL ES命令必须flush ...

  7. Mali GPU OpenGL ES 应用性能优化--基本方法

    1. 常用优化工具 2. 常用优化方案 OpenGL ES优化的主要工作是在图形管道中找到影响性能的bottleneck,其bottleneck一般表现在以下几方面: • 在应用程序代码中,如冲突检测 ...

  8. OpenLuGl V1.0 使用说明

    欢迎访问 Lu程序设计 OpenLuGl V1.0 使用说明 目  录 1 概述 2 OpenGl简介 3 OpenLuGl的图形输出及坐标系统 4 OpenLuGl的源程序基本格式 5 例子 6 显 ...

  9. OpenGL红宝书正序解读(一)

    OpenGL红宝书正序解读(一) 第一章:OpenGL简介 第二章:状态管理和绘制几何物体 绘图工具箱 清除窗口 指定颜色 强制完成绘图操作 坐标系统工具箱 描述点.直线.多边形 什么是点.直线.多边 ...

最新文章

  1. python主要运用于-Python的8大主要应用领域,看看哪个是你的菜?
  2. ABAP-获取用户的组织结构权限
  3. 多元时间序列回归模型_多元时间序列分析和预测:将向量自回归(VAR)模型应用于实际的多元数据集...
  4. 追加一列 python_常用的python代码总结
  5. ansys本地的help文件_PostgreSQL本地/远程登陆配置
  6. 【牛客2021暑假多校10】Train Wreck(出栈顺序,建树,优先队列维护)
  7. 最全LinuxC语言系统开发资源视频资源
  8. python验证身份证最后一位数字代表什么_身份证尾数带X的人,是有什么特殊身份吗?看完涨知识了...
  9. 惠普安装linux系统u盘,怎么用U盘安装linux系统
  10. steamcommunity 302占用端口
  11. 无锡工艺技术计算机信息管理论文,无锡工艺职业技术学院05/06学年第一学期.doc...
  12. 树莓派自定义游戏,Minecraft硬件编程,建造房屋,我的世界还可以这样玩
  13. 华为eNSP--4多个路由器连接配置(静态路由)
  14. python海龟图画龙珠_DeepOps的Python小笔记-天池龙珠计划-Python训练营-Task 02:DAY4
  15. win10下,扩展屏不清晰模糊。
  16. Homework 1 : Knowledge items of C++ (part 1)
  17. 手机上的计算机黑屏怎么办,手机黑屏是怎么回事,教您苹果手机黑屏怎么办
  18. 微信小程序--获取二维码(java后端)
  19. CSS样式解决英文换行断词问题
  20. 平稳过程之均值遍历性定理 - 随机过程

热门文章

  1. iphone电池怎么保养_蓄电池在ups系统中应该怎么维护保养?
  2. 全程图解交换机和路由器的应用
  3. 无符号数的算术四则运算中的各类单词的识别_文本反垃圾在花椒直播中的应用概述...
  4. 人工智能诗歌写作平台_智能写作VS人工写作,Giiso写作机器人解放你的创造力...
  5. java 矩阵题目_一些数学分析不错的题目
  6. url传递html字符串,将Selenium HTML字符串传递给Scrapy以将url添加到Scrapy的url列表中...
  7. java垃圾回收策论_深入理解 Java 虚拟机【3】垃圾收集策略与算法
  8. 未能加载文件或程序集rsy3_abp vnext2.0之核心组件模块加载系统源码解析
  9. python中构造方法可以被继承吗_python – 类继承:构造函数应该兼容吗?多重继承的情况?...
  10. mysql的函数用途_MYSQL小函数大用途之-------FIND_IN_SET