| // Copyright 2012 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "cc/test/fake_picture_layer_tiling_client.h" |
| |
| #include <stddef.h> |
| |
| #include <limits> |
| |
| #include "base/threading/thread_task_runner_handle.h" |
| #include "cc/test/fake_raster_source.h" |
| #include "cc/test/fake_tile_manager.h" |
| |
| namespace cc { |
| |
| FakePictureLayerTilingClient::FakePictureLayerTilingClient() |
| : tile_manager_(new FakeTileManager(&tile_manager_client_)), |
| raster_source_(FakeRasterSource::CreateInfiniteFilled()), |
| twin_set_(nullptr), |
| twin_tiling_(nullptr), |
| has_valid_tile_priorities_(true) {} |
| |
| FakePictureLayerTilingClient::FakePictureLayerTilingClient( |
| viz::ClientResourceProvider* resource_provider, |
| viz::ContextProvider* context_provider) |
| : resource_pool_( |
| std::make_unique<ResourcePool>(resource_provider, |
| context_provider, |
| base::ThreadTaskRunnerHandle::Get(), |
| ResourcePool::kDefaultExpirationDelay, |
| false)), |
| tile_manager_( |
| new FakeTileManager(&tile_manager_client_, resource_pool_.get())), |
| raster_source_(FakeRasterSource::CreateInfiniteFilled()), |
| twin_set_(nullptr), |
| twin_tiling_(nullptr), |
| has_valid_tile_priorities_(true) {} |
| |
| FakePictureLayerTilingClient::~FakePictureLayerTilingClient() = default; |
| |
| std::unique_ptr<Tile> FakePictureLayerTilingClient::CreateTile( |
| const Tile::CreateInfo& info) { |
| return tile_manager_->CreateTile(info, 0, 0, 0, false); |
| } |
| |
| void FakePictureLayerTilingClient::SetTileSize(const gfx::Size& tile_size) { |
| tile_size_ = tile_size; |
| } |
| |
| gfx::Size FakePictureLayerTilingClient::CalculateTileSize( |
| const gfx::Size& /* content_bounds */) const { |
| return tile_size_; |
| } |
| |
| bool FakePictureLayerTilingClient::HasValidTilePriorities() const { |
| return has_valid_tile_priorities_; |
| } |
| |
| const Region* FakePictureLayerTilingClient::GetPendingInvalidation() { |
| return &invalidation_; |
| } |
| |
| const PictureLayerTiling* |
| FakePictureLayerTilingClient::GetPendingOrActiveTwinTiling( |
| const PictureLayerTiling* tiling) const { |
| if (!twin_set_) |
| return twin_tiling_; |
| for (size_t i = 0; i < twin_set_->num_tilings(); ++i) { |
| if (twin_set_->tiling_at(i)->raster_transform() == |
| tiling->raster_transform()) |
| return twin_set_->tiling_at(i); |
| } |
| return nullptr; |
| } |
| |
| bool FakePictureLayerTilingClient::RequiresHighResToDraw() const { |
| return false; |
| } |
| |
| } // namespace cc |