当前位置: 首页 > news >正文

SurfaceFlinger代码笔记

drawLayers是做client合成,合成完以后的buffer会放在RenderSurface里

FrameBufferSurface里的buffer是通过setClientTarget给到HWC的(HWC应该给client合成的buffer留了一个slot)

Output.cpp这个文件非常关键,代表着具体一个Display的操作

drawLayers第三个参数是个

renderengine::ExternalTexture,是

dequeueRenderBuffer的时候从

mRenderSurface->dequeueBuffer中获取到的,drawLayers就是把最终的东西放到这个buffer

 

 

具体代码都在Output.cpp里

 

setClientTarget就是被

FramebufferSurface::advanceFrame调用的

以下函数是重头戏:

void Output::present(const compositionengine::CompositionRefreshArgs& refreshArgs) {ATRACE_FORMAT("%s for %s", __func__, mNamePlusId.c_str());ALOGV(__FUNCTION__);updateColorProfile(refreshArgs);updateCompositionState(refreshArgs);planComposition();writeCompositionState(refreshArgs);setColorTransform(refreshArgs);beginFrame();GpuCompositionResult result;const bool predictCompositionStrategy = canPredictCompositionStrategy(refreshArgs);if (predictCompositionStrategy) {result = prepareFrameAsync();} else {prepareFrame();}devOptRepaintFlash(refreshArgs);finishFrame(std::move(result));postFramebuffer();renderCachedSets(refreshArgs);
}

http://www.lryc.cn/news/543012.html

相关文章:

  • 2025 PHP授权系统网站源码
  • Fisher散度:从信息几何到机器学习的隐藏利器
  • 深度学习每周学习总结Y1(Yolov5 调用官方权重进行检测 )
  • 实体机器人在gazebo中的映射
  • 【学习笔记】Kubernetes
  • 【网络编程】几个常用命令:ping / netstat / xargs / pidof / watch
  • 上海创智学院(测试)算法笔试(ACM赛制)部分例题
  • 【学术投稿-第四届材料工程与应用力学国际学术会议(ICMEAAE 2025】材料工程与应用力学的探讨
  • 2025吐槽季第一弹---腾讯云EO边缘安全加速平台服务
  • 力扣-动态规划-70 爬楼梯
  • 【DeepSeek】-macOS本地终端部署后运行DeepSeek如何分析图片
  • 使用 pytest-mock 进行 Python 高级单元测试与模拟
  • lowagie(itext)老版本手绘PDF,包含页码、水印、图片、复选框、复杂行列合并等。
  • 《Linux 指令集:开启极客世界的钥匙_01》
  • 【Android】用 chrome://inspect/#devices 调试H5页面
  • Deepseek 实战全攻略,领航科技应用的深度探索之旅
  • 《论区块链技术及应用》审题技巧 - 系统架构设计师
  • ROS2 强化学习:案例与代码实战
  • 【Python模块】——pymysql
  • 【我的Android进阶之旅】Android Studio SDK Update Site 国内的腾讯云镜像配置指南
  • springboot实现多文件上传
  • Webpack打包优化
  • 浅谈HTTP及HTTPS协议
  • GTID的基本概念
  • .NET Core MVC IHttpActionResult 设置Headers
  • 数据结构与算法面试专题——桶排序
  • 深度学习奠基作 AlexNet 论文阅读笔记(2025.2.25)
  • MongoDB 数据库简介
  • Transformer LLaMA
  • 【DeepSeek开源:会带来多大的影响】