checkerboard_draw_quad.cc revision ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16
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)
72a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "base/logging.h"
8ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch#include "base/values.h"
92a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)namespace cc {
112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)CheckerboardDrawQuad::CheckerboardDrawQuad() : color(0) {}
132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)scoped_ptr<CheckerboardDrawQuad> CheckerboardDrawQuad::Create() {
152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  return make_scoped_ptr(new CheckerboardDrawQuad);
162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void CheckerboardDrawQuad::SetNew(const SharedQuadState* shared_quad_state,
192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                                  gfx::Rect rect,
202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                                  SkColor color) {
212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  gfx::Rect opaque_rect = SkColorGetA(color) == 255 ? rect : gfx::Rect();
222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  gfx::Rect visible_rect = rect;
232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  bool needs_blending = false;
242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  DrawQuad::SetAll(shared_quad_state, DrawQuad::CHECKERBOARD, rect, opaque_rect,
252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                   visible_rect, needs_blending);
262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  this->color = color;
272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void CheckerboardDrawQuad::SetAll(const SharedQuadState* shared_quad_state,
302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                                  gfx::Rect rect,
312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                                  gfx::Rect opaque_rect,
322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                                  gfx::Rect visible_rect,
332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                                  bool needs_blending,
342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                                  SkColor color) {
352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  DrawQuad::SetAll(shared_quad_state, DrawQuad::CHECKERBOARD, rect, opaque_rect,
362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                   visible_rect, needs_blending);
372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  this->color = color;
382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void CheckerboardDrawQuad::IterateResources(
412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    const ResourceIteratorCallback& callback) {}
422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const CheckerboardDrawQuad* CheckerboardDrawQuad::MaterialCast(
442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    const DrawQuad* quad) {
452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  DCHECK(quad->material == DrawQuad::CHECKERBOARD);
462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  return static_cast<const CheckerboardDrawQuad*>(quad);
472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
49ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdochvoid CheckerboardDrawQuad::ExtendValue(base::DictionaryValue* value) const {
50ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  value->SetInteger("color", color);
51ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch}
52ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch
532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}  // namespace cc
54