Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1362)

Unified Diff: cc/surfaces/display_unittest.cc

Issue 1821863002: Hook up ui::Compositor to Display's BeginFrameSource (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix Display member destruction order Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « cc/surfaces/display_scheduler.cc ('k') | cc/surfaces/onscreen_display_client.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/surfaces/display_unittest.cc
diff --git a/cc/surfaces/display_unittest.cc b/cc/surfaces/display_unittest.cc
index 4a2de664fdbc36ffed6b4fc839c0c4e21e01ca05..312c3a4a9da65012ed9833c6baa246ab547be933 100644
--- a/cc/surfaces/display_unittest.cc
+++ b/cc/surfaces/display_unittest.cc
@@ -57,8 +57,11 @@ class DisplayTest : public testing::Test {
public:
DisplayTest()
: factory_(&manager_, &surface_factory_client_),
+ id_allocator_(kArbitrarySurfaceNamespace),
software_output_device_(nullptr),
- task_runner_(new base::NullTaskRunner) {}
+ task_runner_(new base::NullTaskRunner) {
+ id_allocator_.RegisterSurfaceIdNamespace(&manager_);
+ }
protected:
void SetUpContext(std::unique_ptr<TestWebGraphicsContext3D> context) {
@@ -87,13 +90,15 @@ class DisplayTest : public testing::Test {
SurfaceFactory::DrawCallback());
}
+ enum { kArbitrarySurfaceNamespace = 3 };
+
SurfaceManager manager_;
FakeSurfaceFactoryClient surface_factory_client_;
SurfaceFactory factory_;
+ SurfaceIdAllocator id_allocator_;
TestSoftwareOutputDevice* software_output_device_;
std::unique_ptr<FakeOutputSurface> output_surface_;
FakeOutputSurface* output_surface_ptr_;
- FakeBeginFrameSource fake_begin_frame_source_;
scoped_refptr<base::NullTaskRunner> task_runner_;
std::unique_ptr<SharedBitmapManager> shared_bitmap_manager_;
};
@@ -103,8 +108,6 @@ class TestDisplayClient : public DisplayClient {
TestDisplayClient() {}
~TestDisplayClient() override {}
- void CommitVSyncParameters(base::TimeTicks timebase,
- base::TimeDelta interval) override {}
void OutputSurfaceLost() override {}
void SetMemoryPolicy(const ManagedMemoryPolicy& policy) override {}
};
@@ -113,14 +116,12 @@ class TestDisplayScheduler : public DisplayScheduler {
public:
TestDisplayScheduler(DisplaySchedulerClient* client,
BeginFrameSource* begin_frame_source,
- base::NullTaskRunner* task_runner)
+ base::SingleThreadTaskRunner* task_runner)
: DisplayScheduler(client, begin_frame_source, task_runner, 1),
damaged(false),
display_resized_(false),
has_new_root_surface(false),
- swapped(false) {
- begin_frame_source_for_children_.reset(new FakeBeginFrameSource);
- }
+ swapped(false) {}
~TestDisplayScheduler() override {}
@@ -147,6 +148,35 @@ class TestDisplayScheduler : public DisplayScheduler {
bool display_resized_;
bool has_new_root_surface;
bool swapped;
+
+ private:
+ RendererSettings settings_;
+};
+
+class TestDisplay : public Display {
+ public:
+ TestDisplay(DisplayClient* client,
+ SurfaceManager* manager,
+ SharedBitmapManager* bitmap_manager,
+ gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager,
+ const RendererSettings& settings,
+ uint32_t compositor_surface_namespace)
+ : Display(client,
+ manager,
+ bitmap_manager,
+ gpu_memory_buffer_manager,
+ settings,
+ compositor_surface_namespace) {}
+
+ TestDisplayScheduler& scheduler() {
+ return *static_cast<TestDisplayScheduler*>(scheduler_.get());
+ }
+
+ protected:
+ void CreateScheduler(base::SingleThreadTaskRunner* task_runner) override {
+ scheduler_.reset(
+ new TestDisplayScheduler(this, vsync_begin_frame_source_, task_runner));
+ }
};
void CopyCallback(bool* called, std::unique_ptr<CopyOutputResult> result) {
@@ -160,14 +190,12 @@ TEST_F(DisplayTest, DisplayDamaged) {
RendererSettings settings;
settings.partial_swap_enabled = true;
settings.finish_rendering_on_resize = true;
- Display display(&client, &manager_, shared_bitmap_manager_.get(), nullptr,
- settings);
+ TestDisplay display(&client, &manager_, shared_bitmap_manager_.get(), nullptr,
+ settings, id_allocator_.id_namespace());
+ display.Initialize(std::move(output_surface_), task_runner_.get());
+ TestDisplayScheduler& scheduler = display.scheduler();
- TestDisplayScheduler scheduler(&display, &fake_begin_frame_source_,
- task_runner_.get());
- display.Initialize(std::move(output_surface_), &scheduler);
-
- SurfaceId surface_id(7u);
+ SurfaceId surface_id(id_allocator_.GenerateId());
EXPECT_FALSE(scheduler.damaged);
EXPECT_FALSE(scheduler.has_new_root_surface);
display.SetSurfaceId(surface_id, 1.f);
@@ -422,18 +450,17 @@ TEST_F(DisplayTest, Finish) {
SetUpContext(std::move(context));
EXPECT_CALL(*context_ptr, shallowFinishCHROMIUM()).Times(0);
+
+ SurfaceId surface_id(id_allocator_.GenerateId());
+
TestDisplayClient client;
RendererSettings settings;
settings.partial_swap_enabled = true;
settings.finish_rendering_on_resize = true;
- Display display(&client, &manager_, shared_bitmap_manager_.get(), nullptr,
- settings);
-
- TestDisplayScheduler scheduler(&display, &fake_begin_frame_source_,
- task_runner_.get());
- display.Initialize(std::move(output_surface_), &scheduler);
+ TestDisplay display(&client, &manager_, shared_bitmap_manager_.get(), nullptr,
+ settings, surface_id.id_namespace());
+ display.Initialize(std::move(output_surface_), task_runner_.get());
- SurfaceId surface_id(7u);
display.SetSurfaceId(surface_id, 1.f);
display.Resize(gfx::Size(100, 100));
« no previous file with comments | « cc/surfaces/display_scheduler.cc ('k') | cc/surfaces/onscreen_display_client.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698