12a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Copyright 2012 The Chromium Authors. All rights reserved.
22a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
32a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// found in the LICENSE file.
42a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
52a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "cc/quads/checkerboard_draw_quad.h"
62a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
75f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#include "base/debug/trace_event_argument.h"
82a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "base/logging.h"
9ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch#include "base/values.h"
102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)namespace cc {
122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)CheckerboardDrawQuad::CheckerboardDrawQuad() : color(0) {}
142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void CheckerboardDrawQuad::SetNew(const SharedQuadState* shared_quad_state,
165d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                                  const gfx::Rect& rect,
17a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)                                  const gfx::Rect& visible_rect,
182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                                  SkColor color) {
192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  gfx::Rect opaque_rect = SkColorGetA(color) == 255 ? rect : gfx::Rect();
202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  bool needs_blending = false;
212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  DrawQuad::SetAll(shared_quad_state, DrawQuad::CHECKERBOARD, rect, opaque_rect,
222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                   visible_rect, needs_blending);
232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  this->color = color;
242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void CheckerboardDrawQuad::SetAll(const SharedQuadState* shared_quad_state,
275d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                                  const gfx::Rect& rect,
285d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                                  const gfx::Rect& opaque_rect,
295d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                                  const gfx::Rect& visible_rect,
302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                                  bool needs_blending,
312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                                  SkColor color) {
322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  DrawQuad::SetAll(shared_quad_state, DrawQuad::CHECKERBOARD, rect, opaque_rect,
332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                   visible_rect, needs_blending);
342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  this->color = color;
352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void CheckerboardDrawQuad::IterateResources(
382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    const ResourceIteratorCallback& callback) {}
392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const CheckerboardDrawQuad* CheckerboardDrawQuad::MaterialCast(
412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    const DrawQuad* quad) {
422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  DCHECK(quad->material == DrawQuad::CHECKERBOARD);
432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  return static_cast<const CheckerboardDrawQuad*>(quad);
442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
465f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)void CheckerboardDrawQuad::ExtendValue(base::debug::TracedValue* value) const {
47ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  value->SetInteger("color", color);
48ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch}
49ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch
502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}  // namespace cc
51