非常感谢作者!你的文档帮助了我完成了作业。
我是在Android Q上参考的,在具体的对照中,发现有不太准确的地方。
BufferSlot mSlots[NUM_BUFFER_SLOTS] 这个不是和窗口数目对应的,由于一个Surface对应一个窗口,Surface的内部变量不会和窗口总数对应。这个应该是指,同一个窗口中有NUM_BUFFER_SLOTS子buffer同时进行显示刷新,是窗口内部的组成部分。亲测可以创建80个以上的窗口。
然后Surface内部的frontbuffer和backbuffer,Q上已经改名为
sp<GraphicBuffer> mLockedBuffer;
sp<GraphicBuffer> mPostedBuffer;
也不是传统上理解上的2缓冲,3缓冲,3缓冲是驱动面向屏幕的,代码一般看不到。
IP属地:广东