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 UpdateDrawsContent(HasDrawableContent()); 23 SetNeedsPushProperties(); 24 } 25 26 scoped_ptr<LayerImpl> SurfaceLayer::CreateLayerImpl(LayerTreeImpl* tree_impl) { 27 return SurfaceLayerImpl::Create(tree_impl, id()).PassAs<LayerImpl>(); 28 } 29 30 bool SurfaceLayer::HasDrawableContent() const { 31 return !surface_id_.is_null() && Layer::HasDrawableContent(); 32 } 33 34 void SurfaceLayer::PushPropertiesTo(LayerImpl* layer) { 35 Layer::PushPropertiesTo(layer); 36 SurfaceLayerImpl* layer_impl = static_cast<SurfaceLayerImpl*>(layer); 37 38 layer_impl->SetSurfaceId(surface_id_); 39 } 40 41 } // namespace cc 42