summaryrefslogtreecommitdiffstats
path: root/content/common/cc_messages_unittest.cc
diff options
context:
space:
mode:
authorjamesr@chromium.org <jamesr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-01-17 06:32:36 +0000
committerjamesr@chromium.org <jamesr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-01-17 06:32:36 +0000
commit78d30120a3aebc0a8a7595bc0cd80b5d21cc1d51 (patch)
treef20a4a0947681a315f887860f5a6e6291ce9821c /content/common/cc_messages_unittest.cc
parent5c73592c918b4ef0c6c700f0ad2f1421890ad7c2 (diff)
downloadchromium_src-78d30120a3aebc0a8a7595bc0cd80b5d21cc1d51.zip
chromium_src-78d30120a3aebc0a8a7595bc0cd80b5d21cc1d51.tar.gz
chromium_src-78d30120a3aebc0a8a7595bc0cd80b5d21cc1d51.tar.bz2
Add cc:DrawQuad type for surfaces
This quad type just carries a surface ID to be resolved later. A quad of this type will always be replaced by the quads it represents (if any) before being passed to a cc:DirectRenderer for drawing. BUG=334090 Review URL: https://codereview.chromium.org/127373002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@245438 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/common/cc_messages_unittest.cc')
-rw-r--r--content/common/cc_messages_unittest.cc29
1 files changed, 27 insertions, 2 deletions
diff --git a/content/common/cc_messages_unittest.cc b/content/common/cc_messages_unittest.cc
index ccd41fc..eaa5a58 100644
--- a/content/common/cc_messages_unittest.cc
+++ b/content/common/cc_messages_unittest.cc
@@ -27,6 +27,7 @@ using cc::RenderPassDrawQuad;
using cc::ResourceProvider;
using cc::SharedQuadState;
using cc::SolidColorDrawQuad;
+using cc::SurfaceDrawQuad;
using cc::TextureDrawQuad;
using cc::TileDrawQuad;
using cc::TransferableResource;
@@ -105,6 +106,10 @@ class CCMessagesTest : public testing::Test {
Compare(StreamVideoDrawQuad::MaterialCast(a),
StreamVideoDrawQuad::MaterialCast(b));
break;
+ case DrawQuad::SURFACE_CONTENT:
+ Compare(SurfaceDrawQuad::MaterialCast(a),
+ SurfaceDrawQuad::MaterialCast(b));
+ break;
case DrawQuad::YUV_VIDEO_CONTENT:
Compare(YUVVideoDrawQuad::MaterialCast(a),
YUVVideoDrawQuad::MaterialCast(b));
@@ -159,6 +164,10 @@ class CCMessagesTest : public testing::Test {
EXPECT_EQ(a->matrix, b->matrix);
}
+ void Compare(const SurfaceDrawQuad* a, const SurfaceDrawQuad* b) {
+ EXPECT_EQ(a->surface_id, b->surface_id);
+ }
+
void Compare(const TextureDrawQuad* a, const TextureDrawQuad* b) {
EXPECT_EQ(a->resource_id, b->resource_id);
EXPECT_EQ(a->premultiplied_alpha, b->premultiplied_alpha);
@@ -362,6 +371,17 @@ TEST_F(CCMessagesTest, AllQuads) {
scoped_ptr<DrawQuad> streamvideo_cmp = streamvideo_in->Copy(
streamvideo_in->shared_quad_state);
+ int arbitrary_surface_id = 3;
+ scoped_ptr<SurfaceDrawQuad> surface_in = SurfaceDrawQuad::Create();
+ surface_in->SetAll(shared_state3_in.get(),
+ arbitrary_rect2,
+ arbitrary_rect2_inside_rect2,
+ arbitrary_rect1_inside_rect2,
+ arbitrary_bool1,
+ arbitrary_surface_id);
+ scoped_ptr<DrawQuad> surface_cmp = surface_in->Copy(
+ surface_in->shared_quad_state);
+
scoped_ptr<TextureDrawQuad> texture_in = TextureDrawQuad::Create();
texture_in->SetAll(shared_state3_in.get(),
arbitrary_rect2,
@@ -422,6 +442,7 @@ TEST_F(CCMessagesTest, AllQuads) {
pass_in->shared_quad_state_list.push_back(shared_state3_in.Pass());
pass_in->quad_list.push_back(solidcolor_in.PassAs<DrawQuad>());
pass_in->quad_list.push_back(streamvideo_in.PassAs<DrawQuad>());
+ pass_in->quad_list.push_back(surface_in.PassAs<DrawQuad>());
pass_in->quad_list.push_back(texture_in.PassAs<DrawQuad>());
pass_in->quad_list.push_back(tile_in.PassAs<DrawQuad>());
pass_in->quad_list.push_back(yuvvideo_in.PassAs<DrawQuad>());
@@ -442,6 +463,7 @@ TEST_F(CCMessagesTest, AllQuads) {
pass_cmp->shared_quad_state_list.push_back(shared_state3_cmp.Pass());
pass_cmp->quad_list.push_back(solidcolor_cmp.PassAs<DrawQuad>());
pass_cmp->quad_list.push_back(streamvideo_cmp.PassAs<DrawQuad>());
+ pass_cmp->quad_list.push_back(surface_cmp.PassAs<DrawQuad>());
pass_cmp->quad_list.push_back(texture_cmp.PassAs<DrawQuad>());
pass_cmp->quad_list.push_back(tile_cmp.PassAs<DrawQuad>());
pass_cmp->quad_list.push_back(yuvvideo_cmp.PassAs<DrawQuad>());
@@ -449,7 +471,7 @@ TEST_F(CCMessagesTest, AllQuads) {
// Make sure the in and cmp RenderPasses match.
Compare(pass_cmp.get(), pass_in.get());
ASSERT_EQ(3u, pass_in->shared_quad_state_list.size());
- ASSERT_EQ(9u, pass_in->quad_list.size());
+ ASSERT_EQ(10u, pass_in->quad_list.size());
for (size_t i = 0; i < 3; ++i) {
Compare(pass_cmp->shared_quad_state_list[i],
pass_in->shared_quad_state_list[i]);
@@ -481,7 +503,7 @@ TEST_F(CCMessagesTest, AllQuads) {
frame_out.render_pass_list.begin());
Compare(pass_cmp.get(), pass_out.get());
ASSERT_EQ(3u, pass_out->shared_quad_state_list.size());
- ASSERT_EQ(9u, pass_out->quad_list.size());
+ ASSERT_EQ(10u, pass_out->quad_list.size());
for (size_t i = 0; i < 3; ++i) {
Compare(pass_cmp->shared_quad_state_list[i],
pass_out->shared_quad_state_list[i]);
@@ -697,6 +719,9 @@ TEST_F(CCMessagesTest, LargestQuadType) {
case cc::DrawQuad::SOLID_COLOR:
largest = std::max(largest, sizeof(cc::SolidColorDrawQuad));
break;
+ case cc::DrawQuad::SURFACE_CONTENT:
+ largest = std::max(largest, sizeof(cc::SurfaceDrawQuad));
+ break;
case cc::DrawQuad::TILED_CONTENT:
largest = std::max(largest, sizeof(cc::TileDrawQuad));
break;