Android surfaceflinegr中 mPreviousPresentFences[0].fenceTime = std::make_shared<FenceTime>(mPreviousPresentFences[0].fence);其中std::make_shared<FenceTime>代表什么意思?
时间: 2024-04-03 17:36:15 浏览: 93
`std::make_shared<FenceTime>` 是 C++ 中的一个模板函数,它用于在堆上创建一个指向 `FenceTime` 类型对象的 `std::shared_ptr` 智能指针。智能指针是 C++ 中的一种数据类型,它可以自动管理动态分配的内存,并且在不再需要这些内存时自动释放它们。在这里,`std::make_shared<FenceTime>` 用于创建一个新的 `FenceTime` 对象,并将其包装在一个智能指针中以确保内存的正确管理。
相关问题
std::shared_ptr<FenceTime> glCompositionDoneFenceTime; if (display && display->getCompositionDisplay()->getState().usesClientComposition) { glCompositionDoneFenceTime = std::make_shared<FenceTime>(display->getCompositionDisplay() ->getRenderSurface() ->getClientTargetAcquireFence()); } else { glCompositionDoneFenceTime = FenceTime::NO_FENCE; }
这段代码看起来是用来创建一个 std::shared_ptr<FenceTime> 对象,并根据条件赋值不同的值。如果 display 存在,并且它所对应的 CompositionDisplay 的状态使用了客户端组合,则创建一个新的 FenceTime 对象,并将其初始化为获取客户端目标采集 fence 的结果。否则,将 glCompositionDoneFenceTime 赋值为 FenceTime::NO_FENCE,即一个空的 FenceTime 对象。这段代码可能在图形界面的渲染过程中使用。
阅读全文