diff options
author | vigneshv@chromium.org <vigneshv@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-06-07 21:50:54 +0000 |
---|---|---|
committer | vigneshv@chromium.org <vigneshv@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-06-07 21:50:54 +0000 |
commit | 0402b238e35ca5870036685c05e5b4fd6e870103 (patch) | |
tree | d9eb2365dddd50e962e978dadfd0eb8d0750f68e /cc/quads | |
parent | 639ac9701e25c6de1696c9b81a4afd9aeb34b57f (diff) | |
download | chromium_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.cc | 23 | ||||
-rw-r--r-- | cc/quads/yuv_video_draw_quad.cc | 13 | ||||
-rw-r--r-- | cc/quads/yuv_video_draw_quad.h | 7 |
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; |