Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
embedder_render_target_cache.cc
Go to the documentation of this file.
1// Copyright 2013 The Flutter Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "flutter/shell/platform/embedder/embedder_render_target_cache.h"
6
7namespace flutter {
8
10
12
13std::unique_ptr<EmbedderRenderTarget>
16 auto compatible_target = cached_render_targets_.find(descriptor);
17 if (compatible_target == cached_render_targets_.end()) {
18 return nullptr;
19 }
20 auto target = std::move(compatible_target->second);
21 cached_render_targets_.erase(compatible_target);
22 return target;
23}
24
25std::set<std::unique_ptr<EmbedderRenderTarget>>
27 std::set<std::unique_ptr<EmbedderRenderTarget>> cleared_targets;
28 for (auto& targets : cached_render_targets_) {
29 cleared_targets.insert(std::move(targets.second));
30 }
31 cached_render_targets_.clear();
32 return cleared_targets;
33}
34
36 std::unique_ptr<EmbedderRenderTarget> target) {
37 if (target == nullptr) {
38 return;
39 }
41 target->GetRenderTargetSize()};
42 cached_render_targets_.insert(std::make_pair(desc, std::move(target)));
43}
44
46 return cached_render_targets_.size();
47}
48
49} // namespace flutter
std::set< std::unique_ptr< EmbedderRenderTarget > > ClearAllRenderTargetsInCache()
std::unique_ptr< EmbedderRenderTarget > GetRenderTarget(const EmbedderExternalView::RenderTargetDescriptor &descriptor)
void CacheRenderTarget(std::unique_ptr< EmbedderRenderTarget > target)
uint32_t * target