Commit 8d3790eb authored by Fady Samuel's avatar Fady Samuel Committed by Commit Bot

viz: Move ReferencedSurfaceTracker to components/viz/service/frame_sinks

It is used only by CompositorFrameSinkSupport so I'm moving it to
components/viz/service/frame_sinks where CompositorFrameSinkSupport is.
This CL also updates all includes, forward declarations and namespaces
as appropriate.

TBR=piman@chromium.org

Bug: 722935
Change-Id: Ibd3548c8a2aada8346c48e7a58b8fd9b35d63c16
Reviewed-on: https://chromium-review.googlesource.com/572589Reviewed-by: default avatarRobert Kroeger <rjkroege@chromium.org>
Commit-Queue: Fady Samuel <fsamuel@chromium.org>
Cr-Commit-Position: refs/heads/master@{#487139}
parent 883ea33b
......@@ -836,7 +836,6 @@ cc_test("cc_unittests") {
"animation/keyframed_animation_curve_unittest.cc",
"animation/scroll_offset_animation_curve_unittest.cc",
"animation/transform_operations_unittest.cc",
"surfaces/referenced_surface_tracker_unittest.cc",
"surfaces/surface_hittest_unittest.cc",
"surfaces/surface_manager_ref_unittest.cc",
"surfaces/surface_synchronization_unittest.cc",
......
......@@ -9,8 +9,6 @@ cc_component("surfaces") {
sources = [
"direct_surface_reference_factory.cc",
"direct_surface_reference_factory.h",
"referenced_surface_tracker.cc",
"referenced_surface_tracker.h",
"stub_surface_reference_factory.cc",
"stub_surface_reference_factory.h",
"surface.cc",
......
......@@ -53,6 +53,8 @@ viz_component("service") {
"frame_sinks/gpu_root_compositor_frame_sink.h",
"frame_sinks/primary_begin_frame_source.cc",
"frame_sinks/primary_begin_frame_source.h",
"frame_sinks/referenced_surface_tracker.cc",
"frame_sinks/referenced_surface_tracker.h",
"frame_sinks/surface_resource_holder.cc",
"frame_sinks/surface_resource_holder.h",
"frame_sinks/surface_resource_holder_client.h",
......@@ -135,6 +137,7 @@ viz_source_set("unit_tests") {
"frame_sinks/compositor_frame_sink_support_unittest.cc",
"frame_sinks/direct_layer_tree_frame_sink_unittest.cc",
"frame_sinks/frame_sink_manager_unittest.cc",
"frame_sinks/referenced_surface_tracker_unittest.cc",
"hit_test/hit_test_aggregator_unittest.cc",
]
......
......@@ -14,10 +14,10 @@
#include "base/memory/weak_ptr.h"
#include "cc/output/compositor_frame.h"
#include "cc/scheduler/begin_frame_source.h"
#include "cc/surfaces/referenced_surface_tracker.h"
#include "cc/surfaces/surface_client.h"
#include "components/viz/common/surfaces/surface_info.h"
#include "components/viz/service/frame_sinks/frame_sink_manager_client.h"
#include "components/viz/service/frame_sinks/referenced_surface_tracker.h"
#include "components/viz/service/frame_sinks/surface_resource_holder.h"
#include "components/viz/service/frame_sinks/surface_resource_holder_client.h"
#include "components/viz/service/viz_service_export.h"
......
......@@ -2,37 +2,37 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "cc/surfaces/referenced_surface_tracker.h"
#include "components/viz/service/frame_sinks/referenced_surface_tracker.h"
#include "base/logging.h"
namespace cc {
namespace viz {
void GetSurfaceReferenceDifference(
const viz::SurfaceId& parent_surface_id,
const base::flat_set<viz::SurfaceId>& old_referenced_surfaces,
const base::flat_set<viz::SurfaceId>& new_referenced_surfaces,
std::vector<SurfaceReference>* references_to_add,
std::vector<SurfaceReference>* references_to_remove) {
const SurfaceId& parent_surface_id,
const base::flat_set<SurfaceId>& old_referenced_surfaces,
const base::flat_set<SurfaceId>& new_referenced_surfaces,
std::vector<cc::SurfaceReference>* references_to_add,
std::vector<cc::SurfaceReference>* references_to_remove) {
DCHECK(parent_surface_id.is_valid());
// Find SurfaceIds in |old_referenced_surfaces| that aren't referenced
// anymore.
for (const viz::SurfaceId& surface_id : old_referenced_surfaces) {
for (const SurfaceId& surface_id : old_referenced_surfaces) {
if (new_referenced_surfaces.count(surface_id) == 0) {
references_to_remove->push_back(
SurfaceReference(parent_surface_id, surface_id));
cc::SurfaceReference(parent_surface_id, surface_id));
}
}
// Find SurfaceIds in |new_referenced_surfaces| that aren't already
// referenced.
for (const viz::SurfaceId& surface_id : new_referenced_surfaces) {
for (const SurfaceId& surface_id : new_referenced_surfaces) {
if (old_referenced_surfaces.count(surface_id) == 0) {
references_to_add->push_back(
SurfaceReference(parent_surface_id, surface_id));
cc::SurfaceReference(parent_surface_id, surface_id));
}
}
}
} // namespace cc
} // namespace viz
......@@ -2,29 +2,29 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CC_SURFACES_REFERENCED_SURFACE_TRACKER_H_
#define CC_SURFACES_REFERENCED_SURFACE_TRACKER_H_
#ifndef COMPONENTS_VIZ_SERVICE_FRAME_SINKS_REFERENCED_SURFACE_TRACKER_H_
#define COMPONENTS_VIZ_SERVICE_FRAME_SINKS_REFERENCED_SURFACE_TRACKER_H_
#include <vector>
#include "base/containers/flat_set.h"
#include "cc/surfaces/surface_reference.h"
#include "cc/surfaces/surfaces_export.h"
#include "components/viz/common/surfaces/surface_id.h"
#include "components/viz/service/viz_service_export.h"
namespace cc {
namespace viz {
// Finds the difference between |old_referenced_surfaces| and
// |new_referenced_surfaces|. Populates |references_to_add| and
// |references_to_remove| based on the difference using |parent_surface_id| as
// the parent for references.
CC_SURFACES_EXPORT void GetSurfaceReferenceDifference(
const viz::SurfaceId& parent_surface_id,
const base::flat_set<viz::SurfaceId>& old_referenced_surfaces,
const base::flat_set<viz::SurfaceId>& new_referenced_surfaces,
std::vector<SurfaceReference>* references_to_add,
std::vector<SurfaceReference>* references_to_remove);
void VIZ_SERVICE_EXPORT GetSurfaceReferenceDifference(
const SurfaceId& parent_surface_id,
const base::flat_set<SurfaceId>& old_referenced_surfaces,
const base::flat_set<SurfaceId>& new_referenced_surfaces,
std::vector<cc::SurfaceReference>* references_to_add,
std::vector<cc::SurfaceReference>* references_to_remove);
} // namespace cc
} // namespace viz
#endif // CC_SURFACES_REFERENCED_SURFACE_TRACKER_H_
#endif // COMPONENTS_VIZ_SERVICE_FRAME_SINKS_REFERENCED_SURFACE_TRACKER_H_
......@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "cc/surfaces/referenced_surface_tracker.h"
#include "components/viz/service/frame_sinks/referenced_surface_tracker.h"
#include <memory>
......@@ -19,24 +19,23 @@
using testing::UnorderedElementsAre;
using testing::IsEmpty;
namespace cc {
namespace viz {
namespace test {
namespace {
constexpr viz::FrameSinkId kParentFrameSink(2, 1);
constexpr viz::FrameSinkId kChildFrameSink1(65563, 1);
constexpr viz::FrameSinkId kChildFrameSink2(65564, 1);
constexpr FrameSinkId kParentFrameSink(2, 1);
constexpr FrameSinkId kChildFrameSink1(65563, 1);
constexpr FrameSinkId kChildFrameSink2(65564, 1);
base::flat_set<viz::SurfaceId> MakeReferenceSet(
std::initializer_list<viz::SurfaceId> surface_ids) {
return base::flat_set<viz::SurfaceId>(surface_ids, base::KEEP_FIRST_OF_DUPES);
base::flat_set<SurfaceId> MakeReferenceSet(
std::initializer_list<SurfaceId> surface_ids) {
return base::flat_set<SurfaceId>(surface_ids, base::KEEP_FIRST_OF_DUPES);
}
viz::SurfaceId MakeSurfaceId(const viz::FrameSinkId& frame_sink_id,
uint32_t local_id) {
return viz::SurfaceId(
frame_sink_id, viz::LocalSurfaceId(
local_id, base::UnguessableToken::Deserialize(0, 1u)));
SurfaceId MakeSurfaceId(const FrameSinkId& frame_sink_id, uint32_t local_id) {
return SurfaceId(
frame_sink_id,
LocalSurfaceId(local_id, base::UnguessableToken::Deserialize(0, 1u)));
}
} // namespace
......@@ -46,18 +45,18 @@ class ReferencedSurfaceTrackerTest : public testing::Test {
ReferencedSurfaceTrackerTest() {}
~ReferencedSurfaceTrackerTest() override {}
const std::vector<SurfaceReference>& references_to_remove() const {
const std::vector<cc::SurfaceReference>& references_to_remove() const {
return references_to_remove_;
}
const std::vector<SurfaceReference>& references_to_add() const {
const std::vector<cc::SurfaceReference>& references_to_add() const {
return references_to_add_;
}
void UpdateReferences(
const viz::SurfaceId& surface_id,
const base::flat_set<viz::SurfaceId>& old_referenced_surfaces,
const base::flat_set<viz::SurfaceId>& new_referenced_surfaces) {
const SurfaceId& surface_id,
const base::flat_set<SurfaceId>& old_referenced_surfaces,
const base::flat_set<SurfaceId>& new_referenced_surfaces) {
references_to_add_.clear();
references_to_remove_.clear();
GetSurfaceReferenceDifference(surface_id, old_referenced_surfaces,
......@@ -66,16 +65,16 @@ class ReferencedSurfaceTrackerTest : public testing::Test {
}
private:
std::vector<SurfaceReference> references_to_add_;
std::vector<SurfaceReference> references_to_remove_;
std::vector<cc::SurfaceReference> references_to_add_;
std::vector<cc::SurfaceReference> references_to_remove_;
DISALLOW_COPY_AND_ASSIGN(ReferencedSurfaceTrackerTest);
};
TEST_F(ReferencedSurfaceTrackerTest, AddSurfaceReference) {
const viz::SurfaceId parent_id = MakeSurfaceId(kParentFrameSink, 1);
const viz::SurfaceId child_id1 = MakeSurfaceId(kChildFrameSink1, 1);
const SurfaceReference reference(parent_id, child_id1);
const SurfaceId parent_id = MakeSurfaceId(kParentFrameSink, 1);
const SurfaceId child_id1 = MakeSurfaceId(kChildFrameSink1, 1);
const cc::SurfaceReference reference(parent_id, child_id1);
// Check that reference to |child_id1| is added.
UpdateReferences(parent_id, MakeReferenceSet({}),
......@@ -85,9 +84,9 @@ TEST_F(ReferencedSurfaceTrackerTest, AddSurfaceReference) {
}
TEST_F(ReferencedSurfaceTrackerTest, NoChangeToReferences) {
const viz::SurfaceId parent_id = MakeSurfaceId(kParentFrameSink, 1);
const viz::SurfaceId child_id1 = MakeSurfaceId(kChildFrameSink1, 1);
const SurfaceReference reference(parent_id, child_id1);
const SurfaceId parent_id = MakeSurfaceId(kParentFrameSink, 1);
const SurfaceId child_id1 = MakeSurfaceId(kChildFrameSink1, 1);
const cc::SurfaceReference reference(parent_id, child_id1);
// Check that no references are added or removed.
auto referenced_surfaces = MakeReferenceSet({child_id1});
......@@ -97,9 +96,9 @@ TEST_F(ReferencedSurfaceTrackerTest, NoChangeToReferences) {
}
TEST_F(ReferencedSurfaceTrackerTest, RemoveSurfaceReference) {
const viz::SurfaceId parent_id = MakeSurfaceId(kParentFrameSink, 1);
const viz::SurfaceId child_id1 = MakeSurfaceId(kChildFrameSink1, 1);
const SurfaceReference reference(parent_id, child_id1);
const SurfaceId parent_id = MakeSurfaceId(kParentFrameSink, 1);
const SurfaceId child_id1 = MakeSurfaceId(kChildFrameSink1, 1);
const cc::SurfaceReference reference(parent_id, child_id1);
// Check that reference to |child_id1| is removed.
UpdateReferences(parent_id, MakeReferenceSet({child_id1}),
......@@ -109,11 +108,11 @@ TEST_F(ReferencedSurfaceTrackerTest, RemoveSurfaceReference) {
}
TEST_F(ReferencedSurfaceTrackerTest, RemoveOneOfTwoSurfaceReferences) {
const viz::SurfaceId parent_id = MakeSurfaceId(kParentFrameSink, 1);
const viz::SurfaceId child_id1_first = MakeSurfaceId(kChildFrameSink1, 1);
const viz::SurfaceId child_id1_second = MakeSurfaceId(kChildFrameSink1, 2);
const SurfaceReference reference_first(parent_id, child_id1_first);
const SurfaceReference reference_second(parent_id, child_id1_second);
const SurfaceId parent_id = MakeSurfaceId(kParentFrameSink, 1);
const SurfaceId child_id1_first = MakeSurfaceId(kChildFrameSink1, 1);
const SurfaceId child_id1_second = MakeSurfaceId(kChildFrameSink1, 2);
const cc::SurfaceReference reference_first(parent_id, child_id1_first);
const cc::SurfaceReference reference_second(parent_id, child_id1_second);
// Check that reference to |child_id1_first| is removed and reference to
// |child_id1_second| is added.
......@@ -124,11 +123,11 @@ TEST_F(ReferencedSurfaceTrackerTest, RemoveOneOfTwoSurfaceReferences) {
}
TEST_F(ReferencedSurfaceTrackerTest, AddTwoThenRemoveOneSurfaceReferences) {
const viz::SurfaceId parent_id = MakeSurfaceId(kParentFrameSink, 1);
const viz::SurfaceId child_id1 = MakeSurfaceId(kChildFrameSink1, 1);
const viz::SurfaceId child_id2 = MakeSurfaceId(kChildFrameSink2, 2);
const SurfaceReference reference1(parent_id, child_id1);
const SurfaceReference reference2(parent_id, child_id2);
const SurfaceId parent_id = MakeSurfaceId(kParentFrameSink, 1);
const SurfaceId child_id1 = MakeSurfaceId(kChildFrameSink1, 1);
const SurfaceId child_id2 = MakeSurfaceId(kChildFrameSink2, 2);
const cc::SurfaceReference reference1(parent_id, child_id1);
const cc::SurfaceReference reference2(parent_id, child_id2);
// Check that first frame adds both surface references.
const auto initial_referenced = MakeReferenceSet({child_id1, child_id2});
......@@ -145,4 +144,4 @@ TEST_F(ReferencedSurfaceTrackerTest, AddTwoThenRemoveOneSurfaceReferences) {
}
} // namespace test
} // namespace cc
} // namespace viz
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment