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 11 namespace cc { 12 13 scoped_ptr<ScopedUIResource> ScopedUIResource::Create( 14 LayerTreeHost* host, 15 const UIResourceBitmap& bitmap) { 16 return make_scoped_ptr(new ScopedUIResource(host, bitmap)); 17 } 18 19 ScopedUIResource::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. 28 ScopedUIResource::~ScopedUIResource() { 29 if (id_) { 30 DCHECK(host_); 31 host_->DeleteUIResource(id_); 32 } 33 } 34 35 UIResourceBitmap ScopedUIResource::GetBitmap(UIResourceId uid, 36 bool resource_lost) { 37 return bitmap_; 38 } 39 40 } // namespace cc 41