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测试程序相关推荐

  1. android 共享代码,Android团队成员间的代码共享!(Git+Github版)

    原创,转载请说明出处. 一. 这篇文章要解决什么问题,能学习到什么? 在android团队的开发中,少不了与队员之间的合作.为了避免我们傻瓜式地复制粘贴对方的负责的那部分功能代码,我们可以用svn或者 ...

  2. 名片夹android布局代码,Android自定义布局实现仿qq侧滑部分代码

    自定义布局实现仿qq侧滑部分Android代码,供大家参考,具体内容如下 实现说明: 通过自定义布局实现: SlidingLayout继承于 HorizontalScrollView /** * Cr ...

  3. 获取android型号代码,Android应用开发之Android获取手机品牌、手机型号、手机唯一序列号的代码教程...

    本文将带你了解Android应用开发Android获取手机品牌.手机型号.手机唯一序列号的代码教程,希望本文对大家学Android有所帮助. Android获取手机品牌.手机型号.手机唯一序列号的代码 ...

  4. android gravity 代码,android:layout_gravity和android:gravity属性的区别

    android:gravity / android:layout_gravity区别: android:gravity 是设置该view类里面的内容相对于该view的位置,例如设置button里面的t ...

  5. android扔骰子代码,Android实现掷骰子效果

    本文实例为大家分享了android实现掷骰子效果的具体代码,供大家参考,具体内容如下 利用handler接受子线程的消息完成骰子点数的不断更替 演示 start:开始游戏 stop:停止游戏 reco ...

  6. android滴滴打车代码,Android 端滴滴打车接口的开发

    前两天做了一个对Android端'滴滴打车'的接口开发吧! 今天来做个简单的流程, 滴滴会提供这样一个接口, http://webapp.diditaxi.com.cn/? maptype=wgs&a ...

  7. android linearlayout 代码,Android如何从代码向另一个LinearLayout添加Linearlayout

    我在main.xml中有一个LinearLayout: android:layout_width="match_parent" android:layout_height=&quo ...

  8. android surfaceflinger 代码,Android 中的framebuffer和SurFaceFlinger的关系

    FrameBuffer 在Android中并不像在其它GUI那样直观,抽象的层次比较多,加上GUI的更新是通过OpenGLES来做的.所以让人很难搞清GUI更新的整个流程,最近要准备一个讲稿,所以花了 ...

  9. android surfaceflinger 代码,Android P 图形显示系统(七) SurfaceFlinger合...

    SurfaceFlinger合成流程(二) SurfaceFlinger合成流程 MessageQueue中分发两个消息,一个INVALIDATE,一个REFRESH,SurfaceFlinger对这 ...

最新文章

  1. Facebook人工智能实验室提出「全景分割」,实现实例分割和语义分割的统一
  2. 巧用Excel记录单快速输入数据
  3. 【转载】常用DOS命令(包括创建删除文件夹/文件)
  4. Python IDE:PyCharm中的那些实用功能
  5. 微信小程序支付最容易犯的坑notify_url(支付回调)
  6. 经典C语言程序100例之三五
  7. Orleans入门例子
  8. 阿里二面:RocketMQ 消息积压了,增加消费者有用吗?
  9. 了解这些坑,再也不会出现诡异的BUG了~
  10. php极差平级,平行志愿有级差吗志愿极差是什么
  11. SPH(光滑粒子流体动力学)流体模拟实现二:SPH算法(1)-数学原理
  12. 手把手教你整合最优雅SSM框架
  13. Python 科学计算基础 (整理)
  14. Java 自带的加密类MessageDigest类(加密MD5和SHA)
  15. 《Microsoft Word》进阶技巧:如何设置文档视图
  16. 点击百度网盘安装包无反应
  17. 计算机上机日志如何查找,如何查看金蝶KIS记账王上机日志
  18. restrain java_Feign 在远端接口超时的时候,抑制异常的抛出
  19. vs2015开发在网页中调用的ocx控件详解(二)
  20. grafana绘图配置查询变量+多级变量联动

热门文章

  1. outlook2013邮箱找不到服务器,outlook发邮件总提示找不到
  2. 零基础Unreal Engine 4(UE4)图文笔记之粒子系统
  3. ubuntu 14.04 ssh
  4. asterisk1.8 拨号方案 mysql存储(动态)
  5. CTL_CODE定义中Method的说明
  6. python安装后cmd找不到_关于Python3.6环境中,virtualenv找不到命令的解决方法
  7. vue 计算属性和data_Vue:计算属性
  8. android 5.1 壁纸路径,RTFSC – Android5.1 壁纸设置流程简析 – RustFisher
  9. 【转】C#开发奇技淫巧二:根据dll文件加载C++或者Delphi插件
  10. 【转】CT球管小知识--热容量