android graphics学习笔记
文章平均质量分 78
zhenfei2016
这个作者很懒,什么都没留下…
展开
-
BufferQueue原理
BufferQueue.cppclass BufferQueue : public BnGraphicBufferProducer, public BnGraphicBufferConsumer, private IBinder::DeathRecipient从继承关系来看,是生产者,也是消费者,还原创 2016-04-28 17:49:11 · 8861 阅读 · 0 评论 -
Surfaceflinger中图像绘制流程
App产生图像数据是由Surfaceflinger消费的,下面走一下图像的消费过程。activity中的surface对应到服务端就是layer,从layer创建过程开始1.创建过程SurfaceFlinger.cppSurfaceFlinger.createLayer() { //普通类型的layer,支持多个类型 SurfaceFlin原创 2016-04-28 17:51:13 · 3530 阅读 · 0 评论 -
App端控件绘制流程
APP进程:所有的绘制搜需要画布,app的画布就是Surface了,我们就从Surface开始分析。1.Surface跨进程传递绘图表面,支持序列化接口,所以可以通过binder进行跨进程传递Java层:public class Surface implements Parcelable //native层序列化,可以跨进程传递原创 2016-04-28 17:53:51 · 845 阅读 · 0 评论 -
App端SurfaceView控件绘制流程
SurfaceView,VideoView,GlSurfaceView 中的Surface如何应用 JAVA层:SurfaceView系列控件与其他View绘制存在很大的差别。有自己的Surface,其他View是共享一个Surface1.最基本的SurfaceViewSurfaceView.javapublic class SurfaceView ex原创 2016-04-28 17:56:00 · 1628 阅读 · 0 评论 -
简单撸一下EGL
egl复杂构造opengl的工作环境void egl_demo() { EGLDisplaydisplay=eglGetDisplay(EGL_DEFAULT_DISPLAY); eglInitialize(display, 0, 0); EGLConfig config; eglChooseConfig(display,原创 2016-04-28 17:56:44 · 7057 阅读 · 1 评论 -
ANativeWindow
ANativeWindow : opengl工作的绘图画布本地窗口,按标准定义好函数(下面好多代码都简化)structANativeWindow{ ..... //上层定义好函数指针,传给opengl后,opengl在必要的时候会调用相应的函数 int (*dequeueBuffer)(structANativeWindow原创 2016-04-28 17:57:40 · 12137 阅读 · 0 评论 -
GraphicBuffer和Gralloc模块
Gralloc硬件抽象层:申请释放渲染图像缓冲,驱动屏幕的显示open函数,打开设备,通过name区分了不同的设备 int gralloc_device_open(const hw_module_t* module, const char* name, hw_device_t** device){ if(name=="gpu0"){原创 2016-04-28 17:58:14 · 4105 阅读 · 0 评论 -
VSYNC信号传递流向
vsync信号源产生地1.硬件支持2.软件模拟SurfaceFlinger创建的init会初始创建HWComposervoid SurfaceFlinger::init() { mHwc = new HWComposer(this,*static_cast(this));}HWComposer::HWComposer( const原创 2016-05-06 12:31:54 · 2559 阅读 · 0 评论 -
SurfaceFlinger中图像合成流程
android中图像的显示是通过HWComposer合成的,(不支持硬件composer的不考虑,现在基本都支持)。 硬件支持合成就是你输入多路视频,图像信号,出来一路合成好的数据。硬件合成只支持有限的记录信号,所有如何存在太多的信号,需要先通过软件进行合成,surfaceflinger是通过gpu合成的。SurfaceFlinger::init(){ //包装了硬件合成的原创 2016-05-09 17:20:59 · 4094 阅读 · 0 评论