Torne (Richard Coles) | 2a99a7e | 2013-03-28 15:31:22 +0000 | [diff] [blame] | 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/stream_video_draw_quad.h" |
| 6 | |
| 7 | #include "base/logging.h" |
Ben Murdoch | ba5b9a6 | 2013-08-12 14:20:17 +0100 | [diff] [blame] | 8 | #include "base/values.h" |
| 9 | #include "cc/base/math_util.h" |
Torne (Richard Coles) | 2a99a7e | 2013-03-28 15:31:22 +0000 | [diff] [blame] | 10 | |
| 11 | namespace cc { |
| 12 | |
Torne (Richard Coles) | c2e0dbd | 2013-05-09 18:35:53 +0100 | [diff] [blame] | 13 | StreamVideoDrawQuad::StreamVideoDrawQuad() : resource_id(0) {} |
Torne (Richard Coles) | 2a99a7e | 2013-03-28 15:31:22 +0000 | [diff] [blame] | 14 | |
| 15 | scoped_ptr<StreamVideoDrawQuad> StreamVideoDrawQuad::Create() { |
| 16 | return make_scoped_ptr(new StreamVideoDrawQuad); |
| 17 | } |
| 18 | |
| 19 | void StreamVideoDrawQuad::SetNew(const SharedQuadState* shared_quad_state, |
| 20 | gfx::Rect rect, |
| 21 | gfx::Rect opaque_rect, |
Torne (Richard Coles) | c2e0dbd | 2013-05-09 18:35:53 +0100 | [diff] [blame] | 22 | unsigned resource_id, |
Torne (Richard Coles) | 2a99a7e | 2013-03-28 15:31:22 +0000 | [diff] [blame] | 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); |
Torne (Richard Coles) | c2e0dbd | 2013-05-09 18:35:53 +0100 | [diff] [blame] | 28 | this->resource_id = resource_id; |
Torne (Richard Coles) | 2a99a7e | 2013-03-28 15:31:22 +0000 | [diff] [blame] | 29 | this->matrix = matrix; |
| 30 | } |
| 31 | |
| 32 | void StreamVideoDrawQuad::SetAll(const SharedQuadState* shared_quad_state, |
| 33 | gfx::Rect rect, |
| 34 | gfx::Rect opaque_rect, |
| 35 | gfx::Rect visible_rect, |
| 36 | bool needs_blending, |
Torne (Richard Coles) | c2e0dbd | 2013-05-09 18:35:53 +0100 | [diff] [blame] | 37 | unsigned resource_id, |
Torne (Richard Coles) | 2a99a7e | 2013-03-28 15:31:22 +0000 | [diff] [blame] | 38 | const gfx::Transform& matrix) { |
| 39 | DrawQuad::SetAll(shared_quad_state, DrawQuad::STREAM_VIDEO_CONTENT, rect, |
| 40 | opaque_rect, visible_rect, needs_blending); |
Torne (Richard Coles) | c2e0dbd | 2013-05-09 18:35:53 +0100 | [diff] [blame] | 41 | this->resource_id = resource_id; |
Torne (Richard Coles) | 2a99a7e | 2013-03-28 15:31:22 +0000 | [diff] [blame] | 42 | this->matrix = matrix; |
| 43 | } |
| 44 | |
| 45 | void StreamVideoDrawQuad::IterateResources( |
| 46 | const ResourceIteratorCallback& callback) { |
Torne (Richard Coles) | c2e0dbd | 2013-05-09 18:35:53 +0100 | [diff] [blame] | 47 | resource_id = callback.Run(resource_id); |
Torne (Richard Coles) | 2a99a7e | 2013-03-28 15:31:22 +0000 | [diff] [blame] | 48 | } |
| 49 | |
| 50 | const StreamVideoDrawQuad* StreamVideoDrawQuad::MaterialCast( |
| 51 | const DrawQuad* quad) { |
| 52 | DCHECK(quad->material == DrawQuad::STREAM_VIDEO_CONTENT); |
| 53 | return static_cast<const StreamVideoDrawQuad*>(quad); |
| 54 | } |
| 55 | |
Ben Murdoch | ba5b9a6 | 2013-08-12 14:20:17 +0100 | [diff] [blame] | 56 | void StreamVideoDrawQuad::ExtendValue(base::DictionaryValue* value) const { |
| 57 | value->SetInteger("resource_id", resource_id); |
| 58 | value->Set("matrix", MathUtil::AsValue(matrix).release()); |
| 59 | } |
| 60 | |
Torne (Richard Coles) | 2a99a7e | 2013-03-28 15:31:22 +0000 | [diff] [blame] | 61 | } // namespace cc |