summaryrefslogtreecommitdiffstats
path: root/cc/quads
diff options
context:
space:
mode:
authorvigneshv@chromium.org <vigneshv@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-06-07 21:50:54 +0000
committervigneshv@chromium.org <vigneshv@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-06-07 21:50:54 +0000
commit0402b238e35ca5870036685c05e5b4fd6e870103 (patch)
treed9eb2365dddd50e962e978dadfd0eb8d0750f68e /cc/quads
parent639ac9701e25c6de1696c9b81a4afd9aeb34b57f (diff)
downloadchromium_src-0402b238e35ca5870036685c05e5b4fd6e870103.zip
chromium_src-0402b238e35ca5870036685c05e5b4fd6e870103.tar.gz
chromium_src-0402b238e35ca5870036685c05e5b4fd6e870103.tar.bz2
Adding YUVA support for enabling Alpha Playback
Adding YUVA support for enabling VP8 Alpha Playback. Trying to reland the change that was reverted earlier. Old CL: https://codereview.chromium.org/12157002/ BUG=147355 TBR=jschuh@chromium.org Review URL: https://chromiumcodereview.appspot.com/16580006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@204944 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'cc/quads')
-rw-r--r--cc/quads/draw_quad_unittest.cc23
-rw-r--r--cc/quads/yuv_video_draw_quad.cc13
-rw-r--r--cc/quads/yuv_video_draw_quad.h7
3 files changed, 31 insertions, 12 deletions
diff --git a/cc/quads/draw_quad_unittest.cc b/cc/quads/draw_quad_unittest.cc
index 3eca8e4..0c17413 100644
--- a/cc/quads/draw_quad_unittest.cc
+++ b/cc/quads/draw_quad_unittest.cc
@@ -623,31 +623,36 @@ TEST(DrawQuadTest, CopyYUVVideoDrawQuad) {
ResourceProvider::ResourceId y_plane_resource_id = 45;
ResourceProvider::ResourceId u_plane_resource_id = 532;
ResourceProvider::ResourceId v_plane_resource_id = 4;
+ ResourceProvider::ResourceId a_plane_resource_id = 63;
CREATE_SHARED_STATE();
- CREATE_QUAD_5_NEW(YUVVideoDrawQuad,
+ CREATE_QUAD_6_NEW(YUVVideoDrawQuad,
opaque_rect,
tex_scale,
y_plane_resource_id,
u_plane_resource_id,
- v_plane_resource_id);
+ v_plane_resource_id,
+ a_plane_resource_id);
EXPECT_EQ(DrawQuad::YUV_VIDEO_CONTENT, copy_quad->material);
EXPECT_RECT_EQ(opaque_rect, copy_quad->opaque_rect);
EXPECT_EQ(tex_scale, copy_quad->tex_scale);
EXPECT_EQ(y_plane_resource_id, copy_quad->y_plane_resource_id);
EXPECT_EQ(u_plane_resource_id, copy_quad->u_plane_resource_id);
EXPECT_EQ(v_plane_resource_id, copy_quad->v_plane_resource_id);
+ EXPECT_EQ(a_plane_resource_id, copy_quad->a_plane_resource_id);
- CREATE_QUAD_4_ALL(YUVVideoDrawQuad,
+ CREATE_QUAD_5_ALL(YUVVideoDrawQuad,
tex_scale,
y_plane_resource_id,
u_plane_resource_id,
- v_plane_resource_id);
+ v_plane_resource_id,
+ a_plane_resource_id);
EXPECT_EQ(DrawQuad::YUV_VIDEO_CONTENT, copy_quad->material);
EXPECT_EQ(tex_scale, copy_quad->tex_scale);
EXPECT_EQ(y_plane_resource_id, copy_quad->y_plane_resource_id);
EXPECT_EQ(u_plane_resource_id, copy_quad->u_plane_resource_id);
EXPECT_EQ(v_plane_resource_id, copy_quad->v_plane_resource_id);
+ EXPECT_EQ(a_plane_resource_id, copy_quad->a_plane_resource_id);
}
TEST(DrawQuadTest, CopyPictureDrawQuad) {
@@ -854,22 +859,26 @@ TEST_F(DrawQuadIteratorTest, YUVVideoDrawQuad) {
ResourceProvider::ResourceId y_plane_resource_id = 45;
ResourceProvider::ResourceId u_plane_resource_id = 532;
ResourceProvider::ResourceId v_plane_resource_id = 4;
+ ResourceProvider::ResourceId a_plane_resource_id = 63;
CREATE_SHARED_STATE();
- CREATE_QUAD_5_NEW(YUVVideoDrawQuad,
+ CREATE_QUAD_6_NEW(YUVVideoDrawQuad,
opaque_rect,
tex_scale,
y_plane_resource_id,
u_plane_resource_id,
- v_plane_resource_id);
+ v_plane_resource_id,
+ a_plane_resource_id);
EXPECT_EQ(DrawQuad::YUV_VIDEO_CONTENT, copy_quad->material);
EXPECT_EQ(y_plane_resource_id, quad_new->y_plane_resource_id);
EXPECT_EQ(u_plane_resource_id, quad_new->u_plane_resource_id);
EXPECT_EQ(v_plane_resource_id, quad_new->v_plane_resource_id);
- EXPECT_EQ(3, IterateAndCount(quad_new.get()));
+ EXPECT_EQ(a_plane_resource_id, quad_new->a_plane_resource_id);
+ EXPECT_EQ(4, IterateAndCount(quad_new.get()));
EXPECT_EQ(y_plane_resource_id + 1, quad_new->y_plane_resource_id);
EXPECT_EQ(u_plane_resource_id + 1, quad_new->u_plane_resource_id);
EXPECT_EQ(v_plane_resource_id + 1, quad_new->v_plane_resource_id);
+ EXPECT_EQ(a_plane_resource_id + 1, quad_new->a_plane_resource_id);
}
// Disabled until picture draw quad is supported for ubercomp: crbug.com/231715
diff --git a/cc/quads/yuv_video_draw_quad.cc b/cc/quads/yuv_video_draw_quad.cc
index f63c612..2ac75dc 100644
--- a/cc/quads/yuv_video_draw_quad.cc
+++ b/cc/quads/yuv_video_draw_quad.cc
@@ -11,7 +11,8 @@ namespace cc {
YUVVideoDrawQuad::YUVVideoDrawQuad()
: y_plane_resource_id(0),
u_plane_resource_id(0),
- v_plane_resource_id(0) {}
+ v_plane_resource_id(0),
+ a_plane_resource_id(0) {}
YUVVideoDrawQuad::~YUVVideoDrawQuad() {}
scoped_ptr<YUVVideoDrawQuad> YUVVideoDrawQuad::Create() {
@@ -24,7 +25,8 @@ void YUVVideoDrawQuad::SetNew(const SharedQuadState* shared_quad_state,
gfx::SizeF tex_scale,
unsigned y_plane_resource_id,
unsigned u_plane_resource_id,
- unsigned v_plane_resource_id) {
+ unsigned v_plane_resource_id,
+ unsigned a_plane_resource_id) {
gfx::Rect visible_rect = rect;
bool needs_blending = false;
DrawQuad::SetAll(shared_quad_state, DrawQuad::YUV_VIDEO_CONTENT, rect,
@@ -33,6 +35,7 @@ void YUVVideoDrawQuad::SetNew(const SharedQuadState* shared_quad_state,
this->y_plane_resource_id = y_plane_resource_id;
this->u_plane_resource_id = u_plane_resource_id;
this->v_plane_resource_id = v_plane_resource_id;
+ this->a_plane_resource_id = a_plane_resource_id;
}
void YUVVideoDrawQuad::SetAll(const SharedQuadState* shared_quad_state,
@@ -43,13 +46,15 @@ void YUVVideoDrawQuad::SetAll(const SharedQuadState* shared_quad_state,
gfx::SizeF tex_scale,
unsigned y_plane_resource_id,
unsigned u_plane_resource_id,
- unsigned v_plane_resource_id) {
+ unsigned v_plane_resource_id,
+ unsigned a_plane_resource_id) {
DrawQuad::SetAll(shared_quad_state, DrawQuad::YUV_VIDEO_CONTENT, rect,
opaque_rect, visible_rect, needs_blending);
this->tex_scale = tex_scale;
this->y_plane_resource_id = y_plane_resource_id;
this->u_plane_resource_id = u_plane_resource_id;
this->v_plane_resource_id = v_plane_resource_id;
+ this->a_plane_resource_id = a_plane_resource_id;
}
void YUVVideoDrawQuad::IterateResources(
@@ -57,6 +62,8 @@ void YUVVideoDrawQuad::IterateResources(
y_plane_resource_id = callback.Run(y_plane_resource_id);
u_plane_resource_id = callback.Run(u_plane_resource_id);
v_plane_resource_id = callback.Run(v_plane_resource_id);
+ if (a_plane_resource_id)
+ a_plane_resource_id = callback.Run(a_plane_resource_id);
}
const YUVVideoDrawQuad* YUVVideoDrawQuad::MaterialCast(
diff --git a/cc/quads/yuv_video_draw_quad.h b/cc/quads/yuv_video_draw_quad.h
index 9d54227..34a0612 100644
--- a/cc/quads/yuv_video_draw_quad.h
+++ b/cc/quads/yuv_video_draw_quad.h
@@ -25,7 +25,8 @@ class CC_EXPORT YUVVideoDrawQuad : public DrawQuad {
gfx::SizeF tex_scale,
unsigned y_plane_resource_id,
unsigned u_plane_resource_id,
- unsigned v_plane_resource_id);
+ unsigned v_plane_resource_id,
+ unsigned a_plane_resource_id);
void SetAll(const SharedQuadState* shared_quad_state,
gfx::Rect rect,
@@ -35,12 +36,14 @@ class CC_EXPORT YUVVideoDrawQuad : public DrawQuad {
gfx::SizeF tex_scale,
unsigned y_plane_resource_id,
unsigned u_plane_resource_id,
- unsigned v_plane_resource_id);
+ unsigned v_plane_resource_id,
+ unsigned a_plane_resource_id);
gfx::SizeF tex_scale;
unsigned y_plane_resource_id;
unsigned u_plane_resource_id;
unsigned v_plane_resource_id;
+ unsigned a_plane_resource_id;
virtual void IterateResources(const ResourceIteratorCallback& callback)
OVERRIDE;