(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;


}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值