surface_layer_impl.h revision 5f1c94371a64b3196d4be9466099bb892df9b88e
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 13namespace cc { 14 15class CC_EXPORT SurfaceLayerImpl : public LayerImpl { 16 public: 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