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 #include "cc/surfaces/surface_id.h" 12 13 namespace cc { 14 15 class CC_EXPORT SurfaceLayerImpl : public LayerImpl { 16 public: Create(LayerTreeImpl * tree_impl,int id)17 static scoped_ptr<SurfaceLayerImpl> Create(LayerTreeImpl* tree_impl, int id) { 18 return make_scoped_ptr(new SurfaceLayerImpl(tree_impl, id)); 19 } 20 virtual ~SurfaceLayerImpl(); 21 22 void SetSurfaceId(SurfaceId surface_id); 23 24 // LayerImpl overrides. 25 virtual scoped_ptr<LayerImpl> CreateLayerImpl(LayerTreeImpl* tree_impl) 26 OVERRIDE; 27 virtual void PushPropertiesTo(LayerImpl* layer) OVERRIDE; 28 virtual void AppendQuads(RenderPass* render_pass, 29 const OcclusionTracker<LayerImpl>& occlusion_tracker, 30 AppendQuadsData* append_quads_data) OVERRIDE; 31 32 protected: 33 SurfaceLayerImpl(LayerTreeImpl* tree_impl, int id); 34 35 private: 36 virtual void GetDebugBorderProperties(SkColor* color, 37 float* width) const OVERRIDE; 38 virtual void AsValueInto(base::debug::TracedValue* dict) const OVERRIDE; 39 virtual const char* LayerTypeAsString() const OVERRIDE; 40 41 SurfaceId surface_id_; 42 43 DISALLOW_COPY_AND_ASSIGN(SurfaceLayerImpl); 44 }; 45 46 } // namespace cc 47 48 #endif // CC_LAYERS_SURFACE_LAYER_IMPL_H_ 49