Index: cc/test/render_pass_test_common.cc |
diff --git a/cc/test/render_pass_test_common.cc b/cc/test/render_pass_test_common.cc |
index 065f59344b536e291811b24f6d96e388054d8e88..fafb84b1b3a1c06e997c69866892c4bfeb15f1ee 100644 |
--- a/cc/test/render_pass_test_common.cc |
+++ b/cc/test/render_pass_test_common.cc |
@@ -19,8 +19,17 @@ |
namespace cc { |
+void TestRenderPass::AppendQuad(scoped_ptr<cc::DrawQuad> quad) { |
+ quad_list.push_back(quad.Pass()); |
+} |
+ |
+void TestRenderPass::AppendSharedQuadState( |
+ scoped_ptr<cc::SharedQuadState> state) { |
+ shared_quad_state_list.push_back(state.Pass()); |
+} |
+ |
void TestRenderPass::AppendOneOfEveryQuadType( |
- cc::ResourceProvider* resourceProvider) { |
+ cc::ResourceProvider* resourceProvider, RenderPass::Id child_pass) { |
gfx::Rect rect(0, 0, 100, 100); |
gfx::Rect opaque_rect(10, 10, 80, 80); |
const float vertex_opacity[] = {1.0f, 1.0f, 1.0f, 1.0f}; |
@@ -32,6 +41,36 @@ void TestRenderPass::AppendOneOfEveryQuadType( |
resourceProvider->allocateForTesting(texture_resource); |
unsigned texture_id = ResourceProvider::ScopedReadLockGL( |
resourceProvider, texture_resource).textureId(); |
+ cc::ResourceProvider::ResourceId resource1 = |
+ resourceProvider->createResource( |
+ gfx::Size(45, 5), |
+ resourceProvider->bestTextureFormat(), |
+ ResourceProvider::TextureUsageAny); |
+ resourceProvider->allocateForTesting(resource1); |
+ cc::ResourceProvider::ResourceId resource2 = |
+ resourceProvider->createResource( |
+ gfx::Size(346, 61), |
+ resourceProvider->bestTextureFormat(), |
+ ResourceProvider::TextureUsageAny); |
+ resourceProvider->allocateForTesting(resource2); |
+ cc::ResourceProvider::ResourceId resource3 = |
+ resourceProvider->createResource( |
+ gfx::Size(12, 134), |
+ resourceProvider->bestTextureFormat(), |
+ ResourceProvider::TextureUsageAny); |
+ resourceProvider->allocateForTesting(resource3); |
+ cc::ResourceProvider::ResourceId resource4 = |
+ resourceProvider->createResource( |
+ gfx::Size(56, 12), |
+ resourceProvider->bestTextureFormat(), |
+ ResourceProvider::TextureUsageAny); |
+ resourceProvider->allocateForTesting(resource4); |
+ cc::ResourceProvider::ResourceId resource5 = |
+ resourceProvider->createResource( |
+ gfx::Size(73, 26), |
+ resourceProvider->bestTextureFormat(), |
+ ResourceProvider::TextureUsageAny); |
+ resourceProvider->allocateForTesting(resource5); |
scoped_ptr<cc::SharedQuadState> shared_state = cc::SharedQuadState::Create(); |
shared_state->SetAll(gfx::Transform(), |
@@ -66,19 +105,35 @@ void TestRenderPass::AppendOneOfEveryQuadType( |
cc::IOSurfaceDrawQuad::FLIPPED); |
AppendQuad(io_surface_quad.PassAs<DrawQuad>()); |
- scoped_ptr<cc::RenderPassDrawQuad> render_pass_quad = |
- cc::RenderPassDrawQuad::Create(); |
- render_pass_quad->SetNew(shared_state.get(), |
- rect, |
- cc::RenderPass::Id(1, 1), |
- false, |
- 0, |
- rect, |
- gfx::RectF(), |
- WebKit::WebFilterOperations(), |
- skia::RefPtr<SkImageFilter>(), |
- WebKit::WebFilterOperations()); |
- AppendQuad(render_pass_quad.PassAs<DrawQuad>()); |
+ if (child_pass.layer_id) { |
+ scoped_ptr<cc::RenderPassDrawQuad> render_pass_quad = |
+ cc::RenderPassDrawQuad::Create(); |
+ render_pass_quad->SetNew(shared_state.get(), |
+ rect, |
+ child_pass, |
+ false, |
+ resource5, |
+ rect, |
+ gfx::RectF(), |
+ WebKit::WebFilterOperations(), |
+ skia::RefPtr<SkImageFilter>(), |
+ WebKit::WebFilterOperations()); |
+ AppendQuad(render_pass_quad.PassAs<DrawQuad>()); |
+ |
+ scoped_ptr<cc::RenderPassDrawQuad> render_pass_replica_quad = |
+ cc::RenderPassDrawQuad::Create(); |
+ render_pass_replica_quad->SetNew(shared_state.get(), |
+ rect, |
+ child_pass, |
+ true, |
+ resource5, |
+ rect, |
+ gfx::RectF(), |
+ WebKit::WebFilterOperations(), |
+ skia::RefPtr<SkImageFilter>(), |
+ WebKit::WebFilterOperations()); |
+ AppendQuad(render_pass_replica_quad.PassAs<DrawQuad>()); |
+ } |
scoped_ptr<cc::SolidColorDrawQuad> solid_color_quad = |
cc::SolidColorDrawQuad::Create(); |
@@ -101,7 +156,7 @@ void TestRenderPass::AppendOneOfEveryQuadType( |
texture_quad->SetNew(shared_state.get(), |
rect, |
opaque_rect, |
- texture_resource, |
+ resource1, |
false, |
rect, |
vertex_opacity, |
@@ -111,16 +166,16 @@ void TestRenderPass::AppendOneOfEveryQuadType( |
scoped_ptr<cc::TileDrawQuad> scaled_tile_quad = |
cc::TileDrawQuad::Create(); |
scaled_tile_quad->SetNew(shared_state.get(), |
- rect, |
- opaque_rect, |
- texture_resource, |
- gfx::RectF(0, 0, 50, 50), |
- gfx::Size(50, 50), |
- false, |
- false, |
- false, |
- false, |
- false); |
+ rect, |
+ opaque_rect, |
+ resource2, |
+ gfx::RectF(0, 0, 50, 50), |
+ gfx::Size(50, 50), |
+ false, |
+ false, |
+ false, |
+ false, |
+ false); |
AppendQuad(scaled_tile_quad.PassAs<DrawQuad>()); |
scoped_ptr<cc::SharedQuadState> transformed_state = shared_state->Copy(); |
@@ -130,16 +185,16 @@ void TestRenderPass::AppendOneOfEveryQuadType( |
scoped_ptr<cc::TileDrawQuad> transformed_tile_quad = |
cc::TileDrawQuad::Create(); |
transformed_tile_quad->SetNew(transformed_state.get(), |
- rect, |
- opaque_rect, |
- texture_resource, |
- gfx::RectF(0, 0, 100, 100), |
- gfx::Size(100, 100), |
- false, |
- false, |
- false, |
- false, |
- false); |
+ rect, |
+ opaque_rect, |
+ resource3, |
+ gfx::RectF(0, 0, 100, 100), |
+ gfx::Size(100, 100), |
+ false, |
+ false, |
+ false, |
+ false, |
+ false); |
AppendQuad(transformed_tile_quad.PassAs<DrawQuad>()); |
scoped_ptr<cc::TileDrawQuad> tile_quad = |
@@ -147,7 +202,7 @@ void TestRenderPass::AppendOneOfEveryQuadType( |
tile_quad->SetNew(shared_state.get(), |
rect, |
opaque_rect, |
- texture_resource, |
+ resource4, |
gfx::RectF(0, 0, 100, 100), |
gfx::Size(100, 100), |
false, |