DirectFB 之 实例图像不断右移
来源:互联网 发布:comway 无线串口软件 编辑:程序博客网 时间:2024/06/05 14:22
/********************************************** * Author: younger.liucn@gmail.com * File name: imgrotate.c * Description: animation * Modified: * date: 2014-01-06 create *********************************************/#include <directfb.h>#include "animation.h"#define MAX_LOOP 2#define INTERVAL_PIXEL 2#define EYE_HZ 50#define INTERVAL_TIME (1000 / EYE_HZ)static int animation(int argc, char **argv);int main(int argc, char **argv){ return animation(argc, argv);}static int animation(int argc, char **argv){ int i, loop = 0; int screen_width = 0, screen_height = 0; DFBSurfaceDescription dsc; /* * For collecting infomation of image, * and provide image to IDirectFBSurface */ IDirectFBImageProvider *provider; IDirectFB *dfb = NULL; IDirectFBSurface *primary = NULL; IDirectFBSurface *logo = NULL; /* 初始化整个DirectFB库,为后续画图等操作做准备 */ DirectFBInit(&argc, &argv); DirectFBCreate(&dfb); /* 设置协作等级为全屏模式,具体请阅读SetCooperativeLevel接口解析 */ dfb->SetCooperativeLevel(dfb, DFSCL_FULLSCREEN); dsc.flags = DSDESC_CAPS; dsc.caps = DSCAPS_PRIMARY | DSCAPS_FLIPPING; /* 根据dsc创建一个基本平面 */ dfb->CreateSurface(dfb, &dsc, &primary); /* 获取该基本平面的宽度和高度 */ primary->GetSize(primary, &screen_width, &screen_height); /* 将要显示的图片及其相关信息保存在provider中 */ dfb->CreateImageProvider(dfb, BA_IMG_NAME, &provider); /* 将保存在provider中的图片信息提取出来,存于dsc中 */ provider->GetSurfaceDescription(provider, &dsc); /* 根据dsc创建一个图像平面 */ dfb->CreateSurface(dfb, &dsc, &logo); /* 将图片呈递给刚才建立的logo平面,如果大小不一,则进行缩放 */ provider->RenderTo(provider, logo, NULL); /* 释放资源provider */ provider->Release(provider); for (i = -dsc.width; i < screen_width && !ba_check_exit(shared_mem); i = i + INTERVAL_PIXEL) { /* 清空屏幕 */ primary->FillRectangle(primary, 0, 0, screen_width, screen_height); primary->Blit(primary, logo, NULL, i, (screen_height - dsc.height) / 2); /* * Blit model:将图片blit到平面 * Blit(IDirectFBSurface *thiz, IDirectFBSurface *source, * const DFBRectangle *source_rect, int x, int y); * if source_rect == NULL,use entire surface. * DFBRctangle is rectangular frame defined by two points. * (x, y):the point of top left corner. */ /* flit整个屏幕 */ primary->Flip(primary, NULL, DSFLIP_WAITFORSYNC); msleep(INTERVAL_TIME); if ((screen_width - INTERVAL_PIXEL) <= i && loop < MAX_LOOP) { BA_LOG(1, "screen_width:%d, loop:%d.\n", screen_width, loop); loop++; i = -dsc.width; } } logo->Release(logo); primary->Release(primary); dfb->Release(dfb); return 0;}
0 0
- DirectFB 之 实例图像不断右移
- GUI开发之DirectFB
- directfb之diretfbrc详解
- DirectFB 之 简介
- DirectFB 之 环境配置
- DirectFB 之 分段动画
- DirectFB 之 字体显示
- 图像不断的腐蚀
- 使用 directfb绘制图像(draw image with directfb)
- 图像处理实例之绘图板
- seed-dvs6467 encodedecode实例 采集的图像质量很差,只有隔行显示,而且每帧图像不断的往下移动?
- DirectFB
- DirectFB
- DirectFB
- DirectFB
- DirectFB
- directfb
- 字符串之循环右移
- MTK 标准编译命令
- AngularJs 简单示例
- 如何循环关闭工作区
- 在win7\win8.1 x64系统中安装SQL Express时出现29506错误码的解决方案
- poj-3277-City Horizon-离散化+线段树区域更新
- DirectFB 之 实例图像不断右移
- 学习PyQt (1)
- memcached详解
- 学习笔记-轻量级Java EE:模式--观察者模式
- 深入理解WeakHashmap
- MTK LCD白屏解决方案
- 什么情况下使用自定义拷贝构造函数
- BC4J
- java程序会发生内存泄露的问题吗