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