Loading services/surfaceflinger/SurfaceFlinger.cpp +18 −10 Original line number Diff line number Diff line Loading @@ -5822,6 +5822,7 @@ void SurfaceFlinger::renderScreenImplLocked(const RenderArea& renderArea, fillLayer.alpha = half(alpha); clientCompositionLayers.push_back(fillLayer); std::vector<Layer*> renderedLayers; Region clearRegion = Region::INVALID_REGION; traverseLayers([&](Layer* layer) { const bool supportProtectedContent = false; Loading @@ -5840,19 +5841,19 @@ void SurfaceFlinger::renderScreenImplLocked(const RenderArea& renderArea, }; std::vector<compositionengine::LayerFE::LayerSettings> results = layer->prepareClientCompositionList(targetSettings); if (results.size() > 0) { clientCompositionLayers.insert(clientCompositionLayers.end(), std::make_move_iterator(results.begin()), std::make_move_iterator(results.end())); results.clear(); renderedLayers.push_back(layer); } }); std::vector<const renderengine::LayerSettings*> clientCompositionLayerPointers; clientCompositionLayers.reserve(clientCompositionLayers.size()); std::vector<const renderengine::LayerSettings*> clientCompositionLayerPointers( clientCompositionLayers.size()); std::transform(clientCompositionLayers.begin(), clientCompositionLayers.end(), std::back_inserter(clientCompositionLayerPointers), [](compositionengine::LayerFE::LayerSettings& settings) -> renderengine::LayerSettings* { return &settings; }); clientCompositionLayerPointers.begin(), std::pointer_traits<renderengine::LayerSettings*>::pointer_to); clientCompositionDisplay.clearRegion = clearRegion; // Use an empty fence for the buffer fence, since we just created the buffer so Loading @@ -5864,6 +5865,13 @@ void SurfaceFlinger::renderScreenImplLocked(const RenderArea& renderArea, /*useFramebufferCache=*/false, std::move(bufferFence), &drawFence); *outSyncFd = drawFence.release(); if (*outSyncFd >= 0) { sp<Fence> releaseFence = new Fence(dup(*outSyncFd)); for (auto* layer : renderedLayers) { layer->onLayerDisplayed(releaseFence); } } } status_t SurfaceFlinger::captureScreenImplLocked(const RenderArea& renderArea, Loading Loading
services/surfaceflinger/SurfaceFlinger.cpp +18 −10 Original line number Diff line number Diff line Loading @@ -5822,6 +5822,7 @@ void SurfaceFlinger::renderScreenImplLocked(const RenderArea& renderArea, fillLayer.alpha = half(alpha); clientCompositionLayers.push_back(fillLayer); std::vector<Layer*> renderedLayers; Region clearRegion = Region::INVALID_REGION; traverseLayers([&](Layer* layer) { const bool supportProtectedContent = false; Loading @@ -5840,19 +5841,19 @@ void SurfaceFlinger::renderScreenImplLocked(const RenderArea& renderArea, }; std::vector<compositionengine::LayerFE::LayerSettings> results = layer->prepareClientCompositionList(targetSettings); if (results.size() > 0) { clientCompositionLayers.insert(clientCompositionLayers.end(), std::make_move_iterator(results.begin()), std::make_move_iterator(results.end())); results.clear(); renderedLayers.push_back(layer); } }); std::vector<const renderengine::LayerSettings*> clientCompositionLayerPointers; clientCompositionLayers.reserve(clientCompositionLayers.size()); std::vector<const renderengine::LayerSettings*> clientCompositionLayerPointers( clientCompositionLayers.size()); std::transform(clientCompositionLayers.begin(), clientCompositionLayers.end(), std::back_inserter(clientCompositionLayerPointers), [](compositionengine::LayerFE::LayerSettings& settings) -> renderengine::LayerSettings* { return &settings; }); clientCompositionLayerPointers.begin(), std::pointer_traits<renderengine::LayerSettings*>::pointer_to); clientCompositionDisplay.clearRegion = clearRegion; // Use an empty fence for the buffer fence, since we just created the buffer so Loading @@ -5864,6 +5865,13 @@ void SurfaceFlinger::renderScreenImplLocked(const RenderArea& renderArea, /*useFramebufferCache=*/false, std::move(bufferFence), &drawFence); *outSyncFd = drawFence.release(); if (*outSyncFd >= 0) { sp<Fence> releaseFence = new Fence(dup(*outSyncFd)); for (auto* layer : renderedLayers) { layer->onLayerDisplayed(releaseFence); } } } status_t SurfaceFlinger::captureScreenImplLocked(const RenderArea& renderArea, Loading