render_pass_test_common.cc revision a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7
182d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com// Copyright 2012 The Chromium Authors. All rights reserved. 282d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com// Use of this source code is governed by a BSD-style license that can be 382d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com// found in the LICENSE file. 482d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com 582d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com#include "cc/test/render_pass_test_common.h" 682d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com 782d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com#include "cc/quads/checkerboard_draw_quad.h" 882d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com#include "cc/quads/debug_border_draw_quad.h" 982d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com#include "cc/quads/io_surface_draw_quad.h" 1082d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com#include "cc/quads/render_pass_draw_quad.h" 1182d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com#include "cc/quads/shared_quad_state.h" 1282d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com#include "cc/quads/solid_color_draw_quad.h" 1382d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com#include "cc/quads/stream_video_draw_quad.h" 1482d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com#include "cc/quads/texture_draw_quad.h" 1582d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com#include "cc/quads/tile_draw_quad.h" 1682d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com#include "cc/quads/yuv_video_draw_quad.h" 1782d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com#include "cc/resources/resource_provider.h" 1882d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com#include "ui/gfx/transform.h" 1982d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com 2082d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.comnamespace cc { 2182d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com 2282d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.comvoid TestRenderPass::AppendQuad(scoped_ptr<DrawQuad> quad) { 2382d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com quad_list.push_back(quad.Pass()); 2482d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com} 2582d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com 2682d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.comvoid TestRenderPass::AppendSharedQuadState(scoped_ptr<SharedQuadState> state) { 2782d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com shared_quad_state_list.push_back(state.Pass()); 2882d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com} 2983f23d87f1d67e6e73873e1ef7cda621c43703a0commit-bot@chromium.org 3083f23d87f1d67e6e73873e1ef7cda621c43703a0commit-bot@chromium.orgvoid TestRenderPass::AppendOneOfEveryQuadType( 3182d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com ResourceProvider* resource_provider, 3282d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com RenderPass::Id child_pass) { 3383f23d87f1d67e6e73873e1ef7cda621c43703a0commit-bot@chromium.org gfx::Rect rect(0, 0, 100, 100); 3482d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com gfx::Rect opaque_rect(10, 10, 80, 80); 3582d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com const float vertex_opacity[] = {1.0f, 1.0f, 1.0f, 1.0f}; 3682d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com ResourceProvider::ResourceId resource1 = resource_provider->CreateResource( 3782d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com gfx::Size(45, 5), 3883f23d87f1d67e6e73873e1ef7cda621c43703a0commit-bot@chromium.org GL_CLAMP_TO_EDGE, 3982d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com ResourceProvider::TextureUsageAny, 4082d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com resource_provider->best_texture_format()); 4183f23d87f1d67e6e73873e1ef7cda621c43703a0commit-bot@chromium.org resource_provider->AllocateForTesting(resource1); 4282d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com ResourceProvider::ResourceId resource2 = resource_provider->CreateResource( 4382d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com gfx::Size(346, 61), 4482d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com GL_CLAMP_TO_EDGE, 4583f23d87f1d67e6e73873e1ef7cda621c43703a0commit-bot@chromium.org ResourceProvider::TextureUsageAny, 4682d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com resource_provider->best_texture_format()); 4782d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com resource_provider->AllocateForTesting(resource2); 4883f23d87f1d67e6e73873e1ef7cda621c43703a0commit-bot@chromium.org ResourceProvider::ResourceId resource3 = resource_provider->CreateResource( 4982d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com gfx::Size(12, 134), 5082d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com GL_CLAMP_TO_EDGE, 5182d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com ResourceProvider::TextureUsageAny, 5282d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com resource_provider->best_texture_format()); 5382d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com resource_provider->AllocateForTesting(resource3); 5482d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com ResourceProvider::ResourceId resource4 = resource_provider->CreateResource( 5582d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com gfx::Size(56, 12), 5682d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com GL_CLAMP_TO_EDGE, 5783f23d87f1d67e6e73873e1ef7cda621c43703a0commit-bot@chromium.org ResourceProvider::TextureUsageAny, 5882d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com resource_provider->best_texture_format()); 5982d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com resource_provider->AllocateForTesting(resource4); 6083f23d87f1d67e6e73873e1ef7cda621c43703a0commit-bot@chromium.org ResourceProvider::ResourceId resource5 = resource_provider->CreateResource( 6182d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com gfx::Size(73, 26), 6282d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com GL_CLAMP_TO_EDGE, 6382d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com ResourceProvider::TextureUsageAny, 6482d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com resource_provider->best_texture_format()); 6582d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com resource_provider->AllocateForTesting(resource5); 6682d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com ResourceProvider::ResourceId resource6 = resource_provider->CreateResource( 6782d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com gfx::Size(64, 92), 6882d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com GL_CLAMP_TO_EDGE, 6983f23d87f1d67e6e73873e1ef7cda621c43703a0commit-bot@chromium.org ResourceProvider::TextureUsageAny, 7082d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com resource_provider->best_texture_format()); 7182d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com resource_provider->AllocateForTesting(resource6); 7282d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com ResourceProvider::ResourceId resource7 = resource_provider->CreateResource( 7383f23d87f1d67e6e73873e1ef7cda621c43703a0commit-bot@chromium.org gfx::Size(9, 14), 7483f23d87f1d67e6e73873e1ef7cda621c43703a0commit-bot@chromium.org GL_CLAMP_TO_EDGE, 7582d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com ResourceProvider::TextureUsageAny, 7682d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com resource_provider->best_texture_format()); 7782d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com resource_provider->AllocateForTesting(resource7); 7882d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com 7982d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com scoped_ptr<SharedQuadState> shared_state = SharedQuadState::Create(); 8082d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com shared_state->SetAll(gfx::Transform(), 8182d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com rect.size(), 8282d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com rect, 8382d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com rect, 8482d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com false, 8582d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com 1, 8682d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com SkXfermode::kSrcOver_Mode); 8782d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com 88a90c6803865766d28e92091f56f718f5e41fe80fcommit-bot@chromium.org scoped_ptr<CheckerboardDrawQuad> checkerboard_quad = 89a90c6803865766d28e92091f56f718f5e41fe80fcommit-bot@chromium.org CheckerboardDrawQuad::Create(); 90a90c6803865766d28e92091f56f718f5e41fe80fcommit-bot@chromium.org checkerboard_quad->SetNew(shared_state.get(), 91a90c6803865766d28e92091f56f718f5e41fe80fcommit-bot@chromium.org rect, 9282d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com SK_ColorRED); 93f539318f0d3dba743ec1886d5d9df0fb1be628a1tfarina AppendQuad(checkerboard_quad.PassAs<DrawQuad>()); 9482d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com 9582d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com scoped_ptr<DebugBorderDrawQuad> debug_border_quad = 9682d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com DebugBorderDrawQuad::Create(); 9782d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com debug_border_quad->SetNew(shared_state.get(), 9882d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com rect, 9982d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com SK_ColorRED, 10082d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com 1); 10182d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com AppendQuad(debug_border_quad.PassAs<DrawQuad>()); 10282d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com 10382d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com scoped_ptr<IOSurfaceDrawQuad> io_surface_quad = IOSurfaceDrawQuad::Create(); 10482d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com io_surface_quad->SetNew(shared_state.get(), 10582d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com rect, 10682d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com opaque_rect, 10782d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com gfx::Size(50, 50), 10882d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com resource7, 10983f23d87f1d67e6e73873e1ef7cda621c43703a0commit-bot@chromium.org IOSurfaceDrawQuad::FLIPPED); 11082d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com AppendQuad(io_surface_quad.PassAs<DrawQuad>()); 11182d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com 11282d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com if (child_pass.layer_id) { 11382d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com scoped_ptr<RenderPassDrawQuad> render_pass_quad = 11482d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com RenderPassDrawQuad::Create(); 11582d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com render_pass_quad->SetNew(shared_state.get(), 11682d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com rect, 11782d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com child_pass, 11882d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com false, 11982d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com resource5, 12082d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com rect, 12182d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com gfx::RectF(), 12282d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com FilterOperations(), 12382d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com FilterOperations()); 12482d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com AppendQuad(render_pass_quad.PassAs<DrawQuad>()); 12582d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com 12682d1223aece4703bc9f3a3612cbabaa8c2f2809bbsalomon@google.com scoped_ptr<RenderPassDrawQuad> render_pass_replica_quad = 1277b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com RenderPassDrawQuad::Create(); 1287b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com render_pass_replica_quad->SetNew(shared_state.get(), 1297b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com rect, 1307b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com child_pass, 1317b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com true, 1327b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com resource5, 1337b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com rect, 134c25cec5f9aa4e8801ae87854adc629c742b9de59bsalomon@google.com gfx::RectF(), 135c25cec5f9aa4e8801ae87854adc629c742b9de59bsalomon@google.com FilterOperations(), 1367b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com FilterOperations()); 1377b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com AppendQuad(render_pass_replica_quad.PassAs<DrawQuad>()); 1387b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com } 1397b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com 1407b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com scoped_ptr<SolidColorDrawQuad> solid_color_quad = 1417b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com SolidColorDrawQuad::Create(); 1427b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com solid_color_quad->SetNew(shared_state.get(), 1437b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com rect, 1447b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com SK_ColorRED, 1457b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com false); 1467b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com AppendQuad(solid_color_quad.PassAs<DrawQuad>()); 1477b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com 1487b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com scoped_ptr<StreamVideoDrawQuad> stream_video_quad = 1497b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com StreamVideoDrawQuad::Create(); 1507b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com stream_video_quad->SetNew(shared_state.get(), 1517b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com rect, 1527b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com opaque_rect, 1537b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com resource6, 1547b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com gfx::Transform()); 1557b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com AppendQuad(stream_video_quad.PassAs<DrawQuad>()); 1567b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com 1577b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com scoped_ptr<TextureDrawQuad> texture_quad = TextureDrawQuad::Create(); 1587b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com texture_quad->SetNew(shared_state.get(), 1597b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com rect, 1607b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com opaque_rect, 1617b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com resource1, 1627b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com false, 1637b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com gfx::PointF(0.f, 0.f), 1647b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com gfx::PointF(1.f, 1.f), 1657b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com SK_ColorTRANSPARENT, 1667b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com vertex_opacity, 1677b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com false); 1687b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com AppendQuad(texture_quad.PassAs<DrawQuad>()); 1697b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com 1707b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com scoped_ptr<TileDrawQuad> scaled_tile_quad = TileDrawQuad::Create(); 1717b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com scaled_tile_quad->SetNew(shared_state.get(), 1727b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com rect, 1737b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com opaque_rect, 1747b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com resource2, 1757b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com gfx::RectF(0, 0, 50, 50), 1767b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com gfx::Size(50, 50), 1777b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com false); 1787b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com AppendQuad(scaled_tile_quad.PassAs<DrawQuad>()); 1797b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com 1807b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com scoped_ptr<SharedQuadState> transformed_state = shared_state->Copy(); 1817b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com gfx::Transform rotation; 1827b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com rotation.Rotate(45); 1837b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com transformed_state->content_to_target_transform = 1847b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com transformed_state->content_to_target_transform * rotation; 1857b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com scoped_ptr<TileDrawQuad> transformed_tile_quad = TileDrawQuad::Create(); 1867b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com transformed_tile_quad->SetNew(transformed_state.get(), 1877b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com rect, 1887b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com opaque_rect, 1897b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com resource3, 1907b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com gfx::RectF(0, 0, 100, 100), 1917b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com gfx::Size(100, 100), 1927b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com false); 1937b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com AppendQuad(transformed_tile_quad.PassAs<DrawQuad>()); 1947b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com 1957b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com scoped_ptr<SharedQuadState> shared_state2 = SharedQuadState::Create(); 1967b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com shared_state->SetAll(gfx::Transform(), 1977b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com rect.size(), 1987b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com rect, 1997b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com rect, 2007b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com false, 2017b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com 1, 2027b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com SkXfermode::kSrcOver_Mode); 2037b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com 2047b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com scoped_ptr<TileDrawQuad> tile_quad = TileDrawQuad::Create(); 2057b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com tile_quad->SetNew(shared_state2.get(), 2067b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com rect, 2077b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com opaque_rect, 2087b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com resource4, 2097b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com gfx::RectF(0, 0, 100, 100), 2107b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com gfx::Size(100, 100), 2117b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com false); 2128a777a5e6ad081f54ec169dcf714343c38517161skia.committer@gmail.com AppendQuad(tile_quad.PassAs<DrawQuad>()); 2137b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com 214a90c6803865766d28e92091f56f718f5e41fe80fcommit-bot@chromium.org ResourceProvider::ResourceId plane_resources[4]; 215a90c6803865766d28e92091f56f718f5e41fe80fcommit-bot@chromium.org for (int i = 0; i < 4; ++i) { 216a90c6803865766d28e92091f56f718f5e41fe80fcommit-bot@chromium.org plane_resources[i] = 217a90c6803865766d28e92091f56f718f5e41fe80fcommit-bot@chromium.org resource_provider->CreateResource( 2187b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com gfx::Size(20, 12), 2197b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com GL_CLAMP_TO_EDGE, 2208a777a5e6ad081f54ec169dcf714343c38517161skia.committer@gmail.com ResourceProvider::TextureUsageAny, 2217b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com resource_provider->best_texture_format()); 2227b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com resource_provider->AllocateForTesting(plane_resources[i]); 2237b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com } 2247b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com scoped_ptr<YUVVideoDrawQuad> yuv_quad = YUVVideoDrawQuad::Create(); 2257b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com yuv_quad->SetNew(shared_state2.get(), 2267b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com rect, 2277b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com opaque_rect, 2287b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com gfx::Size(100, 100), 2297b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com plane_resources[0], 2307b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com plane_resources[1], 2317b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com plane_resources[2], 2328a777a5e6ad081f54ec169dcf714343c38517161skia.committer@gmail.com plane_resources[3]); 2337b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com AppendQuad(yuv_quad.PassAs<DrawQuad>()); 2348a777a5e6ad081f54ec169dcf714343c38517161skia.committer@gmail.com 2357b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com AppendSharedQuadState(shared_state.Pass()); 2367b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com AppendSharedQuadState(transformed_state.Pass()); 2377b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com AppendSharedQuadState(shared_state2.Pass()); 2387b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com} 2397b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com 2407b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com} // namespace cc 2417b8999b5047e059f8dbce2bb24586ac49d928731reed@google.com