DFB系列 之 Clear清空surface缓存

1. 函数原型解析

函数声明:
DFBResult Clear ( 
   IDirectFBSurface    *  thiz,  
   u8     r,  
   u8     g,  
   u8     b,  
   u8     a  
);

    Clear the surface and its depth buffer if existent. 
    Fills the whole (sub) surface with the specified color while ignoring drawing flags and color of the current state, but limited to the current clip. 
    As with all drawing and blitting functions the backbuffer is written to. If you are initializing a double buffered surface you may want to clear both buffers by doing a Clear-Flip-Clear sequence. 

 

参数介绍:
    thiz: 自身指针变量,类似this指针的变量; 属于DirectFB的招牌写法。
    (r, g, b, a):表示RGB色彩值,a表示透明度(32位色中使用)

返回值:

2. 实例 


计算机表示颜色也是用二进制。16位色的发色总数是65536色,也就是2的16次方;24位色被称为真彩色,它可以达到人眼分辨的极限,发色数是1677万多色,也就是2的24次方。但32位色就并非是2的32次方的发色数,它其实也是1677万多色,不过它增加了256阶颜色的灰度也就是8位透明度,发色数其实2的24次方,但是增加了8位透明度,就规定它为32位色。少量显卡能达到36位色,它是24位发色数再加512阶颜色灰度。 

3. 备注-RGB原理 

RGB是从 颜色发光的原理来设计定的,通俗点说它的 颜色混合方式就好像有红、绿、蓝三盏灯,当它们的光相互叠合的时候, 色彩相混,而 亮度却等于两者亮度之总和,越混合亮度越高,即加法混合。
有色光可被无色光冲淡并变亮。如蓝色光与白光相遇,结果是产生更加明亮的浅蓝色光。知道它的混合原理后,在 软件中设定颜色就容易理解了。
红、绿、蓝三盏灯的叠加情况,中心三色最亮的叠加区为白色,加法混合的特点:越叠加越明亮。
对于单独的R或G或B而言,当数值为0时,代表这种颜色不发光;如果为255,则该颜色为最高亮度。因此当RGB三种色光都发到最强的亮度,纯白的RGB值就为255,255,255。屏幕上黑的RGB值是0,0,0。R,意味着只有红色存在,且亮度最强,G和B都不发光。因此最红色的数值是255,0,0。同理,最绿色就是0,255,0;而最蓝色就是0,0,255。黄色较特殊,是由红色加绿色而得就是255,255,0

       RGB 颜色称为加成色,因为您通过将 R、G 和 B 添加在一起(即所有光线反射回眼睛)可产生白色。加成色用于照明光、电视计算机显示器。例如,显示器通过红色、绿色和蓝色荧光粉发射光线产生颜色。绝大多数可视光谱都可表示为红、绿、蓝 (RGB) 三色光在不同比例和强度上的混合。这些颜色若发生重叠,则产生青、洋红和黄

来源: <http://baike.baidu.com/link?url=BeKIoDk3YqPjGVoRBLTSCWpO9wlap4QPttPqrbjWNEgUEaMlKFw4hJH1bEHihQPp>



4. 备注-32位色 

       计算机表示颜色也是用二进制。16位色的发色总数是65536色,也就是2的16次方;24位色被称为真彩色,它可以达到人眼分辨的极限,发色数是1677万多色,也就是2的24次方。但32位色就并非是2的32次方的发色数,它其实也是1677万多色,不过它增加了256阶颜色的灰度也就是8位透明度,发色数其实2的24次方,但是增加了8位透明度,就规定它为32位色。少量显卡能达到36位色,它是24位发色数再加512阶颜色灰度。 
       至于32位色和16位色肉眼分辨不出来?其实只要打开一张有较大面积渐变色的图案,然后分别把显卡属性的 颜色质量 调整为16位色和32位色,即可看出二者的差别来。

你可能感兴趣的:(clear,DirectFB)