android surfaceflinger 代码,android surfaceflinger测试程序
frameworks/base/libs/surfaceflinger/tests/resize/resize.cpp 是个好地方。 但是我的测试应用程序版本( 来自供应商的Eclair ) 过时了,有些 Surface API已经转移到 SurfaceControl,你必须:
SurfaceComposerClient::createSurface() => SurfaceControl
SurfaceControl->getSurface() => Surface
第二使用 SurfaceComposerClient::openTransaction()/closeTransaction() 将所有事务绑定到SurfaceFlinger表面,例如:
Surface::lock()/unlockAndPost() 和 SurfaceControl::setLayer()/setSize()
下面是一些示例代码( 希望编译:p )sp client;
sp control;
sp surface;
SurfaceID sid = 0;
Surface::SurfaceInfo sinfo;
//set up the thread-pool, needed for Binder
sp proc(ProcessState::self());
ProcessState::self()->startThreadPool();
client = new SurfaceComposerClient();
control = client->createSurface(getpid(), sid, 160, 240, PIXEL_FORMAT_RGB_565);
surface = control->getSurface();
//global transaction sometimes cannot trigger a redraw
//client->openGlobalTransaction();
printf("setLayer...n");
client->openTransaction();
control->setLayer(100000);
client->closeTransaction();
printf("setLayer donen");
printf("memset 0xF800...n");
client->openTransaction();
surface->lock(&sinfo);
android_memset16((uint16_t*)sinfo.bits, 0xF800, sinfo.s*pfInfo.bytesPerPixel*sinfo.h);
surface->unlockAndPost();
client->closeTransaction();
printf("memset 0xF800 donen");
sleep(2);
printf("setSize...n");
client->openTransaction();
control->setSize(80, 120);
client->closeTransaction();
printf("setSize donen");
sleep(2);
printf("memset 0x07E0...n");
client->openTransaction();
surface->lock(&sinfo);
android_memset16((uint16_t*)sinfo.bits, 0x07E0, sinfo.s*pfInfo.bytesPerPixel*sinfo.h);
surface->unlockAndPost();
printf("memset 0x07E0 donen");
client->closeTransaction();
sleep(2);
printf("setPosition...n");
client->openTransaction();
control->setPosition(100, 100);
client->closeTransaction();
printf("setPosition donen");
sleep(2);
//global transaction sometimes cannot trigger a redraw
//client->closeGlobalTransaction();
printf("byen");
android surfaceflinger 代码,android surfaceflinger测试程序相关推荐
- android 共享代码,Android团队成员间的代码共享!(Git+Github版)
原创,转载请说明出处. 一. 这篇文章要解决什么问题,能学习到什么? 在android团队的开发中,少不了与队员之间的合作.为了避免我们傻瓜式地复制粘贴对方的负责的那部分功能代码,我们可以用svn或者 ...
- 名片夹android布局代码,Android自定义布局实现仿qq侧滑部分代码
自定义布局实现仿qq侧滑部分Android代码,供大家参考,具体内容如下 实现说明: 通过自定义布局实现: SlidingLayout继承于 HorizontalScrollView /** * Cr ...
- 获取android型号代码,Android应用开发之Android获取手机品牌、手机型号、手机唯一序列号的代码教程...
本文将带你了解Android应用开发Android获取手机品牌.手机型号.手机唯一序列号的代码教程,希望本文对大家学Android有所帮助. Android获取手机品牌.手机型号.手机唯一序列号的代码 ...
- android gravity 代码,android:layout_gravity和android:gravity属性的区别
android:gravity / android:layout_gravity区别: android:gravity 是设置该view类里面的内容相对于该view的位置,例如设置button里面的t ...
- android扔骰子代码,Android实现掷骰子效果
本文实例为大家分享了android实现掷骰子效果的具体代码,供大家参考,具体内容如下 利用handler接受子线程的消息完成骰子点数的不断更替 演示 start:开始游戏 stop:停止游戏 reco ...
- android滴滴打车代码,Android 端滴滴打车接口的开发
前两天做了一个对Android端'滴滴打车'的接口开发吧! 今天来做个简单的流程, 滴滴会提供这样一个接口, http://webapp.diditaxi.com.cn/? maptype=wgs&a ...
- android linearlayout 代码,Android如何从代码向另一个LinearLayout添加Linearlayout
我在main.xml中有一个LinearLayout: android:layout_width="match_parent" android:layout_height=&quo ...
- android surfaceflinger 代码,Android 中的framebuffer和SurFaceFlinger的关系
FrameBuffer 在Android中并不像在其它GUI那样直观,抽象的层次比较多,加上GUI的更新是通过OpenGLES来做的.所以让人很难搞清GUI更新的整个流程,最近要准备一个讲稿,所以花了 ...
- android surfaceflinger 代码,Android P 图形显示系统(七) SurfaceFlinger合...
SurfaceFlinger合成流程(二) SurfaceFlinger合成流程 MessageQueue中分发两个消息,一个INVALIDATE,一个REFRESH,SurfaceFlinger对这 ...
最新文章
- Facebook人工智能实验室提出「全景分割」,实现实例分割和语义分割的统一
- 巧用Excel记录单快速输入数据
- 【转载】常用DOS命令(包括创建删除文件夹/文件)
- Python IDE:PyCharm中的那些实用功能
- 微信小程序支付最容易犯的坑notify_url(支付回调)
- 经典C语言程序100例之三五
- Orleans入门例子
- 阿里二面:RocketMQ 消息积压了,增加消费者有用吗?
- 了解这些坑,再也不会出现诡异的BUG了~
- php极差平级,平行志愿有级差吗志愿极差是什么
- SPH(光滑粒子流体动力学)流体模拟实现二:SPH算法(1)-数学原理
- 手把手教你整合最优雅SSM框架
- Python 科学计算基础 (整理)
- Java 自带的加密类MessageDigest类(加密MD5和SHA)
- 《Microsoft Word》进阶技巧:如何设置文档视图
- 点击百度网盘安装包无反应
- 计算机上机日志如何查找,如何查看金蝶KIS记账王上机日志
- restrain java_Feign 在远端接口超时的时候,抑制异常的抛出
- vs2015开发在网页中调用的ocx控件详解(二)
- grafana绘图配置查询变量+多级变量联动
热门文章
- outlook2013邮箱找不到服务器,outlook发邮件总提示找不到
- 零基础Unreal Engine 4(UE4)图文笔记之粒子系统
- ubuntu 14.04 ssh
- asterisk1.8 拨号方案 mysql存储(动态)
- CTL_CODE定义中Method的说明
- python安装后cmd找不到_关于Python3.6环境中,virtualenv找不到命令的解决方法
- vue 计算属性和data_Vue:计算属性
- android 5.1 壁纸路径,RTFSC – Android5.1 壁纸设置流程简析 – RustFisher
- 【转】C#开发奇技淫巧二:根据dll文件加载C++或者Delphi插件
- 【转】CT球管小知识--热容量