drawSoftware
2016-11-09 10:38:32 0 举报
DrawSoftware是一款功能强大的绘图软件,它提供了丰富的绘图工具和功能,可以满足用户的各种绘图需求。无论是专业的设计师,还是业余的爱好者,都可以通过DrawSoftware轻松地创建出精美的图形和图像。这款软件的操作界面简洁明了,所有的功能都一目了然,即使是初次使用的用户也能够快速上手。此外,DrawSoftware还支持多种文件格式的导入和导出,方便用户进行文件的交流和分享。无论你是想绘制一幅精细的插图,还是想设计一款独特的图标,DrawSoftware都能够为你提供强大的支持。总的来说,DrawSoftware是一款非常实用的绘图软件,值得每一个需要绘图的人拥有。
作者其他创作
大纲/内容
layer
lockCanvas
onFrameAvailable
Surface::lock
MonitoredProducer
mView.draw(canvas);
广播MessageQueue::INVALIDATE
ANativeWindow_Buffer
SkBitmap bitmap;
nativeCanvas-setBitmap(bitmap);
backBuffer-lockAsync
SurfaceFlinger
JNI
mGraphicBufferProducer-dequeueBuffer
dequeueBuffer
unlockCanvasAndPost
在nativeLockCanvas函数中,先调用Lock取得AnativeWindowBuffer,然后基于此构建一个SKBitmap,然后通过SetBitMap函数将其设置到nativeCanvas。这个Canvas就是从Surface.java中通过JNI调用传递过来的
surface
android_view_surface
nativeunlockCanvasAndPost
drawSoftware
BufferQueueProducer
backBuffer(GraphicBuffer::getSelf(out))
BufferQueue
queueBuffer
mFlinger-signalLayerUpdate
Surface::Lock函数:1)Surface::dequeueBuffer将需要Buffer的长,宽,format和usage传递到底层,获取到mSlots数组中的index。并通过requestBuffer函数()基于该index从mslots中取到了GraphicBuffer对象。2)检测看看是否需要从FontBuffer中拷贝数据,实现局部刷新。3)调用获取到的GraphicBuffer对象的lockAsync方法取得该buffer对应的内存基地址,赋值给OutBuffer bits区域。4)填充ANativeWindow_buufer数据结构,并把这个返回给Lock函数调用者。
viewRootImpl
queueBuffe
mCanvas
Surface::unlockAndPost
0 条评论
下一页