1. 函数原型解析

函数声明:

DFBResult Flip ( 

   IDirectFBSurface    *  thiz,  

   const DFBRegion    *  region,  

   DFBSurfaceFlipFlags     flags  

); 
变换、更新surface buffer。

参数介绍:
    thiz:自身指针变量,类似this指针的变量;属于DirectFB的招牌写法。
    region:需要刷新的区域;平时编程的时候,尽量减小刷新的区域,减少不必要的刷新,可以在很大程度上提高绘图速度。
            如果参数为NULL,表示显示surface的内容,不做任何内容更新。
    flags:DFBSurfaceFlipFlags,描述Flip的行为;
    DSFLIP_NONE:通常,都把DFBSurfaceFlipFlags设为DSFLIP_NONE,其好处是:不做任何处理,刷新得最快。不过在实现一些动画的时候,会发现,绘制的物体在移动的时候,边缘会出现“飞边”,也就是说,物体的下半部是第N帧,而上半部是第N+1帧。这种“飞边”严重时,会导致画面有碎裂感,很不好看。其实这个问题也容易解,只要改一下Flip的参数就好了。把Flip()的第3个参数,也就是DFBSurfaceFlipFlags设为DSFLIP_WAIT
| DSFLIP_ONSYNC, 就可以解决此问题。
    DSFLIP_WAIT | DSFLIP_ONSYNC参数的含义是:将刷新操作和显示器的更新信号同步,等到显示器更新的时候再做Flip操作。这样,就不会出现看到物体的下半部是第N帧,而上半部是第N+1帧的现象了。不过,由于需要等待显示器的同步信号,所以,加上这个参数后,Flip()的速度会变慢。我的体会是:如果是绘制移动的物体,Flip时就要加上这个同步信号参数,如果是绘制不移动的物体,直接用DSFLIP_NONE就可以了。

2. 实例

       primary_surface->Flip(primary_surface, NULL, DSFLIP_WAITFORSYNC);

DFB系列 之 Flip()更新buffe的更多相关文章

  1. CRL快速开发框架系列教程三(更新数据)

    本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...

  2. 《WCF技术剖析》博文系列汇总[持续更新中]

    原文:<WCF技术剖析>博文系列汇总[持续更新中] 近半年以来,一直忙于我的第一本WCF专著<WCF技术剖析(卷1)>的写作,一直无暇管理自己的Blog.在<WCF技术剖 ...

  3. 7系列FPGA远程更新方案-QuickBoot(转)

    reference: http://xilinx.eetrend.com/d6-xilinx/article/2014-04/7009.html reference :  quickboot meth ...

  4. BootStrap 智能表单系列 首页 (持续更新中...)

    背景:本码农.NET后端工程师,在项目开发中发现写了很多重复的代码, 于是自己整了一套根据配置来生成form表单的插件,针对表单的改动仅需要修改配置的json即可 使用中发现还是蛮实用的,于是开源出来 ...

  5. Unity5系列资源管理AssetBundle——更新实现

    前面我们研究了AssetBundle的打包与加载,现在我们来了解下如何在项目中根据版本号更新内容. 最最重要的一点,细心的朋友应该看到了在加载AssetBundle的MrcAssetManager类中 ...

  6. DFB系列 之 SetCooperativeLevel协作级别

    1. 函数原型解析 函数声明 function SetCooperativeLevel(hWnd: HWND; dwFlags: DWORD): HResult; stdcall; 设置指定的IDir ...

  7. Windows phone 应用开发系列教程(更新中)

    Windows phone 应用开发[1]-Text To Speech        作为开篇章节.第一篇将在如下介绍一些Windows phone比较有意思的东西-Text To Speech[文 ...

  8. kubeadm安装集群系列-4.证书更新

    证书更新 默认证书一年有效期 一旦证书过期,使用kubectl时会出现如下提示:`Unable to connect to the server: x509: certificate has expi ...

  9. docker学习笔记一篇就通系列(持续更新)

    docker三要素 仓库 镜像 容器 仓库 仓库用来存放docker的镜像,类似于github存放代码医养 镜像 镜像是一个模板,封装了应用程序和配置依赖的可交付的运行环境,这个打包好的运行环境就是镜 ...

随机推荐

  1. ORM-Dapper学习<二>

    Dapper的简介 Dapper是.NET下一个micro的ORM,它和Entity Framework或Nhibnate不同,属于轻量级的,并且是半自动的.Dapper只有一个代码文件,完全开源,你 ...

  2. python中try except处理程序异常的三种常用方法

    如果你在写python程序时遇到异常后想进行如下处理的话,一般用try来处理异常,假设有下面的一段程序: try: 语句1 语句2 . . 语句N except .........: do somet ...

  3. Unity3D Shader Stencil模版测试学习

    官方文档地址: https://docs.unity3d.com/Manual/SL-Stencil.html 参考博客: http://blog.csdn.net/onafioo/article/d ...

  4. 《连载 | 物联网框架ServerSuperIO教程》- 16.OPC Server的使用步骤。附:3.3 发布与版本更新说明。

    1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 <连载 | 物联网框架ServerSuperIO教程>1.4种通讯模式机制. <连载 | 物联网框架Serve ...

  5. 【2017-03-20】HTML基础知识、文字标记、图片标记、空格换行、表格、表格嵌套及布局、超链接

    一.HTML基础知识 HTML: 网站(站点) - 网页 网站是由一个或者多个网页组合起来的 HTML作为文件后缀名,可以把文件变为网页 HTML是一门编程语言的名字:超文本标记语言 超越了文字的范畴 ...

  6. 纪念一下java学习之第一个get请求。

    环境,变量及工具: 1.java jdk1.8.X 2.tomcat 8.5.11 3. 环境变量: CATALINA_HOME: tomcat安装地址   JAVA_HOME:  JDK安装地址   ...

  7. MyBatis 源码分析——映射结果

    MyBatis最后一步一定是处理相关的结果——把数据映射成对应的模型对象.事实上在笔者看来如果读者们了解了mybatis如何去执行数据库,又是如何处理数据结果.那么就了解了mybatis的主要路线.因 ...

  8. React虚拟DOM具体实现——利用节点json描述还原dom结构

    前两天,帮朋友解决一个问题: ajax请求得到的数据,是一个对象数组,每个对象中,具有三个属性,parentId,id,name,然后根据这个数据生成对应的结构. 刚好最近在看React,并且了解到其 ...

  9. IOS-验证码的实现和封装(可以直接调用)

    最近对OC中的图像比较感兴趣.随手搞得一个类似验证码的demo.直接贴代码了. 小demo中的VerificationCodeView是继承自UIView的,所以需要用到的时候,可以直接定义一个UIV ...

  10. Ant.SOA微服务框架开源

    开源地址:https://github.com/yuzd/AntServiceStack   框架特色0.Service Management(服务治理) 1.CodeGen Contract Fir ...