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

    技术2022-05-20  31

    //函数功能 在屏幕中间画一条水平直线 #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; }


    最新回复(0)