layer_lists.cc revision 8bcbed890bc3ce4d7a057a8f32cab53fa534672e
1ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch// Copyright 2013 The Chromium Authors. All rights reserved. 2ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch// Use of this source code is governed by a BSD-style license that can be 3ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch// found in the LICENSE file. 4ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch 5ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch#include "cc/layers/layer_lists.h" 6ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch 7ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch#include "cc/layers/layer.h" 8ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch 9ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdochnamespace cc { 10ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch 11ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben MurdochRenderSurfaceLayerList::RenderSurfaceLayerList() {} 12ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch 13ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben MurdochRenderSurfaceLayerList::~RenderSurfaceLayerList() { 14ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch for (size_t i = 0; i < size(); ++i) 15ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch at(size() - 1 - i)->ClearRenderSurface(); 16ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch} 17ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch 18ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben MurdochLayer* RenderSurfaceLayerList::at(size_t i) const { 19ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch return list_.at(i); 20ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch} 21ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch 22ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdochvoid RenderSurfaceLayerList::pop_back() { 23ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch list_.pop_back(); 24ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch} 25ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch 26ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdochvoid RenderSurfaceLayerList::push_back(const scoped_refptr<Layer>& layer) { 27ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch list_.push_back(layer); 28ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch} 29ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch 30ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben MurdochLayer* RenderSurfaceLayerList::back() { 31ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch return list_.back(); 32ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch} 33ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch 34ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdochsize_t RenderSurfaceLayerList::size() const { 35ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch return list_.size(); 36ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch} 37ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch 388bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)scoped_refptr<Layer>& RenderSurfaceLayerList::operator[](size_t i) { 398bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) return list_[i]; 408bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)} 418bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)const scoped_refptr<Layer>& RenderSurfaceLayerList::operator[](size_t i) const { 428bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) return list_[i]; 438bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)} 448bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) 45ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben MurdochLayerList::iterator RenderSurfaceLayerList::begin() { 46ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch return list_.begin(); 47ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch} 48ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch 49ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben MurdochLayerList::iterator RenderSurfaceLayerList::end() { 50ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch return list_.end(); 51ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch} 52ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch 53ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben MurdochLayerList::const_iterator RenderSurfaceLayerList::begin() const { 54ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch return list_.begin(); 55ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch} 56ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch 57ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben MurdochLayerList::const_iterator RenderSurfaceLayerList::end() const { 58ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch return list_.end(); 59ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch} 60ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch 61ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdochvoid RenderSurfaceLayerList::clear() { 62ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch for (size_t i = 0; i < list_.size(); ++i) 63ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch DCHECK(!list_[i]->render_surface()); 64ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch list_.clear(); 65ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch} 66ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch 67ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch} // namespace cc 68