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 9namespace cc { 10 11RenderSurfaceLayerList::RenderSurfaceLayerList() {} 12 13RenderSurfaceLayerList::~RenderSurfaceLayerList() { 14 for (size_t i = 0; i < size(); ++i) 15 at(size() - 1 - i)->ClearRenderSurface(); 16} 17 18Layer* RenderSurfaceLayerList::at(size_t i) const { 19 return list_.at(i).get(); 20} 21 22void RenderSurfaceLayerList::pop_back() { 23 list_.pop_back(); 24} 25 26void RenderSurfaceLayerList::push_back(const scoped_refptr<Layer>& layer) { 27 list_.push_back(layer); 28} 29 30Layer* RenderSurfaceLayerList::back() { 31 return list_.back().get(); 32} 33 34size_t RenderSurfaceLayerList::size() const { 35 return list_.size(); 36} 37 38scoped_refptr<Layer>& RenderSurfaceLayerList::operator[](size_t i) { 39 return list_[i]; 40} 41const scoped_refptr<Layer>& RenderSurfaceLayerList::operator[](size_t i) const { 42 return list_[i]; 43} 44 45LayerList::iterator RenderSurfaceLayerList::begin() { 46 return list_.begin(); 47} 48 49LayerList::iterator RenderSurfaceLayerList::end() { 50 return list_.end(); 51} 52 53LayerList::const_iterator RenderSurfaceLayerList::begin() const { 54 return list_.begin(); 55} 56 57LayerList::const_iterator RenderSurfaceLayerList::end() const { 58 return list_.end(); 59} 60 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