Revert 264226 "Reduce dependency of TiclInvalidationService on P..."
[chromium-blink-merge.git] / cc / test / fake_tile_manager.cc
blob3b86035ad45e6a7bf774da03c888c2356e07f5af
1 // Copyright 2012 The Chromium 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.
5 #include "cc/test/fake_tile_manager.h"
7 #include <deque>
8 #include <limits>
10 #include "base/lazy_instance.h"
11 #include "cc/resources/rasterizer.h"
13 namespace cc {
15 namespace {
17 class FakeRasterizerImpl : public Rasterizer, public RasterizerTaskClient {
18 public:
19 // Overridden from Rasterizer:
20 virtual void SetClient(RasterizerClient* client) OVERRIDE {}
21 virtual void Shutdown() OVERRIDE {}
22 virtual void ScheduleTasks(RasterTaskQueue* queue) OVERRIDE {
23 for (RasterTaskQueue::Item::Vector::const_iterator it =
24 queue->items.begin();
25 it != queue->items.end();
26 ++it) {
27 RasterTask* task = it->task;
29 task->WillSchedule();
30 task->ScheduleOnOriginThread(this);
31 task->DidSchedule();
33 completed_tasks_.push_back(task);
36 virtual void CheckForCompletedTasks() OVERRIDE {
37 for (RasterTask::Vector::iterator it = completed_tasks_.begin();
38 it != completed_tasks_.end();
39 ++it) {
40 RasterTask* task = it->get();
42 task->WillComplete();
43 task->CompleteOnOriginThread(this);
44 task->DidComplete();
46 task->RunReplyOnOriginThread();
48 completed_tasks_.clear();
51 // Overridden from RasterizerTaskClient:
52 virtual SkCanvas* AcquireCanvasForRaster(RasterTask* task) OVERRIDE {
53 return NULL;
55 virtual void ReleaseCanvasForRaster(RasterTask* task) OVERRIDE {}
57 private:
58 RasterTask::Vector completed_tasks_;
60 base::LazyInstance<FakeRasterizerImpl> g_fake_rasterizer =
61 LAZY_INSTANCE_INITIALIZER;
63 } // namespace
65 FakeTileManager::FakeTileManager(TileManagerClient* client)
66 : TileManager(client,
67 NULL,
68 g_fake_rasterizer.Pointer(),
69 g_fake_rasterizer.Pointer(),
70 std::numeric_limits<unsigned>::max(),
71 true,
72 NULL) {}
74 FakeTileManager::FakeTileManager(TileManagerClient* client,
75 ResourcePool* resource_pool)
76 : TileManager(client,
77 resource_pool,
78 g_fake_rasterizer.Pointer(),
79 g_fake_rasterizer.Pointer(),
80 std::numeric_limits<unsigned>::max(),
81 true,
82 NULL) {}
84 FakeTileManager::FakeTileManager(TileManagerClient* client,
85 ResourcePool* resource_pool,
86 bool allow_on_demand_raster)
87 : TileManager(client,
88 resource_pool,
89 g_fake_rasterizer.Pointer(),
90 g_fake_rasterizer.Pointer(),
91 std::numeric_limits<unsigned>::max(),
92 allow_on_demand_raster,
93 NULL) {}
95 FakeTileManager::FakeTileManager(TileManagerClient* client,
96 ResourcePool* resource_pool,
97 size_t raster_task_limit_bytes)
98 : TileManager(client,
99 resource_pool,
100 g_fake_rasterizer.Pointer(),
101 g_fake_rasterizer.Pointer(),
102 raster_task_limit_bytes,
103 true,
104 NULL) {}
106 FakeTileManager::~FakeTileManager() {}
108 void FakeTileManager::AssignMemoryToTiles(
109 const GlobalStateThatImpactsTilePriority& state) {
110 tiles_for_raster.clear();
111 all_tiles.Clear();
113 SetGlobalStateForTesting(state);
114 GetTilesWithAssignedBins(&all_tiles);
115 AssignGpuMemoryToTiles(&all_tiles, &tiles_for_raster);
118 bool FakeTileManager::HasBeenAssignedMemory(Tile* tile) {
119 return std::find(tiles_for_raster.begin(),
120 tiles_for_raster.end(),
121 tile) != tiles_for_raster.end();
124 void FakeTileManager::DidFinishRunningTasksForTesting() {
125 DidFinishRunningTasks();
128 void FakeTileManager::Release(Tile* tile) {
129 TileManager::Release(tile);
130 CleanUpReleasedTiles();
133 } // namespace cc