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 UpdateDrawsContent(HasDrawableContent()); 23 SetNeedsPushProperties(); 24} 25 26scoped_ptr<LayerImpl> SurfaceLayer::CreateLayerImpl(LayerTreeImpl* tree_impl) { 27 return SurfaceLayerImpl::Create(tree_impl, id()).PassAs<LayerImpl>(); 28} 29 30bool SurfaceLayer::HasDrawableContent() const { 31 return !surface_id_.is_null() && Layer::HasDrawableContent(); 32} 33 34void 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