1 // Copyright 2013 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.
5 #include "cc/quads/content_draw_quad_base.h"
7 #include "base/logging.h"
8 #include "base/values.h"
9 #include "cc/base/math_util.h"
13 ContentDrawQuadBase::ContentDrawQuadBase()
14 : swizzle_contents(false) {
17 ContentDrawQuadBase::~ContentDrawQuadBase() {
20 void ContentDrawQuadBase::SetNew(const SharedQuadState
* shared_quad_state
,
21 DrawQuad::Material material
,
23 gfx::Rect opaque_rect
,
24 const gfx::RectF
& tex_coord_rect
,
25 gfx::Size texture_size
,
26 bool swizzle_contents
) {
27 gfx::Rect visible_rect
= rect
;
28 bool needs_blending
= false;
29 DrawQuad::SetAll(shared_quad_state
, material
, rect
, opaque_rect
,
30 visible_rect
, needs_blending
);
31 this->tex_coord_rect
= tex_coord_rect
;
32 this->texture_size
= texture_size
;
33 this->swizzle_contents
= swizzle_contents
;
36 void ContentDrawQuadBase::SetAll(const SharedQuadState
* shared_quad_state
,
37 DrawQuad::Material material
,
39 gfx::Rect opaque_rect
,
40 gfx::Rect visible_rect
,
42 const gfx::RectF
& tex_coord_rect
,
43 gfx::Size texture_size
,
44 bool swizzle_contents
) {
45 DrawQuad::SetAll(shared_quad_state
, material
, rect
, opaque_rect
,
46 visible_rect
, needs_blending
);
47 this->tex_coord_rect
= tex_coord_rect
;
48 this->texture_size
= texture_size
;
49 this->swizzle_contents
= swizzle_contents
;
52 void ContentDrawQuadBase::ExtendValue(base::DictionaryValue
* value
) const {
53 value
->Set("tex_coord_rect", MathUtil::AsValue(tex_coord_rect
).release());
54 value
->Set("texture_size", MathUtil::AsValue(texture_size
).release());
55 value
->SetBoolean("swizzle_contents", swizzle_contents
);