| // Copyright 2013 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_scoped_ui_resource.h" |
| |
| #include "base/memory/ptr_util.h" |
| #include "cc/resources/ui_resource_manager.h" |
| #include "cc/trees/layer_tree_host.h" |
| |
| namespace cc { |
| |
| namespace { |
| |
| UIResourceBitmap CreateMockUIResourceBitmap() { |
| bool is_opaque = false; |
| return UIResourceBitmap(gfx::Size(1, 1), is_opaque); |
| } |
| |
| } // anonymous namespace |
| |
| std::unique_ptr<FakeScopedUIResource> FakeScopedUIResource::Create( |
| UIResourceManager* ui_resource_manager) { |
| return base::WrapUnique(new FakeScopedUIResource(ui_resource_manager)); |
| } |
| |
| FakeScopedUIResource::FakeScopedUIResource( |
| UIResourceManager* ui_resource_manager) |
| : ScopedUIResource(ui_resource_manager, CreateMockUIResourceBitmap()) { |
| // The constructor of ScopedUIResource already created a resource so we need |
| // to delete the created resource to wipe the state clean. |
| ui_resource_manager_->DeleteUIResource(id_); |
| ResetCounters(); |
| id_ = ui_resource_manager_->CreateUIResource(this); |
| } |
| |
| void FakeScopedUIResource::DeleteResource() { |
| ui_resource_manager_->DeleteUIResource(id_); |
| id_ = 0; |
| } |
| |
| UIResourceBitmap FakeScopedUIResource::GetBitmap(UIResourceId uid, |
| bool resource_lost) { |
| resource_create_count++; |
| if (resource_lost) |
| lost_resource_count++; |
| return ScopedUIResource::GetBitmap(uid, resource_lost); |
| } |
| |
| void FakeScopedUIResource::ResetCounters() { |
| resource_create_count = 0; |
| lost_resource_count = 0; |
| } |
| |
| } // namespace cc |