(DFB) 在屏幕中间画一条直线

//函数功能 在屏幕中间画一条水平直线
#include <stdio.h>
#include <unistd.h>
#include <directfb/directfb.h>

static IDirectFB *dfb = NULL;//这是最上层的接口所有函数的入口均由它进入

static IDirectFBSurface *primary = NULL;//主平面,也就是屏幕了,在交互层使用DFSCL_FULLSCREEN,它是主层平面

//这里存储主平面的高和宽,从而为其它的操作提供支持
static int screen_width = 0;
static int screen_height = 0 ;

//用以检测错误的宏定义,用来检测大部分的函数的返回值是否正常,只适合在小的测试程序
//#define DFBCHECK(x...) { DFBResult err = x;if(err != DFB_OK){ fprintf(stderr,"%s <%d>:/n/t", _FILE_, _LINE_);DirectFBErrorFatal(#x, err);}}

int main(int argc, char **argv)
{
    DFBSurfaceDescription    dsc;//为了创建一个平面,需要定义一个平面描述子

    DirectFBInit(&argc, &argv);
    DirectFBCreate (&dfb);
    dfb->SetCooperativeLevel(dfb, DFSCL_FULLSCREEN);

    //设置dsc 的一些属性
    dsc.flags = DSDESC_CAPS;
    dsc.caps = DSCAPS_PRIMARY| DSCAPS_FLIPPING;

    dfb->CreateSurface(dfb, &dsc, &primary);//使用我们设定的dsc创建主平面(primary)
    primary->GetSize(primary,&screen_width,&screen_height);//得到主平面的宽与高
    primary->FillRectangle(primary, 0, 0, screen_width, screen_height);//通过画一个和主屏面同等大小的矩形来清空主平面;默认颜色为黑色
    primary->SetColor(primary, 0x80, 0x80, 0xff,0xff);//设置一下线的颜色,线的位置在屏幕中间
    primary->DrawLine(primary, 0, screen_height/2, screen_width -1, screen_height/2);
    primary->Flip(primary, NULL, 0);//显示

    sleep(5);//等待5秒后,程序自动退出

    primary->Release(dfb);

    return 0;


}

你可能感兴趣的:(File,测试,null,存储)