1// Copyright 2013 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#include "cc/resources/scoped_ui_resource.h" 6 7#include "base/basictypes.h" 8#include "base/bind.h" 9#include "cc/trees/layer_tree_host.h" 10 11namespace cc { 12 13scoped_ptr<ScopedUIResource> ScopedUIResource::Create( 14 LayerTreeHost* host, 15 const UIResourceBitmap& bitmap) { 16 return make_scoped_ptr(new ScopedUIResource(host, bitmap)); 17} 18 19ScopedUIResource::ScopedUIResource(LayerTreeHost* host, 20 const UIResourceBitmap& bitmap) 21 : bitmap_(bitmap), host_(host) { 22 DCHECK(host_); 23 id_ = host_->CreateUIResource(this); 24} 25 26// User must make sure that host is still valid before this object goes out of 27// scope. 28ScopedUIResource::~ScopedUIResource() { 29 if (id_) { 30 DCHECK(host_); 31 host_->DeleteUIResource(id_); 32 } 33} 34 35UIResourceBitmap ScopedUIResource::GetBitmap(UIResourceId uid, 36 bool resource_lost) { 37 return bitmap_; 38} 39 40} // namespace cc 41