#include "components/viz/service/display/overlay_combination_cache.h"
#include <algorithm>
#include <map>
#include <memory>
#include <set>
#include <utility>
#include "base/check_op.h"
#include "base/containers/span.h"
#include "base/metrics/histogram_macros.h"
#include "components/viz/common/display/overlay_strategy.h"
#include "components/viz/service/display/overlay_candidate.h"
#include "components/viz/service/display/overlay_processor_strategy.h"
#include "components/viz/service/display/overlay_proposed_candidate.h"
#include "ui/gfx/geometry/rect_conversions.h"
namespace viz {
OverlayCacheKey::OverlayCacheKey(
const OverlayProposedCandidate& proposed_candidate) { … }
OverlayCombinationToTest::OverlayCombinationToTest() = default;
OverlayCombinationToTest::~OverlayCombinationToTest() = default;
OverlayCombinationToTest::OverlayCombinationToTest(
OverlayCombinationToTest&& other) = default;
OverlayCombinationToTest& OverlayCombinationToTest::operator=(
OverlayCombinationToTest&& other) = default;
CombinationIdMapper::CombinationIdMapper() = default;
CombinationIdMapper::~CombinationIdMapper() = default;
OverlayCombinationCache::CandidateId CombinationIdMapper::GetCandidateId(
const OverlayProposedCandidate& proposed_candidate) { … }
void CombinationIdMapper::RemoveStaleIds(
const OverlayCombinationCache::CandidateCombination& stale_candidates) { … }
void CombinationIdMapper::ClearIds() { … }
OverlayCombinationCache::OverlayCombinationCache()
: … { … }
OverlayCombinationCache::~OverlayCombinationCache() = default;
OverlayCombinationToTest OverlayCombinationCache::GetOverlayCombinationToTest(
base::span<OverlayProposedCandidate const> sorted_candidates,
int max_overlays_considered) { … }
void OverlayCombinationCache::ClearCache() { … }
std::vector<OverlayProposedCandidate>
OverlayCombinationCache::GetConsideredCandidates(
base::span<OverlayProposedCandidate const> sorted_candidates,
size_t max_overlays_possible) { … }
std::vector<OverlayCombinationCache::CandidateId>
OverlayCombinationCache::GetIds(
const std::vector<OverlayProposedCandidate>& considered_candidates) { … }
std::vector<std::pair<OverlayCombinationCache::CandidateCombination, int>>
OverlayCombinationCache::GetPowerSortedCombinations(
const std::vector<OverlayProposedCandidate>& considered_candidates,
const std::vector<CandidateId>& considered_ids) { … }
void OverlayCombinationCache::DeclarePromotedCandidates(
base::span<OverlayProposedCandidate const> attempted_candidates) { … }
void OverlayCombinationCache::RemoveStaleCombinations(
const CandidateCombination& stale_candidates) { … }
}