1a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved. 2a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 3a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)// found in the LICENSE file. 4a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) 5a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)#include "cc/test/fake_scoped_ui_resource.h" 6a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) 7a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)#include "cc/trees/layer_tree_host.h" 8a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) 9a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)namespace cc { 10a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) 1168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)namespace { 1268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) 1368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)UIResourceBitmap CreateMockUIResourceBitmap() { 14effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch bool is_opaque = false; 15effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch return UIResourceBitmap(gfx::Size(1, 1), is_opaque); 1668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)} 1768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) 1868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)} // anonymous namespace 1968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) 20a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)scoped_ptr<FakeScopedUIResource> FakeScopedUIResource::Create( 21a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) LayerTreeHost* host) { 22a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) return make_scoped_ptr(new FakeScopedUIResource(host)); 23a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)} 24a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) 2568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)FakeScopedUIResource::FakeScopedUIResource(LayerTreeHost* host) 2668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) : ScopedUIResource(host, CreateMockUIResourceBitmap()) { 2768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) // The constructor of ScopedUIResource already created a resource so we need 2868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) // to delete the created resource to wipe the state clean. 2968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) host_->DeleteUIResource(id_); 30a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) ResetCounters(); 31a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) id_ = host_->CreateUIResource(this); 32a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)} 33a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) 3468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)UIResourceBitmap FakeScopedUIResource::GetBitmap(UIResourceId uid, 3568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) bool resource_lost) { 36a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) resource_create_count++; 37a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) if (resource_lost) 38a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) lost_resource_count++; 39a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) return ScopedUIResource::GetBitmap(uid, resource_lost); 40a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)} 41a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) 42a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)void FakeScopedUIResource::ResetCounters() { 43a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) resource_create_count = 0; 44a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) lost_resource_count = 0; 45a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)} 46a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) 47a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)} // namespace cc 48