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/layers/layer_lists.h" 6 7 #include "cc/layers/layer.h" 8 9 namespace cc { 10 RenderSurfaceLayerList()11RenderSurfaceLayerList::RenderSurfaceLayerList() {} 12 ~RenderSurfaceLayerList()13RenderSurfaceLayerList::~RenderSurfaceLayerList() { 14 for (size_t i = 0; i < size(); ++i) 15 at(size() - 1 - i)->ClearRenderSurface(); 16 } 17 at(size_t i) const18Layer* RenderSurfaceLayerList::at(size_t i) const { 19 return list_.at(i).get(); 20 } 21 pop_back()22void RenderSurfaceLayerList::pop_back() { 23 list_.pop_back(); 24 } 25 push_back(const scoped_refptr<Layer> & layer)26void RenderSurfaceLayerList::push_back(const scoped_refptr<Layer>& layer) { 27 list_.push_back(layer); 28 } 29 back()30Layer* RenderSurfaceLayerList::back() { 31 return list_.back().get(); 32 } 33 size() const34size_t RenderSurfaceLayerList::size() const { 35 return list_.size(); 36 } 37 operator [](size_t i)38scoped_refptr<Layer>& RenderSurfaceLayerList::operator[](size_t i) { 39 return list_[i]; 40 } operator [](size_t i) const41const scoped_refptr<Layer>& RenderSurfaceLayerList::operator[](size_t i) const { 42 return list_[i]; 43 } 44 begin()45LayerList::iterator RenderSurfaceLayerList::begin() { 46 return list_.begin(); 47 } 48 end()49LayerList::iterator RenderSurfaceLayerList::end() { 50 return list_.end(); 51 } 52 begin() const53LayerList::const_iterator RenderSurfaceLayerList::begin() const { 54 return list_.begin(); 55 } 56 end() const57LayerList::const_iterator RenderSurfaceLayerList::end() const { 58 return list_.end(); 59 } 60 clear()61void RenderSurfaceLayerList::clear() { 62 for (size_t i = 0; i < list_.size(); ++i) 63 DCHECK(!list_[i]->render_surface()); 64 list_.clear(); 65 } 66 67 } // namespace cc 68