render_pass_test_common.cc revision 2a99a7e74a7f215066514fe81d2bfa6639d9eddd
1a5728872c7702ddd09537c95bc3cbd20e1f2fb09Daniel Dunbar// Copyright 2012 The Chromium Authors. All rights reserved. 2c83ed049af2a2ed7ab94b8206fc0fec4da7e26dbDouglas Gregor// Use of this source code is governed by a BSD-style license that can be 3b5a57a69e5fdac6dd9a92be717e279486c4a0128Sebastian Redl// found in the LICENSE file. 4b5a57a69e5fdac6dd9a92be717e279486c4a0128Sebastian Redl 54c5d320a7581f4b80b151630c91cea5727fa9923Sebastian Redl#include "cc/test/render_pass_test_common.h" 64c5d320a7581f4b80b151630c91cea5727fa9923Sebastian Redl 74c5d320a7581f4b80b151630c91cea5727fa9923Sebastian Redl#include "cc/quads/checkerboard_draw_quad.h" 83cb069213c8502dbb7a67860d40122d869ed8fd6Sebastian Redl#include "cc/quads/debug_border_draw_quad.h" 93cb069213c8502dbb7a67860d40122d869ed8fd6Sebastian Redl#include "cc/quads/io_surface_draw_quad.h" 104c5d320a7581f4b80b151630c91cea5727fa9923Sebastian Redl#include "cc/quads/render_pass_draw_quad.h" 117c2342dd4c9947806842e5aca3d2bb2e542853c9John McCall#include "cc/quads/shared_quad_state.h" 12636a7c42d42800f69caadcdea433312fd642a4b3Sebastian Redl#include "cc/quads/solid_color_draw_quad.h" 13636a7c42d42800f69caadcdea433312fd642a4b3Sebastian Redl#include "cc/quads/stream_video_draw_quad.h" 14636a7c42d42800f69caadcdea433312fd642a4b3Sebastian Redl#include "cc/quads/texture_draw_quad.h" 159afe1308ed19dffc281dca5cfbe521826754980fSebastian Redl#include "cc/quads/tile_draw_quad.h" 16636a7c42d42800f69caadcdea433312fd642a4b3Sebastian Redl#include "cc/quads/yuv_video_draw_quad.h" 177f6623914e779e41eb3d85f9a2dc3affea5de1e8Sebastian Redl#include "cc/resources/resource_provider.h" 187f6623914e779e41eb3d85f9a2dc3affea5de1e8Sebastian Redl#include "ui/gfx/transform.h" 197f6623914e779e41eb3d85f9a2dc3affea5de1e8Sebastian Redl 204c5d320a7581f4b80b151630c91cea5727fa9923Sebastian Redlnamespace cc { 216e790ab61bf4835944971955e84279112833ef0cDouglas Gregor 226e790ab61bf4835944971955e84279112833ef0cDouglas Gregorvoid TestRenderPass::AppendQuad(scoped_ptr<cc::DrawQuad> quad) { 233cb069213c8502dbb7a67860d40122d869ed8fd6Sebastian Redl quad_list.push_back(quad.Pass()); 243cb069213c8502dbb7a67860d40122d869ed8fd6Sebastian Redl} 25fc27d268cb34cbb8d186c6ad7cc043d41581ce71Anders Carlsson 26b5a57a69e5fdac6dd9a92be717e279486c4a0128Sebastian Redlvoid TestRenderPass::AppendSharedQuadState( 273caf04ea0c01ff6822209c4621c3fa64a48029a4Douglas Gregor scoped_ptr<cc::SharedQuadState> state) { 283caf04ea0c01ff6822209c4621c3fa64a48029a4Douglas Gregor shared_quad_state_list.push_back(state.Pass()); 294c5d320a7581f4b80b151630c91cea5727fa9923Sebastian Redl} 304c5d320a7581f4b80b151630c91cea5727fa9923Sebastian Redl 314c5d320a7581f4b80b151630c91cea5727fa9923Sebastian Redlvoid TestRenderPass::AppendOneOfEveryQuadType( 324c5d320a7581f4b80b151630c91cea5727fa9923Sebastian Redl cc::ResourceProvider* resource_provider, RenderPass::Id child_pass) { 334c5d320a7581f4b80b151630c91cea5727fa9923Sebastian Redl gfx::Rect rect(0, 0, 100, 100); 344c5d320a7581f4b80b151630c91cea5727fa9923Sebastian Redl gfx::Rect opaque_rect(10, 10, 80, 80); 354c5d320a7581f4b80b151630c91cea5727fa9923Sebastian Redl const float vertex_opacity[] = {1.0f, 1.0f, 1.0f, 1.0f}; 364c5d320a7581f4b80b151630c91cea5727fa9923Sebastian Redl cc::ResourceProvider::ResourceId texture_resource = 37cee63fbf0e64ac526582312bf8cf33263fc5c16eSebastian Redl resource_provider->CreateResource( 384c5d320a7581f4b80b151630c91cea5727fa9923Sebastian Redl gfx::Size(20, 12), 394c5d320a7581f4b80b151630c91cea5727fa9923Sebastian Redl resource_provider->best_texture_format(), 404c5d320a7581f4b80b151630c91cea5727fa9923Sebastian Redl ResourceProvider::TextureUsageAny); 41fb4ccd7152723ac6190eb379250cfe7516cfd1b8Sebastian Redl resource_provider->AllocateForTesting(texture_resource); 42636a7c42d42800f69caadcdea433312fd642a4b3Sebastian Redl unsigned texture_id = ResourceProvider::ScopedReadLockGL( 435d64e5b6bc03462e8b7d0cd804565829afb1b508Douglas Gregor resource_provider, texture_resource).texture_id(); 44fc27d268cb34cbb8d186c6ad7cc043d41581ce71Anders Carlsson cc::ResourceProvider::ResourceId resource1 = 45fc27d268cb34cbb8d186c6ad7cc043d41581ce71Anders Carlsson resource_provider->CreateResource( 46ac18b2e3af8d0c5304f74e362a1d4207363e4c94Anders Carlsson gfx::Size(45, 5), 47ac18b2e3af8d0c5304f74e362a1d4207363e4c94Anders Carlsson resource_provider->best_texture_format(), 483caf04ea0c01ff6822209c4621c3fa64a48029a4Douglas Gregor ResourceProvider::TextureUsageAny); 493caf04ea0c01ff6822209c4621c3fa64a48029a4Douglas Gregor resource_provider->AllocateForTesting(resource1); 503caf04ea0c01ff6822209c4621c3fa64a48029a4Douglas Gregor cc::ResourceProvider::ResourceId resource2 = 513caf04ea0c01ff6822209c4621c3fa64a48029a4Douglas Gregor resource_provider->CreateResource( 523caf04ea0c01ff6822209c4621c3fa64a48029a4Douglas Gregor gfx::Size(346, 61), 533caf04ea0c01ff6822209c4621c3fa64a48029a4Douglas Gregor resource_provider->best_texture_format(), 543caf04ea0c01ff6822209c4621c3fa64a48029a4Douglas Gregor ResourceProvider::TextureUsageAny); 553caf04ea0c01ff6822209c4621c3fa64a48029a4Douglas Gregor resource_provider->AllocateForTesting(resource2); 564c5d320a7581f4b80b151630c91cea5727fa9923Sebastian Redl cc::ResourceProvider::ResourceId resource3 = 574c5d320a7581f4b80b151630c91cea5727fa9923Sebastian Redl resource_provider->CreateResource( 58e7450f5dbd5bed63b8ef9db86350a8fc3db011e8Douglas Gregor gfx::Size(12, 134), 59e7450f5dbd5bed63b8ef9db86350a8fc3db011e8Douglas Gregor resource_provider->best_texture_format(), 60e7450f5dbd5bed63b8ef9db86350a8fc3db011e8Douglas Gregor ResourceProvider::TextureUsageAny); 61e7450f5dbd5bed63b8ef9db86350a8fc3db011e8Douglas Gregor resource_provider->AllocateForTesting(resource3); 62c83ed049af2a2ed7ab94b8206fc0fec4da7e26dbDouglas Gregor cc::ResourceProvider::ResourceId resource4 = 634c5d320a7581f4b80b151630c91cea5727fa9923Sebastian Redl resource_provider->CreateResource( 644c5d320a7581f4b80b151630c91cea5727fa9923Sebastian Redl gfx::Size(56, 12), 654c5d320a7581f4b80b151630c91cea5727fa9923Sebastian Redl resource_provider->best_texture_format(), 664c5d320a7581f4b80b151630c91cea5727fa9923Sebastian Redl ResourceProvider::TextureUsageAny); 674c5d320a7581f4b80b151630c91cea5727fa9923Sebastian Redl resource_provider->AllocateForTesting(resource4); 68cee63fbf0e64ac526582312bf8cf33263fc5c16eSebastian Redl cc::ResourceProvider::ResourceId resource5 = 694c5d320a7581f4b80b151630c91cea5727fa9923Sebastian Redl resource_provider->CreateResource( 704c5d320a7581f4b80b151630c91cea5727fa9923Sebastian Redl gfx::Size(73, 26), 714bd40318cbea15310a37343db46de96c4fcc15e6Douglas Gregor resource_provider->best_texture_format(), 727c2342dd4c9947806842e5aca3d2bb2e542853c9John McCall ResourceProvider::TextureUsageAny); 7399a2e600f9e2e51d3ce10fb6f27191677ac65b2aDouglas Gregor resource_provider->AllocateForTesting(resource5); 744c5d320a7581f4b80b151630c91cea5727fa9923Sebastian Redl 757c2342dd4c9947806842e5aca3d2bb2e542853c9John McCall scoped_ptr<cc::SharedQuadState> shared_state = cc::SharedQuadState::Create(); 7658f9e13e87e57236fee4b914eea9be6f92a1c345Chris Lattner shared_state->SetAll(gfx::Transform(), 77a729bbb739ca97a8dc52b6b0495725590a0367dcAnders Carlsson rect.size(), 78cee63fbf0e64ac526582312bf8cf33263fc5c16eSebastian Redl rect, 79cee63fbf0e64ac526582312bf8cf33263fc5c16eSebastian Redl rect, 807c2342dd4c9947806842e5aca3d2bb2e542853c9John McCall false, 81fb4ccd7152723ac6190eb379250cfe7516cfd1b8Sebastian Redl 1); 82b5a57a69e5fdac6dd9a92be717e279486c4a0128Sebastian Redl 837f6623914e779e41eb3d85f9a2dc3affea5de1e8Sebastian Redl scoped_ptr<cc::CheckerboardDrawQuad> checkerboard_quad = 84636a7c42d42800f69caadcdea433312fd642a4b3Sebastian Redl cc::CheckerboardDrawQuad::Create(); 85636a7c42d42800f69caadcdea433312fd642a4b3Sebastian Redl checkerboard_quad->SetNew(shared_state.get(), 869afe1308ed19dffc281dca5cfbe521826754980fSebastian Redl rect, 879afe1308ed19dffc281dca5cfbe521826754980fSebastian Redl SK_ColorRED); 8800e68e2cc5ce37cb95beb801cae73c0d1e9dda37Sebastian Redl AppendQuad(checkerboard_quad.PassAs<DrawQuad>()); 8900e68e2cc5ce37cb95beb801cae73c0d1e9dda37Sebastian Redl 904c5d320a7581f4b80b151630c91cea5727fa9923Sebastian Redl scoped_ptr<cc::DebugBorderDrawQuad> debug_border_quad = 914c5d320a7581f4b80b151630c91cea5727fa9923Sebastian Redl cc::DebugBorderDrawQuad::Create(); 924c5d320a7581f4b80b151630c91cea5727fa9923Sebastian Redl debug_border_quad->SetNew(shared_state.get(), 934c5d320a7581f4b80b151630c91cea5727fa9923Sebastian Redl rect, 944c5d320a7581f4b80b151630c91cea5727fa9923Sebastian Redl SK_ColorRED, 954c5d320a7581f4b80b151630c91cea5727fa9923Sebastian Redl 1); 964c5d320a7581f4b80b151630c91cea5727fa9923Sebastian Redl AppendQuad(debug_border_quad.PassAs<DrawQuad>()); 974c5d320a7581f4b80b151630c91cea5727fa9923Sebastian Redl 98fb4ccd7152723ac6190eb379250cfe7516cfd1b8Sebastian Redl scoped_ptr<cc::IOSurfaceDrawQuad> io_surface_quad = 994c5d320a7581f4b80b151630c91cea5727fa9923Sebastian Redl cc::IOSurfaceDrawQuad::Create(); 1004c5d320a7581f4b80b151630c91cea5727fa9923Sebastian Redl io_surface_quad->SetNew(shared_state.get(), 1014c5d320a7581f4b80b151630c91cea5727fa9923Sebastian Redl rect, 1024c5d320a7581f4b80b151630c91cea5727fa9923Sebastian Redl opaque_rect, 1034c5d320a7581f4b80b151630c91cea5727fa9923Sebastian Redl gfx::Size(50, 50), 1044c5d320a7581f4b80b151630c91cea5727fa9923Sebastian Redl texture_id, 10528eb7e992b9a266abb300da25b6d3c1557cec361Chris Lattner cc::IOSurfaceDrawQuad::FLIPPED); 10694a615718d06704816c6e31a811f823c05e39f52Douglas Gregor AppendQuad(io_surface_quad.PassAs<DrawQuad>()); 1074c5d320a7581f4b80b151630c91cea5727fa9923Sebastian Redl 108fb4ccd7152723ac6190eb379250cfe7516cfd1b8Sebastian Redl if (child_pass.layer_id) { 1094c5d320a7581f4b80b151630c91cea5727fa9923Sebastian Redl scoped_ptr<cc::RenderPassDrawQuad> render_pass_quad = 1109cd9f3f55d22f34f1d69db8bfc2735c4e1e082c3Douglas Gregor cc::RenderPassDrawQuad::Create(); 1119cd9f3f55d22f34f1d69db8bfc2735c4e1e082c3Douglas Gregor render_pass_quad->SetNew(shared_state.get(), 1129cd9f3f55d22f34f1d69db8bfc2735c4e1e082c3Douglas Gregor rect, 1139cd9f3f55d22f34f1d69db8bfc2735c4e1e082c3Douglas Gregor child_pass, 1149cd9f3f55d22f34f1d69db8bfc2735c4e1e082c3Douglas Gregor false, 1159cd9f3f55d22f34f1d69db8bfc2735c4e1e082c3Douglas Gregor resource5, 1169cd9f3f55d22f34f1d69db8bfc2735c4e1e082c3Douglas Gregor rect, 1179cd9f3f55d22f34f1d69db8bfc2735c4e1e082c3Douglas Gregor gfx::RectF(), 1189cd9f3f55d22f34f1d69db8bfc2735c4e1e082c3Douglas Gregor WebKit::WebFilterOperations(), 119f652793d4d32cc71b5ee2167069cbd363baa75deFariborz Jahanian skia::RefPtr<SkImageFilter>(), 120f652793d4d32cc71b5ee2167069cbd363baa75deFariborz Jahanian WebKit::WebFilterOperations()); 1219cd9f3f55d22f34f1d69db8bfc2735c4e1e082c3Douglas Gregor AppendQuad(render_pass_quad.PassAs<DrawQuad>()); 1229cd9f3f55d22f34f1d69db8bfc2735c4e1e082c3Douglas Gregor 1239cd9f3f55d22f34f1d69db8bfc2735c4e1e082c3Douglas Gregor scoped_ptr<cc::RenderPassDrawQuad> render_pass_replica_quad = 1249cd9f3f55d22f34f1d69db8bfc2735c4e1e082c3Douglas Gregor cc::RenderPassDrawQuad::Create(); 1259cd9f3f55d22f34f1d69db8bfc2735c4e1e082c3Douglas Gregor render_pass_replica_quad->SetNew(shared_state.get(), 1267c2342dd4c9947806842e5aca3d2bb2e542853c9John McCall rect, 127f652793d4d32cc71b5ee2167069cbd363baa75deFariborz Jahanian child_pass, 1289091656e423f2354e53b2b3baa95b3eb5510badcDouglas Gregor true, 1299091656e423f2354e53b2b3baa95b3eb5510badcDouglas Gregor resource5, 1309091656e423f2354e53b2b3baa95b3eb5510badcDouglas Gregor rect, 1319091656e423f2354e53b2b3baa95b3eb5510badcDouglas Gregor gfx::RectF(), 1325e6214b4c7b326a83fbcf55250a95b46bdc0bb8fEli Friedman WebKit::WebFilterOperations(), 1339091656e423f2354e53b2b3baa95b3eb5510badcDouglas Gregor skia::RefPtr<SkImageFilter>(), 1349091656e423f2354e53b2b3baa95b3eb5510badcDouglas Gregor WebKit::WebFilterOperations()); 1359091656e423f2354e53b2b3baa95b3eb5510badcDouglas Gregor AppendQuad(render_pass_replica_quad.PassAs<DrawQuad>()); 1369091656e423f2354e53b2b3baa95b3eb5510badcDouglas Gregor } 1379091656e423f2354e53b2b3baa95b3eb5510badcDouglas Gregor 1385e6214b4c7b326a83fbcf55250a95b46bdc0bb8fEli Friedman scoped_ptr<cc::SolidColorDrawQuad> solid_color_quad = 1399091656e423f2354e53b2b3baa95b3eb5510badcDouglas Gregor cc::SolidColorDrawQuad::Create(); 1409091656e423f2354e53b2b3baa95b3eb5510badcDouglas Gregor solid_color_quad->SetNew(shared_state.get(), 1419091656e423f2354e53b2b3baa95b3eb5510badcDouglas Gregor rect, 1429091656e423f2354e53b2b3baa95b3eb5510badcDouglas Gregor SK_ColorRED); 1439091656e423f2354e53b2b3baa95b3eb5510badcDouglas Gregor AppendQuad(solid_color_quad.PassAs<DrawQuad>()); 1449091656e423f2354e53b2b3baa95b3eb5510badcDouglas Gregor 1451070c9f7acc889336be6f80c70dc1b32622cc83dDouglas Gregor scoped_ptr<cc::StreamVideoDrawQuad> stream_video_quad = 1465d64e5b6bc03462e8b7d0cd804565829afb1b508Douglas Gregor cc::StreamVideoDrawQuad::Create(); 1471070c9f7acc889336be6f80c70dc1b32622cc83dDouglas Gregor stream_video_quad->SetNew(shared_state.get(), 1481070c9f7acc889336be6f80c70dc1b32622cc83dDouglas Gregor rect, 1491070c9f7acc889336be6f80c70dc1b32622cc83dDouglas Gregor opaque_rect, 150b03bfa55d03ca38922ffedac19225d0832e8d911Fariborz Jahanian texture_id, 151b03bfa55d03ca38922ffedac19225d0832e8d911Fariborz Jahanian gfx::Transform()); 152b03bfa55d03ca38922ffedac19225d0832e8d911Fariborz Jahanian AppendQuad(stream_video_quad.PassAs<DrawQuad>()); 153156c78e4ef14e5f7ba251554ea8f2dbec573fef3Anders Carlsson 154156c78e4ef14e5f7ba251554ea8f2dbec573fef3Anders Carlsson scoped_ptr<cc::TextureDrawQuad> texture_quad = 155b03bfa55d03ca38922ffedac19225d0832e8d911Fariborz Jahanian cc::TextureDrawQuad::Create(); 156b03bfa55d03ca38922ffedac19225d0832e8d911Fariborz Jahanian texture_quad->SetNew(shared_state.get(), 157b03bfa55d03ca38922ffedac19225d0832e8d911Fariborz Jahanian rect, 158b03bfa55d03ca38922ffedac19225d0832e8d911Fariborz Jahanian opaque_rect, 159b03bfa55d03ca38922ffedac19225d0832e8d911Fariborz Jahanian resource1, 160b03bfa55d03ca38922ffedac19225d0832e8d911Fariborz Jahanian false, 161b03bfa55d03ca38922ffedac19225d0832e8d911Fariborz Jahanian gfx::PointF(0.f, 0.f), 162b03bfa55d03ca38922ffedac19225d0832e8d911Fariborz Jahanian gfx::PointF(1.f, 1.f), 163b03bfa55d03ca38922ffedac19225d0832e8d911Fariborz Jahanian vertex_opacity, 164b03bfa55d03ca38922ffedac19225d0832e8d911Fariborz Jahanian false); 165b03bfa55d03ca38922ffedac19225d0832e8d911Fariborz Jahanian AppendQuad(texture_quad.PassAs<DrawQuad>()); 166b03bfa55d03ca38922ffedac19225d0832e8d911Fariborz Jahanian 167b03bfa55d03ca38922ffedac19225d0832e8d911Fariborz Jahanian scoped_ptr<cc::TileDrawQuad> scaled_tile_quad = 168b03bfa55d03ca38922ffedac19225d0832e8d911Fariborz Jahanian cc::TileDrawQuad::Create(); 169b03bfa55d03ca38922ffedac19225d0832e8d911Fariborz Jahanian scaled_tile_quad->SetNew(shared_state.get(), 170b03bfa55d03ca38922ffedac19225d0832e8d911Fariborz Jahanian rect, 1712fa98001f832836e3f652c211a9d2f80501d659aDouglas Gregor opaque_rect, 172b03bfa55d03ca38922ffedac19225d0832e8d911Fariborz Jahanian resource2, 173b03bfa55d03ca38922ffedac19225d0832e8d911Fariborz Jahanian gfx::RectF(0, 0, 50, 50), 1742fa98001f832836e3f652c211a9d2f80501d659aDouglas Gregor gfx::Size(50, 50), 175b03bfa55d03ca38922ffedac19225d0832e8d911Fariborz Jahanian false); 1760ba63ea5be2c90ef62d1350ea4a0a0c415a785f1Anders Carlsson AppendQuad(scaled_tile_quad.PassAs<DrawQuad>()); 1770ba63ea5be2c90ef62d1350ea4a0a0c415a785f1Anders Carlsson 1780ba63ea5be2c90ef62d1350ea4a0a0c415a785f1Anders Carlsson scoped_ptr<cc::SharedQuadState> transformed_state = shared_state->Copy(); 1790ba63ea5be2c90ef62d1350ea4a0a0c415a785f1Anders Carlsson gfx::Transform rotation; 1800ba63ea5be2c90ef62d1350ea4a0a0c415a785f1Anders Carlsson rotation.Rotate(45); 1810ba63ea5be2c90ef62d1350ea4a0a0c415a785f1Anders Carlsson transformed_state->content_to_target_transform = 1820ba63ea5be2c90ef62d1350ea4a0a0c415a785f1Anders Carlsson transformed_state->content_to_target_transform * rotation; 1830ba63ea5be2c90ef62d1350ea4a0a0c415a785f1Anders Carlsson scoped_ptr<cc::TileDrawQuad> transformed_tile_quad = 1840ba63ea5be2c90ef62d1350ea4a0a0c415a785f1Anders Carlsson cc::TileDrawQuad::Create(); 1850ba63ea5be2c90ef62d1350ea4a0a0c415a785f1Anders Carlsson transformed_tile_quad->SetNew(transformed_state.get(), 1860ba63ea5be2c90ef62d1350ea4a0a0c415a785f1Anders Carlsson rect, 1870ba63ea5be2c90ef62d1350ea4a0a0c415a785f1Anders Carlsson opaque_rect, 1880ba63ea5be2c90ef62d1350ea4a0a0c415a785f1Anders Carlsson resource3, 18950724302e24d44a27e3bc45e7185a710d6eb3c2dAnders Carlsson gfx::RectF(0, 0, 100, 100), 1900ba63ea5be2c90ef62d1350ea4a0a0c415a785f1Anders Carlsson gfx::Size(100, 100), 1910ba63ea5be2c90ef62d1350ea4a0a0c415a785f1Anders Carlsson false); 1920ba63ea5be2c90ef62d1350ea4a0a0c415a785f1Anders Carlsson AppendQuad(transformed_tile_quad.PassAs<DrawQuad>()); 19350724302e24d44a27e3bc45e7185a710d6eb3c2dAnders Carlsson 1947002f4c03c2d0544f4e8bea8d3a5636519081e35John McCall scoped_ptr<cc::TileDrawQuad> tile_quad = 19550724302e24d44a27e3bc45e7185a710d6eb3c2dAnders Carlsson cc::TileDrawQuad::Create(); 19650724302e24d44a27e3bc45e7185a710d6eb3c2dAnders Carlsson tile_quad->SetNew(shared_state.get(), 19750724302e24d44a27e3bc45e7185a710d6eb3c2dAnders Carlsson rect, 19850724302e24d44a27e3bc45e7185a710d6eb3c2dAnders Carlsson opaque_rect, 19950724302e24d44a27e3bc45e7185a710d6eb3c2dAnders Carlsson resource4, 20050724302e24d44a27e3bc45e7185a710d6eb3c2dAnders Carlsson gfx::RectF(0, 0, 100, 100), 20150724302e24d44a27e3bc45e7185a710d6eb3c2dAnders Carlsson gfx::Size(100, 100), 20237909808416da93703cecc83091e2b9eab0053d6Anders Carlsson false); 20337909808416da93703cecc83091e2b9eab0053d6Anders Carlsson AppendQuad(tile_quad.PassAs<DrawQuad>()); 20437909808416da93703cecc83091e2b9eab0053d6Anders Carlsson 20537909808416da93703cecc83091e2b9eab0053d6Anders Carlsson cc::VideoLayerImpl::FramePlane planes[3]; 20637909808416da93703cecc83091e2b9eab0053d6Anders Carlsson for (int i = 0; i < 3; ++i) { 20737909808416da93703cecc83091e2b9eab0053d6Anders Carlsson planes[i].resource_id = 20837909808416da93703cecc83091e2b9eab0053d6Anders Carlsson resource_provider->CreateResource( 20937909808416da93703cecc83091e2b9eab0053d6Anders Carlsson gfx::Size(20, 12), 21037909808416da93703cecc83091e2b9eab0053d6Anders Carlsson resource_provider->best_texture_format(), 21137909808416da93703cecc83091e2b9eab0053d6Anders Carlsson ResourceProvider::TextureUsageAny); 2127c2342dd4c9947806842e5aca3d2bb2e542853c9John McCall resource_provider->AllocateForTesting(planes[i].resource_id); 21337909808416da93703cecc83091e2b9eab0053d6Anders Carlsson planes[i].size = gfx::Size(100, 100); 214eac813909b3ca1142ad186f6c6a1b1ae0dbf9378Anders Carlsson planes[i].format = GL_LUMINANCE; 215eac813909b3ca1142ad186f6c6a1b1ae0dbf9378Anders Carlsson } 216eac813909b3ca1142ad186f6c6a1b1ae0dbf9378Anders Carlsson scoped_ptr<cc::YUVVideoDrawQuad> yuv_quad = 217eac813909b3ca1142ad186f6c6a1b1ae0dbf9378Anders Carlsson cc::YUVVideoDrawQuad::Create(); 218eac813909b3ca1142ad186f6c6a1b1ae0dbf9378Anders Carlsson yuv_quad->SetNew(shared_state.get(), 219eac813909b3ca1142ad186f6c6a1b1ae0dbf9378Anders Carlsson rect, 220eac813909b3ca1142ad186f6c6a1b1ae0dbf9378Anders Carlsson opaque_rect, 221eac813909b3ca1142ad186f6c6a1b1ae0dbf9378Anders Carlsson gfx::Size(100, 100), 222eac813909b3ca1142ad186f6c6a1b1ae0dbf9378Anders Carlsson planes[0], 223eac813909b3ca1142ad186f6c6a1b1ae0dbf9378Anders Carlsson planes[1], 224eac813909b3ca1142ad186f6c6a1b1ae0dbf9378Anders Carlsson planes[2]); 225eac813909b3ca1142ad186f6c6a1b1ae0dbf9378Anders Carlsson AppendQuad(yuv_quad.PassAs<DrawQuad>()); 226eac813909b3ca1142ad186f6c6a1b1ae0dbf9378Anders Carlsson 2274a73ea9c4e87aa111901f3c27b08f0571b58a4cfChandler Carruth AppendSharedQuadState(transformed_state.Pass()); 228e228ba97c9aff14dcf788773b8af455b9d85f210Chandler Carruth AppendSharedQuadState(shared_state.Pass()); 2297002f4c03c2d0544f4e8bea8d3a5636519081e35John McCall} 230e228ba97c9aff14dcf788773b8af455b9d85f210Chandler Carruth 231e228ba97c9aff14dcf788773b8af455b9d85f210Chandler Carruth} // namespace cc 232e228ba97c9aff14dcf788773b8af455b9d85f210Chandler Carruth