solid_color_layer_impl.h revision 5b892326406927b709cdaf6c384d4ababf456332
1// Copyright 2012 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_SOLID_COLOR_LAYER_IMPL_H_
6#define CC_LAYERS_SOLID_COLOR_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 SolidColorLayerImpl : public LayerImpl {
15 public:
16  static scoped_ptr<SolidColorLayerImpl> Create(LayerTreeImpl* tree_impl,
17                                                int id) {
18    return make_scoped_ptr(new SolidColorLayerImpl(tree_impl, id));
19  }
20
21  static void AppendSolidQuads(
22      RenderPass* render_pass,
23      const OcclusionTracker<LayerImpl>& occlusion_tracker,
24      SharedQuadState* shared_quad_state,
25      const gfx::Rect& visible_content_rect,
26      const gfx::Transform& target_space_transform,
27      SkColor color);
28
29  virtual ~SolidColorLayerImpl();
30
31  // LayerImpl overrides.
32  virtual scoped_ptr<LayerImpl> CreateLayerImpl(LayerTreeImpl* tree_impl)
33      OVERRIDE;
34  virtual void AppendQuads(RenderPass* render_pass,
35                           const OcclusionTracker<LayerImpl>& occlusion_tracker,
36                           AppendQuadsData* append_quads_data) OVERRIDE;
37
38 protected:
39  SolidColorLayerImpl(LayerTreeImpl* tree_impl, int id);
40
41 private:
42  virtual const char* LayerTypeAsString() const OVERRIDE;
43
44  DISALLOW_COPY_AND_ASSIGN(SolidColorLayerImpl);
45};
46
47}  // namespace cc
48
49#endif  // CC_LAYERS_SOLID_COLOR_LAYER_IMPL_H_
50