Home | History | Annotate | Download | only in compositor
      1 // Copyright 2014 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 #ifndef UI_COMPOSITOR_LAYER_TREE_OWNER_H_
      6 #define UI_COMPOSITOR_LAYER_TREE_OWNER_H_
      7 
      8 #include "base/basictypes.h"
      9 #include "ui/compositor/compositor_export.h"
     10 
     11 namespace ui {
     12 
     13 class Layer;
     14 
     15 // Scoping object that owns a Layer and all its descendants.
     16 class COMPOSITOR_EXPORT LayerTreeOwner {
     17  public:
     18   explicit LayerTreeOwner(Layer* root);
     19   ~LayerTreeOwner();
     20 
     21   Layer* release() WARN_UNUSED_RESULT {
     22     Layer* root = root_;
     23     root_ = NULL;
     24     return root;
     25   }
     26 
     27   Layer* root() { return root_; }
     28   const Layer* root() const { return root_; }
     29 
     30  private:
     31   Layer* root_;
     32 
     33   DISALLOW_COPY_AND_ASSIGN(LayerTreeOwner);
     34 };
     35 
     36 }  // namespace
     37 
     38 #endif  // UI_COMPOSITOR_LAYER_TREE_OWNER_H_
     39