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_QUADS_CHECKERBOARD_DRAW_QUAD_H_
6#define CC_QUADS_CHECKERBOARD_DRAW_QUAD_H_
7
8#include "base/memory/scoped_ptr.h"
9#include "cc/base/cc_export.h"
10#include "cc/quads/draw_quad.h"
11#include "third_party/skia/include/core/SkColor.h"
12
13namespace cc {
14
15class CC_EXPORT CheckerboardDrawQuad : public DrawQuad {
16 public:
17  static scoped_ptr<CheckerboardDrawQuad> Create();
18
19  void SetNew(const SharedQuadState* shared_quad_state,
20              const gfx::Rect& rect,
21              const gfx::Rect& visible_rect,
22              SkColor color);
23
24  void SetAll(const SharedQuadState* shared_quad_state,
25              const gfx::Rect& rect,
26              const gfx::Rect& opaque_rect,
27              const gfx::Rect& visible_rect,
28              bool needs_blending,
29              SkColor color);
30
31  SkColor color;
32
33  virtual void IterateResources(const ResourceIteratorCallback& callback)
34    OVERRIDE;
35
36  static const CheckerboardDrawQuad* MaterialCast(const DrawQuad*);
37
38 private:
39  virtual void ExtendValue(base::DictionaryValue* value) const OVERRIDE;
40  CheckerboardDrawQuad();
41};
42
43}  // namespace cc
44
45#endif  // CC_QUADS_CHECKERBOARD_DRAW_QUAD_H_
46