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 9 namespace cc { 10 11 scoped_refptr<SurfaceLayer> SurfaceLayer::Create() { 12 return make_scoped_refptr(new SurfaceLayer); 13 } 14 15 SurfaceLayer::SurfaceLayer() : Layer() { 16 } 17 18 SurfaceLayer::~SurfaceLayer() {} 19 20 void SurfaceLayer::SetSurfaceId(SurfaceId surface_id) { 21 surface_id_ = surface_id; 22 SetNeedsPushProperties(); 23 } 24 25 scoped_ptr<LayerImpl> SurfaceLayer::CreateLayerImpl(LayerTreeImpl* tree_impl) { 26 return SurfaceLayerImpl::Create(tree_impl, id()).PassAs<LayerImpl>(); 27 } 28 29 bool SurfaceLayer::DrawsContent() const { 30 return !surface_id_.is_null() && Layer::DrawsContent(); 31 } 32 33 void 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