blob: f64529d385098728cf11c2f08b9e5470c7965058 [file] [log] [blame]
// Copyright 2016 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "components/viz/common/surfaces/surface_id.h"
#include <algorithm>
#include <ostream>
#include "base/strings/stringprintf.h"
#include "components/viz/common/surfaces/surface_range.h"
namespace viz {
std::string SurfaceId::ToString() const {
return base::StringPrintf("SurfaceId(%s, %s)",
frame_sink_id_.ToString().c_str(),
local_surface_id_.ToString().c_str());
}
std::string SurfaceId::ToString(
base::StringPiece frame_sink_debug_label) const {
return base::StringPrintf(
"SurfaceId(%s, %s)",
frame_sink_id_.ToString(frame_sink_debug_label).c_str(),
local_surface_id_.ToString().c_str());
}
SurfaceId SurfaceId::ToSmallestId() const {
return SurfaceId(frame_sink_id_, local_surface_id_.ToSmallestId());
}
std::ostream& operator<<(std::ostream& out, const SurfaceId& surface_id) {
return out << surface_id.ToString();
}
bool SurfaceId::IsNewerThan(const SurfaceId& other) const {
if (frame_sink_id_ != other.frame_sink_id())
return false;
return local_surface_id_.IsNewerThan(other.local_surface_id());
}
bool SurfaceId::IsSameOrNewerThan(const SurfaceId& other) const {
return (*this == other) || IsNewerThan(other);
}
bool SurfaceId::HasSameEmbedTokenAs(const SurfaceId& other) const {
return local_surface_id_.embed_token() ==
other.local_surface_id_.embed_token();
}
} // namespace viz