| OLD | NEW |
| 1 // Copyright 2012 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "cc/test/fake_tile_manager.h" | 5 #include "cc/test/fake_tile_manager.h" |
| 6 | 6 |
| 7 #include <deque> | 7 #include <deque> |
| 8 #include <limits> | 8 #include <limits> |
| 9 | 9 |
| 10 #include "base/lazy_instance.h" | 10 #include "base/lazy_instance.h" |
| 11 #include "cc/resources/raster_worker_pool.h" | 11 #include "cc/resources/rasterizer.h" |
| 12 | 12 |
| 13 namespace cc { | 13 namespace cc { |
| 14 | 14 |
| 15 namespace { | 15 namespace { |
| 16 | 16 |
| 17 class FakeRasterWorkerPool : public RasterWorkerPool, | 17 class FakeRasterizerImpl : public Rasterizer, |
| 18 public internal::WorkerPoolTaskClient { | 18 public internal::RasterizerTaskClient { |
| 19 public: | 19 public: |
| 20 // Overridden from RasterWorkerPool: | 20 // Overridden from Rasterizer: |
| 21 virtual void SetClient(RasterWorkerPoolClient* client) OVERRIDE {} | 21 virtual void SetClient(RasterizerClient* client) OVERRIDE {} |
| 22 virtual void Shutdown() OVERRIDE {} | 22 virtual void Shutdown() OVERRIDE {} |
| 23 virtual void ScheduleTasks(RasterTaskQueue* queue) OVERRIDE { | 23 virtual void ScheduleTasks(RasterTaskQueue* queue) OVERRIDE { |
| 24 for (RasterTaskQueue::Item::Vector::const_iterator it = | 24 for (RasterTaskQueue::Item::Vector::const_iterator it = |
| 25 queue->items.begin(); | 25 queue->items.begin(); |
| 26 it != queue->items.end(); | 26 it != queue->items.end(); |
| 27 ++it) { | 27 ++it) { |
| 28 internal::RasterWorkerPoolTask* task = it->task; | 28 internal::RasterTask* task = it->task; |
| 29 | 29 |
| 30 task->WillSchedule(); | 30 task->WillSchedule(); |
| 31 task->ScheduleOnOriginThread(this); | 31 task->ScheduleOnOriginThread(this); |
| 32 task->DidSchedule(); | 32 task->DidSchedule(); |
| 33 | 33 |
| 34 completed_tasks_.push_back(task); | 34 completed_tasks_.push_back(task); |
| 35 } | 35 } |
| 36 } | 36 } |
| 37 virtual void CheckForCompletedTasks() OVERRIDE { | 37 virtual void CheckForCompletedTasks() OVERRIDE { |
| 38 for (internal::WorkerPoolTask::Vector::iterator it = | 38 for (internal::RasterTask::Vector::iterator it = completed_tasks_.begin(); |
| 39 completed_tasks_.begin(); | |
| 40 it != completed_tasks_.end(); | 39 it != completed_tasks_.end(); |
| 41 ++it) { | 40 ++it) { |
| 42 internal::WorkerPoolTask* task = it->get(); | 41 internal::RasterTask* task = it->get(); |
| 43 | 42 |
| 44 task->WillComplete(); | 43 task->WillComplete(); |
| 45 task->CompleteOnOriginThread(this); | 44 task->CompleteOnOriginThread(this); |
| 46 task->DidComplete(); | 45 task->DidComplete(); |
| 47 | 46 |
| 48 task->RunReplyOnOriginThread(); | 47 task->RunReplyOnOriginThread(); |
| 49 } | 48 } |
| 50 completed_tasks_.clear(); | 49 completed_tasks_.clear(); |
| 51 } | 50 } |
| 52 virtual GLenum GetResourceTarget() const OVERRIDE { | 51 virtual GLenum GetResourceTarget() const OVERRIDE { |
| 53 return GL_TEXTURE_2D; | 52 return GL_TEXTURE_2D; |
| 54 } | 53 } |
| 55 virtual ResourceFormat GetResourceFormat() const OVERRIDE { | 54 virtual ResourceFormat GetResourceFormat() const OVERRIDE { |
| 56 return RGBA_8888; | 55 return RGBA_8888; |
| 57 } | 56 } |
| 58 | 57 |
| 59 // Overridden from internal::WorkerPoolTaskClient: | 58 // Overridden from internal::RasterizerTaskClient: |
| 60 virtual SkCanvas* AcquireCanvasForRaster(internal::WorkerPoolTask* task, | 59 virtual SkCanvas* AcquireCanvasForRaster(internal::RasterTask* task) |
| 61 const Resource* resource) OVERRIDE { | 60 OVERRIDE { |
| 62 return NULL; | 61 return NULL; |
| 63 } | 62 } |
| 64 virtual void ReleaseCanvasForRaster(internal::WorkerPoolTask* task, | 63 virtual void ReleaseCanvasForRaster(internal::RasterTask* task) OVERRIDE {} |
| 65 const Resource* resource) OVERRIDE {} | |
| 66 | 64 |
| 67 private: | 65 private: |
| 68 internal::WorkerPoolTask::Vector completed_tasks_; | 66 internal::RasterTask::Vector completed_tasks_; |
| 69 }; | 67 }; |
| 70 base::LazyInstance<FakeRasterWorkerPool> g_fake_raster_worker_pool = | 68 base::LazyInstance<FakeRasterizerImpl> g_fake_rasterizer = |
| 71 LAZY_INSTANCE_INITIALIZER; | 69 LAZY_INSTANCE_INITIALIZER; |
| 72 | 70 |
| 73 } // namespace | 71 } // namespace |
| 74 | 72 |
| 75 FakeTileManager::FakeTileManager(TileManagerClient* client) | 73 FakeTileManager::FakeTileManager(TileManagerClient* client) |
| 76 : TileManager(client, | 74 : TileManager(client, |
| 77 NULL, | 75 NULL, |
| 78 g_fake_raster_worker_pool.Pointer(), | 76 g_fake_rasterizer.Pointer(), |
| 79 g_fake_raster_worker_pool.Pointer(), | 77 g_fake_rasterizer.Pointer(), |
| 80 std::numeric_limits<unsigned>::max(), | 78 std::numeric_limits<unsigned>::max(), |
| 81 true, | 79 true, |
| 82 NULL) {} | 80 NULL) {} |
| 83 | 81 |
| 84 FakeTileManager::FakeTileManager(TileManagerClient* client, | 82 FakeTileManager::FakeTileManager(TileManagerClient* client, |
| 85 ResourceProvider* resource_provider) | 83 ResourceProvider* resource_provider) |
| 86 : TileManager(client, | 84 : TileManager(client, |
| 87 resource_provider, | 85 resource_provider, |
| 88 g_fake_raster_worker_pool.Pointer(), | 86 g_fake_rasterizer.Pointer(), |
| 89 g_fake_raster_worker_pool.Pointer(), | 87 g_fake_rasterizer.Pointer(), |
| 90 std::numeric_limits<unsigned>::max(), | 88 std::numeric_limits<unsigned>::max(), |
| 91 true, | 89 true, |
| 92 NULL) {} | 90 NULL) {} |
| 93 | 91 |
| 94 FakeTileManager::FakeTileManager(TileManagerClient* client, | 92 FakeTileManager::FakeTileManager(TileManagerClient* client, |
| 95 ResourceProvider* resource_provider, | 93 ResourceProvider* resource_provider, |
| 96 bool allow_on_demand_raster) | 94 bool allow_on_demand_raster) |
| 97 : TileManager(client, | 95 : TileManager(client, |
| 98 resource_provider, | 96 resource_provider, |
| 99 g_fake_raster_worker_pool.Pointer(), | 97 g_fake_rasterizer.Pointer(), |
| 100 g_fake_raster_worker_pool.Pointer(), | 98 g_fake_rasterizer.Pointer(), |
| 101 std::numeric_limits<unsigned>::max(), | 99 std::numeric_limits<unsigned>::max(), |
| 102 allow_on_demand_raster, | 100 allow_on_demand_raster, |
| 103 NULL) {} | 101 NULL) {} |
| 104 | 102 |
| 105 FakeTileManager::FakeTileManager(TileManagerClient* client, | 103 FakeTileManager::FakeTileManager(TileManagerClient* client, |
| 106 ResourceProvider* resource_provider, | 104 ResourceProvider* resource_provider, |
| 107 size_t raster_task_limit_bytes) | 105 size_t raster_task_limit_bytes) |
| 108 : TileManager(client, | 106 : TileManager(client, |
| 109 resource_provider, | 107 resource_provider, |
| 110 g_fake_raster_worker_pool.Pointer(), | 108 g_fake_rasterizer.Pointer(), |
| 111 g_fake_raster_worker_pool.Pointer(), | 109 g_fake_rasterizer.Pointer(), |
| 112 raster_task_limit_bytes, | 110 raster_task_limit_bytes, |
| 113 true, | 111 true, |
| 114 NULL) {} | 112 NULL) {} |
| 115 | 113 |
| 116 FakeTileManager::~FakeTileManager() {} | 114 FakeTileManager::~FakeTileManager() {} |
| 117 | 115 |
| 118 void FakeTileManager::AssignMemoryToTiles( | 116 void FakeTileManager::AssignMemoryToTiles( |
| 119 const GlobalStateThatImpactsTilePriority& state) { | 117 const GlobalStateThatImpactsTilePriority& state) { |
| 120 tiles_for_raster.clear(); | 118 tiles_for_raster.clear(); |
| 121 all_tiles.Clear(); | 119 all_tiles.Clear(); |
| (...skipping 12 matching lines...) Expand all Loading... |
| 134 void FakeTileManager::DidFinishRunningTasksForTesting() { | 132 void FakeTileManager::DidFinishRunningTasksForTesting() { |
| 135 DidFinishRunningTasks(); | 133 DidFinishRunningTasks(); |
| 136 } | 134 } |
| 137 | 135 |
| 138 void FakeTileManager::Release(Tile* tile) { | 136 void FakeTileManager::Release(Tile* tile) { |
| 139 TileManager::Release(tile); | 137 TileManager::Release(tile); |
| 140 CleanUpReleasedTiles(); | 138 CleanUpReleasedTiles(); |
| 141 } | 139 } |
| 142 | 140 |
| 143 } // namespace cc | 141 } // namespace cc |
| OLD | NEW |