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