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.
5 #include "cc/quads/stream_video_draw_quad.h"
7 #include "base/logging.h"
8 #include "base/values.h"
9 #include "cc/base/math_util.h"
13 StreamVideoDrawQuad::StreamVideoDrawQuad() : resource_id(0) {}
15 scoped_ptr
<StreamVideoDrawQuad
> StreamVideoDrawQuad::Create() {
16 return make_scoped_ptr(new StreamVideoDrawQuad
);
19 void StreamVideoDrawQuad::SetNew(const SharedQuadState
* shared_quad_state
,
21 gfx::Rect opaque_rect
,
23 const gfx::Transform
& matrix
) {
24 gfx::Rect visible_rect
= rect
;
25 bool needs_blending
= false;
26 DrawQuad::SetAll(shared_quad_state
, DrawQuad::STREAM_VIDEO_CONTENT
, rect
,
27 opaque_rect
, visible_rect
, needs_blending
);
28 this->resource_id
= resource_id
;
29 this->matrix
= matrix
;
32 void StreamVideoDrawQuad::SetAll(const SharedQuadState
* shared_quad_state
,
34 gfx::Rect opaque_rect
,
35 gfx::Rect visible_rect
,
38 const gfx::Transform
& matrix
) {
39 DrawQuad::SetAll(shared_quad_state
, DrawQuad::STREAM_VIDEO_CONTENT
, rect
,
40 opaque_rect
, visible_rect
, needs_blending
);
41 this->resource_id
= resource_id
;
42 this->matrix
= matrix
;
45 void StreamVideoDrawQuad::IterateResources(
46 const ResourceIteratorCallback
& callback
) {
47 resource_id
= callback
.Run(resource_id
);
50 const StreamVideoDrawQuad
* StreamVideoDrawQuad::MaterialCast(
51 const DrawQuad
* quad
) {
52 DCHECK(quad
->material
== DrawQuad::STREAM_VIDEO_CONTENT
);
53 return static_cast<const StreamVideoDrawQuad
*>(quad
);
56 void StreamVideoDrawQuad::ExtendValue(base::DictionaryValue
* value
) const {
57 value
->SetInteger("resource_id", resource_id
);
58 value
->Set("matrix", MathUtil::AsValue(matrix
).release());