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