14e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved. 24e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 34e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)// found in the LICENSE file. 44e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 54e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)#include "cc/test/fake_ui_resource_layer_tree_host_impl.h" 64e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 74e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)#include "cc/test/fake_layer_tree_host_impl.h" 84e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 94e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)namespace cc { 104e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 1123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)FakeUIResourceLayerTreeHostImpl::FakeUIResourceLayerTreeHostImpl( 1223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) Proxy* proxy, 1323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) SharedBitmapManager* manager) 1423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) : FakeLayerTreeHostImpl(proxy, manager), fake_next_resource_id_(1) {} 154e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 164e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)FakeUIResourceLayerTreeHostImpl::~FakeUIResourceLayerTreeHostImpl() {} 174e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 184e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)void FakeUIResourceLayerTreeHostImpl::CreateUIResource( 194e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) UIResourceId uid, 204e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) const UIResourceBitmap& bitmap) { 214e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) if (ResourceIdForUIResource(uid)) 224e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) DeleteUIResource(uid); 231e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) 241e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) UIResourceData data; 251e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) data.resource_id = fake_next_resource_id_++; 261e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) data.size = bitmap.GetSize(); 271e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) data.opaque = bitmap.GetOpaque(); 281e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) fake_ui_resource_map_[uid] = data; 294e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)} 304e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 314e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)void FakeUIResourceLayerTreeHostImpl::DeleteUIResource(UIResourceId uid) { 324e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) ResourceProvider::ResourceId id = ResourceIdForUIResource(uid); 334e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) if (id) 344e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) fake_ui_resource_map_.erase(uid); 354e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)} 364e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 374e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)ResourceProvider::ResourceId 384e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) FakeUIResourceLayerTreeHostImpl::ResourceIdForUIResource( 394e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) UIResourceId uid) const { 404e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) UIResourceMap::const_iterator iter = fake_ui_resource_map_.find(uid); 414e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) if (iter != fake_ui_resource_map_.end()) 421e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) return iter->second.resource_id; 434e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) return 0; 444e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)} 454e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 461e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)bool FakeUIResourceLayerTreeHostImpl::IsUIResourceOpaque(UIResourceId uid) 471e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) const { 481e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) UIResourceMap::const_iterator iter = fake_ui_resource_map_.find(uid); 491e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) DCHECK(iter != fake_ui_resource_map_.end()); 501e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) return iter->second.opaque; 511e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)} 521e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) 534e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)} // namespace cc 54