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