当前位置:   article > 正文

Android SurfaceFlinger——GraphicBuffer获取内存信息(三十一)_获取surface的graphicbuffer数据

获取surface的graphicbuffer数据

        上一篇文章介绍了 GraphicBuffer 初始化的 initWithSize() 函数中的申请内存流程,这里我们看一下另一个比较重要的函数,GraphicBufferMapper. getTransportSize 获取内存信息。该函数通常在需要了解缓冲区的实际内存占用情况时调用,例如在调试内存使用情况或优化性能时。

一、函数解析

        GraphicBufferMapper 的 getTransportSize 方法是用于获取一个 GraphicBuffer 实例的实际传输大小。这是因为图形缓冲区的实际大小可能由于对齐、填充等因素而大于其逻辑大小(即 width * height * 像素大小)。getTransportSize 方法返回的是实际用于传输的字节数,这对于理解缓冲区的内存占用以及在进行 DMA(直接内存访问)操作时特别有用。 

1、GraphicBufferMapper

源码位置:/frameworks/native/libs/ui/GraphicBufferMapper.cpp

  1. void GraphicBufferMapper::getTransportSize(buffer_handle_t handle, uint32_t* outTransportNumFds, uint32_t* outTransportNumInts)
  2. {
  3. mMapper->getTransportSize(handle, outTransportNumFds, outTransportNumInts);
  4. }

源码位置:/frameworks/native/libs/ui/include/ui/GraphicBufferMapper.h

std::unique_ptr<const GrallocMapper> mMapper
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Guff_9hys/article/detail/899541
推荐阅读
相关标签
  

闽ICP备14008679号