Home | History | Annotate | Download | only in quads
      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 #include "cc/quads/debug_border_draw_quad.h"
      6 
      7 #include "base/debug/trace_event_argument.h"
      8 #include "base/logging.h"
      9 #include "base/values.h"
     10 
     11 namespace cc {
     12 
     13 DebugBorderDrawQuad::DebugBorderDrawQuad()
     14     : color(0),
     15       width(0) {
     16 }
     17 
     18 void DebugBorderDrawQuad::SetNew(const SharedQuadState* shared_quad_state,
     19                                  const gfx::Rect& rect,
     20                                  const gfx::Rect& visible_rect,
     21                                  SkColor color,
     22                                  int width) {
     23   gfx::Rect opaque_rect;
     24   bool needs_blending = SkColorGetA(color) < 255;
     25   DrawQuad::SetAll(shared_quad_state, DrawQuad::DEBUG_BORDER, rect, opaque_rect,
     26                    visible_rect, needs_blending);
     27   this->color = color;
     28   this->width = width;
     29 }
     30 
     31 void DebugBorderDrawQuad::SetAll(const SharedQuadState* shared_quad_state,
     32                                  const gfx::Rect& rect,
     33                                  const gfx::Rect& opaque_rect,
     34                                  const gfx::Rect& visible_rect,
     35                                  bool needs_blending,
     36                                  SkColor color,
     37                                  int width) {
     38   DrawQuad::SetAll(shared_quad_state, DrawQuad::DEBUG_BORDER, rect, opaque_rect,
     39                    visible_rect, needs_blending);
     40   this->color = color;
     41   this->width = width;
     42 }
     43 
     44 void DebugBorderDrawQuad::IterateResources(
     45     const ResourceIteratorCallback& callback) {}
     46 
     47 const DebugBorderDrawQuad* DebugBorderDrawQuad::MaterialCast(
     48     const DrawQuad* quad) {
     49   DCHECK(quad->material == DrawQuad::DEBUG_BORDER);
     50   return static_cast<const DebugBorderDrawQuad*>(quad);
     51 }
     52 
     53 void DebugBorderDrawQuad::ExtendValue(base::debug::TracedValue* value) const {
     54   value->SetInteger("color", color);
     55   value->SetInteger("width", width);
     56 }
     57 
     58 }  // namespace cc
     59