2011年6月18日

Android Overlay学习

摘要: 前文仅了解了overlay HAL的架构,下面继续看看系统层是如何调用Overlay模块。1、 测试代码frameworks/base/libs/surfaceflinger/tests/overlays/overlays.cpp提供了一个简单的overlay调用流程,可惜这个测试程序有错误, 在sp<Surface> surface = client->createSurface(getpid(), 0, 320, 240, PIXEL_FORMAT_UNKNOWN, ISurfaceComposer::ePushBuffers);这句话编译不过去,错误在Surface的申 阅读全文

posted @ 2011-06-18 23:31 eustoma 阅读(12526) 评论(2) 推荐(1)

Android ISurface PostBuffer 处理流程

摘要: 1 ISurface 的Create 想了解surface的create 和surfaceflinger 可参考这篇文章,比较详细:http://blog.csdn.net/yili_xie/archive/2009/11/12/4803527.aspx Android 起步比较早的大牛们挺多,我现在只能一步步踏着革命先烈的后尘。 每个相应的应用都会有个相应的ISurface 的对象被set进来,例如camera 的cameraService,opencore的MIO。我们只需要知道这么用就可以了。2 App调用流程。 看过code就知道,这个调用是很简单的。 先初始化memoryview p 阅读全文

posted @ 2011-06-18 23:11 eustoma 阅读(1060) 评论(0) 推荐(0)

向Surface写位图数据的方法

摘要: Surface的Buffer准备好后,就可以向Buffer写位图数据,Surface的Buffer跟普通的图像数据一样,也是按一定格式组织的一根根的扫描线数据。下面的例子假设源和目的格式都是32位,并且大小不超标uint8_t *sbits;sbits = (uint8_t *)bitmap->getPixels();int sstride;sstride = bitmap->rowBytes();int sbpp; // bytes per pixelsbpp = bitmap->bytesPerPixel();uint8_t *sline;sline = sbits + 阅读全文

posted @ 2011-06-18 23:09 eustoma 阅读(362) 评论(0) 推荐(0)

普通应用使用Surface的方法

摘要: Android的NDK提供了Surface类,可供应用向屏幕绘图,但使用这个类,有很多机关,如果不注意,代码就不会正常工作。下面是我们使用的时候遇到的问题与解决方法。1,在C++代码里要使用Surface类,必须在APK的工程文件Android.mk里增加权限uses-permissionandroid:name="android.permission.ACCESS_SURFACE_FLINGER"如果没有这句,则创建Surface会失败。2,创建Surface//sp client;client = new SurfaceComposerClient();// 然后向 S 阅读全文

posted @ 2011-06-18 23:08 eustoma 阅读(3547) 评论(0) 推荐(0)

欺骗编译器取得ISurface对象的方法

摘要: 欺骗编译器取得ISurface对象的方法我们在使用Android NDK的Surface的时候,遇到无法得到ISurface对象的问题,描述如下:Surface类的定义如下:class Surface: public EGLNativeBase{public:...private:// can't be copied...friend class SurfaceComposerClient;friend class SurfaceControl;// camera and camcorder need access to the ISurface binderinterface for 阅读全文

posted @ 2011-06-18 23:07 eustoma 阅读(397) 评论(0) 推荐(0)

导航