#include <stdio.h>

//C库函数

#include <unistd.h>

//UNIX标准函数,与系统相关<UNIxSTanDard>

#include <directfb.h>

//directfb库函数

static IDirectFB *dfb = NULL;

//directfb入口,最高接口

static IDirectFBSurface *primary = NULL;

//平面接口对象,若CooerativeLevel设为DFSCL_FULLSCREEN,则为首层平面

static int screen_width = 0;

static int screen_height = 0;

//设置两个静态常量来记录屏幕的长宽信息,初始化为0,以适应任何界面

int main(int argc, char **argv)

{

DFBSurfaceDescription *dsc;

//创建DFBSurface描述对象

DirectFBInit(&argc, &argv);

//初始化Directfb,初始化函数的实参为argc,argv的地址,

//即*argc, ***argv(*(*argv[]))

//此函数可使argc和argv参数在directfb中使用。

DirectFBCreate(&dfb);

//创建最高接口,给dfb对象分配了一段内存空间

dfb->SetCooperativeLevel(dfb, DFSCL_FULLSCREEN);

//将dfb的CooperativeLevel设置为DFSCL_FULLSCREEN。

//这样我们所绘的图形将独占显示在显示设备的最上层(primary layer),

//否则只能显示在大鼠标的下方

dsc->flags = DSDESC_CAPS;

//指定要设置的区域,这里为DSDESC_CAPS,则可对caps区域进行设置。有唤醒之意。

dsc->caps = DSCAPS_PRIMARY | DSCAPS_FLIPPING;

//将caps设置为以上两个参数,DSCAPS_PRIMARY即将dfb设为最高层,

//而DSCAPS_FLIPPING参数将其设为要见,此参数在1.0.1版本中是没有的

dfb->CreateSurface(dfb, dsc, &primary);

//利用dsc创建一个 平面,此平面的信息放在primary中

primary->GetSize(primary, &screen_width, &screen_height);

//获取screen_width和screen_height的值,即全屏的长和宽

printf("%d/t%d/n", screen_width, screen_height);

//测试行,查看此获得的长宽值

primary->FillRectangle(primary, 0, 0, screen_width-1, screen_height-1);

//将一个矩形将屏幕覆盖起来,以矩形的左上角和右下角坐标为实参

//默认这个矩形的颜色为黑色,绘制参数为DSDRAW_NOFX,即无特效

primary->SetColor(primary, 0x80, 0x80, 0xff, 0xff);

//设置画笔颜色,从第二个参数起分别为r,g,b,a,a为alpha(透明)值

primary->DrawLine(primary, 0, screen_height/2,

screen_width-1, screen_height/2);

//画一条直线,以起点和终点坐标为实参

primary->Flip(primary, NULL, 0);

//绘制完成后别忘了FLIP一下,让绘制的内容可见

sleep(5);

//暂停5秒

return 0;

}

DirectFB教程导读-在屏幕中心画一条横线相关推荐

  1. Android_(控件)使用自定义控件在屏幕中绘制一条虚线

    在Android屏幕中绘制虚线,最通用的是自定义控件DashedLine,再将自定义控件放入xml布局中 运行截图: 程序结构 package com.example.asus.gary_042;im ...

  2. div html 下边加横线_HTML如何在两个div中画一条横线 | 学步园

    近日在画一个界面的时候,遇到一个需求:在界面当中画一条竖线,且这条竖线在高度上需要自动占满整个父div(即这条竖线的高度和两个div中较高的一个等高). 往常我们画一条横线直接用标签< hr&g ...

  3. 在HTML中画一条横线

    怎么画一条横线?我想到的有三种方法,但是各自样式不一,所以大家按需求来哦. 1.<hr />标签,对的,这个标签就代表一条横线,样式大概是这样的,如图(a与b之间哦): <html& ...

  4. html表格中加横线,Word表格中如何加一条横线

    有时候要用word做一个表格或者一份协议书,都需要画下划线,打印出来后,上面可以填写内容如何给表格里面加一条横线呢?下面就来告诉你怎么做. 在word表格中加一条横线的几种方法介绍: Word给表格里 ...

  5. DirectFB代码导读

    DirectFB代码导读 转载时请注明出处和作者联系方式 作者联系方式:李先静 <xianjimli at hotmail dot com> DirectFB是一个庞大的系统,对它进行彻底 ...

  6. 关于高分辨率屏幕中VMware虚拟机的一些问题的解决

    关于高分辨率屏幕中VMware虚拟机的一些问题的解决 最近刚入手的电脑的分辨率很高,但是作为一个Linux码农,需要虚拟机是是一个必备的需求,可是装虚拟机却弄了很久,基本上这个问题网上描述的可能都不太 ...

  7. leafLet入门教程兼leafLet API中文文档参考

    leafLet官方文档链接(英文原版):https://leafletjs.com/reference-1.3.4.html#marker-bindpopup 文章目录 leafLet教程 一.简单入 ...

  8. php中生成灯泡 代码怎么写,PS教程之在灯泡中加入灯丝文字

    今天的教程是在灯泡中加入灯丝文字.灯泡中本身带有灯丝,制作的时候,我们只需要把灯丝换成想要的文字,再简单给文字增加一些发光效果,跟灯丝融合起来,再渲染一些光晕即可.所以今天的PS教程不是很难,只要好好 ...

  9. xd怎么做页面滑动_XD教程 | 如何在XD中制作拖拽手势”

    原标题:XD教程 | 如何在XD中制作"拖拽手势" 今日主题:设计一个滑动交互 使用工具:Adobe XD 预计时长:1-2分钟 实用指数:★★★★★ 难度系数:★ 本期教程,我们 ...

最新文章

  1. 数字营销,带动汽车销量增长
  2. 烂泥:mysql5.5数据库cmake源码编译安装
  3. 词法分析(3)---DFA
  4. adnroid开发环境的搭建
  5. Swin Transformer升级版来了!30亿参数,刷榜多项视觉任务
  6. 代码重用_WebAssembly的速度和代码重用
  7. python读取文本中的内容
  8. 1688.比赛中的配对次数-LeetCode
  9. Flink – WindowedStream
  10. Type is unsupported, or the types of the items don‘t match field type in CollectionDef.
  11. 基于CSS实现的尖角提示符
  12. 解决 ThinkPad x270 安装 ubuntu 14.04 后的网络问题
  13. c语言编写温度监测界面,基于51单片机的温度检测系统_单片机C语言课题设计报告.doc...
  14. 迷你云服务器怎么开,迷你世界迷你云服怎么开_迷你世界迷你云服打开方法_玩游戏网...
  15. 陶哲轩实分析 习题6.6.5
  16. 学习springboot整合mybatis并编写测试类
  17. 谢耳朵用的MIT人工智能情绪探测器,你也可以拥有
  18. 骡马盒子搭建详细教程
  19. c# 串口通信 DataReceived 事件触发方法的使用
  20. 期货浮动盈亏(期货浮动盈亏和盯市盈亏)

热门文章

  1. 蓝牙App设计2:使用Android Studio制作一个蓝牙软件(包含:代码实现等)
  2. 谷粒商城二十五springCloud之Sleuth+Zipkin 服务链路追踪
  3. Golang实现选择排序
  4. 计算机主机的装机用途,计算机攒机作业分析.doc
  5. rcnn->fast->faster
  6. 2021.09.07 移动端APP开发了解一下
  7. Golang http之transport源码详解
  8. 海康威视技术面试总结
  9. MIT的《深度学习》精读(2)
  10. PULSE (人种转换器~)