surface_layer_impl.h revision 5d1f7b1de12d16ceb2c938c56701a3e8bfa558f7
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#ifndef CC_LAYERS_SURFACE_LAYER_IMPL_H_ 6#define CC_LAYERS_SURFACE_LAYER_IMPL_H_ 7 8#include "base/memory/scoped_ptr.h" 9#include "cc/base/cc_export.h" 10#include "cc/layers/layer_impl.h" 11 12namespace cc { 13 14class CC_EXPORT SurfaceLayerImpl : public LayerImpl { 15 public: 16 static scoped_ptr<SurfaceLayerImpl> Create(LayerTreeImpl* tree_impl, int id) { 17 return make_scoped_ptr(new SurfaceLayerImpl(tree_impl, id)); 18 } 19 virtual ~SurfaceLayerImpl(); 20 21 void SetSurfaceId(int surface_id); 22 23 // LayerImpl overrides. 24 virtual scoped_ptr<LayerImpl> CreateLayerImpl(LayerTreeImpl* tree_impl) 25 OVERRIDE; 26 virtual void PushPropertiesTo(LayerImpl* layer) OVERRIDE; 27 virtual void AppendQuads(QuadSink* quad_sink, 28 AppendQuadsData* append_quads_data) OVERRIDE; 29 30 protected: 31 SurfaceLayerImpl(LayerTreeImpl* tree_impl, int id); 32 33 private: 34 virtual void GetDebugBorderProperties(SkColor* color, 35 float* width) const OVERRIDE; 36 virtual void AsValueInto(base::DictionaryValue* dict) const OVERRIDE; 37 virtual const char* LayerTypeAsString() const OVERRIDE; 38 39 int surface_id_; 40 41 DISALLOW_COPY_AND_ASSIGN(SurfaceLayerImpl); 42}; 43 44} // namespace cc 45 46#endif // CC_LAYERS_SURFACE_LAYER_IMPL_H_ 47