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#include "cc/layers/surface_layer.h" 6 7#include "cc/layers/surface_layer_impl.h" 8 9namespace cc { 10 11scoped_refptr<SurfaceLayer> SurfaceLayer::Create() { 12 return make_scoped_refptr(new SurfaceLayer); 13} 14 15SurfaceLayer::SurfaceLayer() : Layer() { 16} 17 18SurfaceLayer::~SurfaceLayer() {} 19 20void SurfaceLayer::SetSurfaceId(SurfaceId surface_id) { 21 surface_id_ = surface_id; 22 SetNeedsPushProperties(); 23} 24 25scoped_ptr<LayerImpl> SurfaceLayer::CreateLayerImpl(LayerTreeImpl* tree_impl) { 26 return SurfaceLayerImpl::Create(tree_impl, id()).PassAs<LayerImpl>(); 27} 28 29bool SurfaceLayer::DrawsContent() const { 30 return !surface_id_.is_null() && Layer::DrawsContent(); 31} 32 33void SurfaceLayer::PushPropertiesTo(LayerImpl* layer) { 34 Layer::PushPropertiesTo(layer); 35 SurfaceLayerImpl* layer_impl = static_cast<SurfaceLayerImpl*>(layer); 36 37 layer_impl->SetSurfaceId(surface_id_); 38} 39 40} // namespace cc 41