layer_owner.cc revision 23730a6e56a168d1879203e4b3819bb36e3d8f1f
1// Copyright (c) 2012 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 "ui/compositor/layer_owner.h"
6
7namespace ui {
8
9LayerOwner::LayerOwner() : layer_(NULL) {
10}
11
12LayerOwner::~LayerOwner() {
13}
14
15void LayerOwner::SetLayer(Layer* layer) {
16  DCHECK(!OwnsLayer());
17  layer_owner_.reset(layer);
18  layer_ = layer;
19  layer_->owner_ = this;
20}
21
22Layer* LayerOwner::AcquireLayer() {
23  if (layer_owner_)
24    layer_owner_->owner_ = NULL;
25  return layer_owner_.release();
26}
27
28scoped_ptr<Layer> LayerOwner::RecreateLayer() {
29  return scoped_ptr<ui::Layer>();
30}
31
32void LayerOwner::DestroyLayer() {
33  layer_ = NULL;
34  layer_owner_.reset();
35}
36
37bool LayerOwner::OwnsLayer() const {
38  return !!layer_owner_;
39}
40
41}  // namespace ui
42