IT评测·应用市场-qidao123.com

标题: Android SurfaceFlinger——GraphicBuffer的生成(三十二) [打印本页]

作者: 南飓风    时间: 2024-7-28 09:39
标题: Android SurfaceFlinger——GraphicBuffer的生成(三十二)
通过前面的学习我们知道,在 SurfaceFlinger 中利用的生产者/消费者模子,Surface 做为生产者一方存在如下两个比力重要的函数:
   
          这里我们就先来看看 dequeueBuffer() 函数,该函数通常由生产者调用,用于从 BufferQueue 中取出一个缓冲区以供渲染。这个函数会等待直到有一个缓冲区变为可用状态,然后将其标记为“出队”,并返回给生产者。生产者随后可以在该缓冲区上绘制图像数据。
一、GraphicBuffer生成

         这里我们先来看一下 Surface 的核心对象之一 mSlots,这个对象是数组 BufferSlot。
1、BufferSlot

源码位置:/frameworks/native/libs/gui/include/gui/BufferSlot.h
  1. struct BufferSlot {
  2.     BufferSlot()
  3.     : mGraphicBuffer(nullptr),
  4.       mEglDisplay(EGL_NO_DISPLAY),
  5.       mBufferState(),
  6.       mRequestBufferCalled(false),
  7.       mFrameNumber(0),
  8.       mEglFence(EG
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 IT评测·应用市场-qidao123.com (https://dis.qidao123.com/) Powered by Discuz! X3.4