render_pass_test_common.cc revision f2477e01787aa58f445919b809d89e252beef54f
1c123a9b2edc5852cb50485f344219508254081a8Brian Paul// Copyright 2012 The Chromium Authors. All rights reserved. 2e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell// Use of this source code is governed by a BSD-style license that can be 3e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell// found in the LICENSE file. 4e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell 5e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell#include "cc/test/render_pass_test_common.h" 622144ab7552f0799bcfca506bf4ffa7f70a06649Gareth Hughes 7b6bcae5698df88f7730d40004ce7ce0462e97a20Brian Paul#include "cc/quads/checkerboard_draw_quad.h" 822144ab7552f0799bcfca506bf4ffa7f70a06649Gareth Hughes#include "cc/quads/debug_border_draw_quad.h" 9e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell#include "cc/quads/io_surface_draw_quad.h" 10e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell#include "cc/quads/render_pass_draw_quad.h" 11e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell#include "cc/quads/shared_quad_state.h" 12e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell#include "cc/quads/solid_color_draw_quad.h" 13e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell#include "cc/quads/stream_video_draw_quad.h" 14e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell#include "cc/quads/texture_draw_quad.h" 1522144ab7552f0799bcfca506bf4ffa7f70a06649Gareth Hughes#include "cc/quads/tile_draw_quad.h" 16e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell#include "cc/quads/yuv_video_draw_quad.h" 17e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell#include "cc/resources/resource_provider.h" 1822144ab7552f0799bcfca506bf4ffa7f70a06649Gareth Hughes#include "ui/gfx/transform.h" 19e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell 20e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwellnamespace cc { 21e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell 22e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwellvoid TestRenderPass::AppendQuad(scoped_ptr<cc::DrawQuad> quad) { 23e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell quad_list.push_back(quad.Pass()); 24e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell} 25e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell 26e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwellvoid TestRenderPass::AppendSharedQuadState( 27e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell scoped_ptr<cc::SharedQuadState> state) { 28e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell shared_quad_state_list.push_back(state.Pass()); 2946b0988c673b28e072fd0cbf477632a9ab6f9f18Keith Whitwell} 30e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell 31e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwellvoid TestRenderPass::AppendOneOfEveryQuadType( 320070d398d13759adc519f9bc764ffd39bc88890eBrian Paul ResourceProvider* resource_provider, 33e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell RenderPass::Id child_pass) { 34cd03ed4f54444d96e4e47cdb118a3dfd94d92bb0Keith Whitwell gfx::Rect rect(0, 0, 100, 100); 35e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell gfx::Rect opaque_rect(10, 10, 80, 80); 36cd03ed4f54444d96e4e47cdb118a3dfd94d92bb0Keith Whitwell const float vertex_opacity[] = {1.0f, 1.0f, 1.0f, 1.0f}; 37cd03ed4f54444d96e4e47cdb118a3dfd94d92bb0Keith Whitwell cc::ResourceProvider::ResourceId resource1 = 38e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell resource_provider->CreateResource( 39e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell gfx::Size(45, 5), 40e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell GL_CLAMP_TO_EDGE, 41e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell ResourceProvider::TextureUsageAny, 42e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell resource_provider->best_texture_format()); 43e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell resource_provider->AllocateForTesting(resource1); 44e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell cc::ResourceProvider::ResourceId resource2 = 45e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell resource_provider->CreateResource( 46e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell gfx::Size(346, 61), 47e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell GL_CLAMP_TO_EDGE, 48e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell ResourceProvider::TextureUsageAny, 49e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell resource_provider->best_texture_format()); 50e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell resource_provider->AllocateForTesting(resource2); 51e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell cc::ResourceProvider::ResourceId resource3 = 52e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell resource_provider->CreateResource( 53e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell gfx::Size(12, 134), 54e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell GL_CLAMP_TO_EDGE, 55e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell ResourceProvider::TextureUsageAny, 56e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell resource_provider->best_texture_format()); 57a852378a6289d154364dde440f89a39bbfc33e2dBrian Paul resource_provider->AllocateForTesting(resource3); 58a852378a6289d154364dde440f89a39bbfc33e2dBrian Paul cc::ResourceProvider::ResourceId resource4 = 59e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell resource_provider->CreateResource( 60cd03ed4f54444d96e4e47cdb118a3dfd94d92bb0Keith Whitwell gfx::Size(56, 12), 61cd03ed4f54444d96e4e47cdb118a3dfd94d92bb0Keith Whitwell GL_CLAMP_TO_EDGE, 62cd03ed4f54444d96e4e47cdb118a3dfd94d92bb0Keith Whitwell ResourceProvider::TextureUsageAny, 63e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell resource_provider->best_texture_format()); 64e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell resource_provider->AllocateForTesting(resource4); 65cd03ed4f54444d96e4e47cdb118a3dfd94d92bb0Keith Whitwell cc::ResourceProvider::ResourceId resource5 = 66e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell resource_provider->CreateResource( 67e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell gfx::Size(73, 26), 68e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell GL_CLAMP_TO_EDGE, 6908836341788a9f9d638d9dc8328510ccd18ddeb5Brian Paul ResourceProvider::TextureUsageAny, 70e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell resource_provider->best_texture_format()); 71e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell resource_provider->AllocateForTesting(resource5); 72e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell cc::ResourceProvider::ResourceId resource6 = 73e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell resource_provider->CreateResource( 74e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell gfx::Size(64, 92), 75e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell GL_CLAMP_TO_EDGE, 76a852378a6289d154364dde440f89a39bbfc33e2dBrian Paul ResourceProvider::TextureUsageAny, 77a852378a6289d154364dde440f89a39bbfc33e2dBrian Paul resource_provider->best_texture_format()); 78e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell resource_provider->AllocateForTesting(resource6); 79cd03ed4f54444d96e4e47cdb118a3dfd94d92bb0Keith Whitwell cc::ResourceProvider::ResourceId resource7 = 80cd03ed4f54444d96e4e47cdb118a3dfd94d92bb0Keith Whitwell resource_provider->CreateResource( 81e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell gfx::Size(9, 14), 82e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell GL_CLAMP_TO_EDGE, 83e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell ResourceProvider::TextureUsageAny, 8495e02a210ed339ad20b0c16284dcdcf9af2dc755Brian Paul resource_provider->best_texture_format()); 85cd03ed4f54444d96e4e47cdb118a3dfd94d92bb0Keith Whitwell resource_provider->AllocateForTesting(resource7); 86e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell 87e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell scoped_ptr<cc::SharedQuadState> shared_state = cc::SharedQuadState::Create(); 88e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell shared_state->SetAll(gfx::Transform(), 8908836341788a9f9d638d9dc8328510ccd18ddeb5Brian Paul rect.size(), 90e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell rect, 91e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell rect, 92e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell false, 93e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell 1, 94e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell SkXfermode::kSrcOver_Mode); 95e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell 96a852378a6289d154364dde440f89a39bbfc33e2dBrian Paul scoped_ptr<cc::CheckerboardDrawQuad> checkerboard_quad = 97a852378a6289d154364dde440f89a39bbfc33e2dBrian Paul cc::CheckerboardDrawQuad::Create(); 98e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell checkerboard_quad->SetNew(shared_state.get(), 998415686ea22bc9165720590261581ff997f2eb7aKeith Whitwell rect, 100cd03ed4f54444d96e4e47cdb118a3dfd94d92bb0Keith Whitwell SK_ColorRED); 101cd03ed4f54444d96e4e47cdb118a3dfd94d92bb0Keith Whitwell AppendQuad(checkerboard_quad.PassAs<DrawQuad>()); 102e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell 103e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell scoped_ptr<cc::DebugBorderDrawQuad> debug_border_quad = 104cd03ed4f54444d96e4e47cdb118a3dfd94d92bb0Keith Whitwell cc::DebugBorderDrawQuad::Create(); 105e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell debug_border_quad->SetNew(shared_state.get(), 106e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell rect, 107e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell SK_ColorRED, 10808836341788a9f9d638d9dc8328510ccd18ddeb5Brian Paul 1); 109e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell AppendQuad(debug_border_quad.PassAs<DrawQuad>()); 110e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell 111e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell scoped_ptr<cc::IOSurfaceDrawQuad> io_surface_quad = 112e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell cc::IOSurfaceDrawQuad::Create(); 113e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell io_surface_quad->SetNew(shared_state.get(), 114e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell rect, 115a852378a6289d154364dde440f89a39bbfc33e2dBrian Paul opaque_rect, 116a852378a6289d154364dde440f89a39bbfc33e2dBrian Paul gfx::Size(50, 50), 117e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell resource7, 1188415686ea22bc9165720590261581ff997f2eb7aKeith Whitwell cc::IOSurfaceDrawQuad::FLIPPED); 119cd03ed4f54444d96e4e47cdb118a3dfd94d92bb0Keith Whitwell AppendQuad(io_surface_quad.PassAs<DrawQuad>()); 120cd03ed4f54444d96e4e47cdb118a3dfd94d92bb0Keith Whitwell 121e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell if (child_pass.layer_id) { 122e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell scoped_ptr<cc::RenderPassDrawQuad> render_pass_quad = 123e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell cc::RenderPassDrawQuad::Create(); 12495e02a210ed339ad20b0c16284dcdcf9af2dc755Brian Paul render_pass_quad->SetNew(shared_state.get(), 125cd03ed4f54444d96e4e47cdb118a3dfd94d92bb0Keith Whitwell rect, 126e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell child_pass, 127e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell false, 128e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell resource5, 12908836341788a9f9d638d9dc8328510ccd18ddeb5Brian Paul rect, 130e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell gfx::RectF(), 131e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell FilterOperations(), 132e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell FilterOperations()); 133e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell AppendQuad(render_pass_quad.PassAs<DrawQuad>()); 134e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell 135e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell scoped_ptr<cc::RenderPassDrawQuad> render_pass_replica_quad = 136a852378a6289d154364dde440f89a39bbfc33e2dBrian Paul cc::RenderPassDrawQuad::Create(); 137a852378a6289d154364dde440f89a39bbfc33e2dBrian Paul render_pass_replica_quad->SetNew(shared_state.get(), 138e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell rect, 139cd03ed4f54444d96e4e47cdb118a3dfd94d92bb0Keith Whitwell child_pass, 140cd03ed4f54444d96e4e47cdb118a3dfd94d92bb0Keith Whitwell true, 141cd03ed4f54444d96e4e47cdb118a3dfd94d92bb0Keith Whitwell resource5, 142cd03ed4f54444d96e4e47cdb118a3dfd94d92bb0Keith Whitwell rect, 143cd03ed4f54444d96e4e47cdb118a3dfd94d92bb0Keith Whitwell gfx::RectF(), 144e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell FilterOperations(), 145cd03ed4f54444d96e4e47cdb118a3dfd94d92bb0Keith Whitwell FilterOperations()); 146e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell AppendQuad(render_pass_replica_quad.PassAs<DrawQuad>()); 147e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell } 148e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell 149e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell scoped_ptr<cc::SolidColorDrawQuad> solid_color_quad = 150e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell cc::SolidColorDrawQuad::Create(); 151e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell solid_color_quad->SetNew(shared_state.get(), 152e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell rect, 153e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell SK_ColorRED, 154e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell false); 155e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell AppendQuad(solid_color_quad.PassAs<DrawQuad>()); 156e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell 157e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell scoped_ptr<cc::StreamVideoDrawQuad> stream_video_quad = 158cd03ed4f54444d96e4e47cdb118a3dfd94d92bb0Keith Whitwell cc::StreamVideoDrawQuad::Create(); 15908836341788a9f9d638d9dc8328510ccd18ddeb5Brian Paul stream_video_quad->SetNew(shared_state.get(), 160e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell rect, 161e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell opaque_rect, 162e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell resource6, 163e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell gfx::Transform()); 164e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell AppendQuad(stream_video_quad.PassAs<DrawQuad>()); 165e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell 166a852378a6289d154364dde440f89a39bbfc33e2dBrian Paul scoped_ptr<cc::TextureDrawQuad> texture_quad = 167a852378a6289d154364dde440f89a39bbfc33e2dBrian Paul cc::TextureDrawQuad::Create(); 168e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell texture_quad->SetNew(shared_state.get(), 169cd03ed4f54444d96e4e47cdb118a3dfd94d92bb0Keith Whitwell rect, 170cd03ed4f54444d96e4e47cdb118a3dfd94d92bb0Keith Whitwell opaque_rect, 171cd03ed4f54444d96e4e47cdb118a3dfd94d92bb0Keith Whitwell resource1, 172cd03ed4f54444d96e4e47cdb118a3dfd94d92bb0Keith Whitwell false, 173cd03ed4f54444d96e4e47cdb118a3dfd94d92bb0Keith Whitwell gfx::PointF(0.f, 0.f), 174cd03ed4f54444d96e4e47cdb118a3dfd94d92bb0Keith Whitwell gfx::PointF(1.f, 1.f), 175e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell SK_ColorTRANSPARENT, 176cd03ed4f54444d96e4e47cdb118a3dfd94d92bb0Keith Whitwell vertex_opacity, 177e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell false); 178e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell AppendQuad(texture_quad.PassAs<DrawQuad>()); 179e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell 18095e02a210ed339ad20b0c16284dcdcf9af2dc755Brian Paul scoped_ptr<cc::TileDrawQuad> scaled_tile_quad = 181e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell cc::TileDrawQuad::Create(); 182e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell scaled_tile_quad->SetNew(shared_state.get(), 183e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell rect, 184e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell opaque_rect, 185e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell resource2, 186e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell gfx::RectF(0, 0, 50, 50), 187e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell gfx::Size(50, 50), 188e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell false); 189e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell AppendQuad(scaled_tile_quad.PassAs<DrawQuad>()); 190e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell 191e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell scoped_ptr<cc::SharedQuadState> transformed_state = shared_state->Copy(); 192cd03ed4f54444d96e4e47cdb118a3dfd94d92bb0Keith Whitwell gfx::Transform rotation; 19308836341788a9f9d638d9dc8328510ccd18ddeb5Brian Paul rotation.Rotate(45); 194e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell transformed_state->content_to_target_transform = 195e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell transformed_state->content_to_target_transform * rotation; 196e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell scoped_ptr<cc::TileDrawQuad> transformed_tile_quad = 197e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell cc::TileDrawQuad::Create(); 198e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell transformed_tile_quad->SetNew(transformed_state.get(), 199e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell rect, 200a852378a6289d154364dde440f89a39bbfc33e2dBrian Paul opaque_rect, 201a852378a6289d154364dde440f89a39bbfc33e2dBrian Paul resource3, 202e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell gfx::RectF(0, 0, 100, 100), 203cd03ed4f54444d96e4e47cdb118a3dfd94d92bb0Keith Whitwell gfx::Size(100, 100), 204cd03ed4f54444d96e4e47cdb118a3dfd94d92bb0Keith Whitwell false); 205cd03ed4f54444d96e4e47cdb118a3dfd94d92bb0Keith Whitwell AppendQuad(transformed_tile_quad.PassAs<DrawQuad>()); 206cd03ed4f54444d96e4e47cdb118a3dfd94d92bb0Keith Whitwell 207cd03ed4f54444d96e4e47cdb118a3dfd94d92bb0Keith Whitwell scoped_ptr<cc::SharedQuadState> shared_state2 = cc::SharedQuadState::Create(); 208e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell shared_state->SetAll(gfx::Transform(), 209cd03ed4f54444d96e4e47cdb118a3dfd94d92bb0Keith Whitwell rect.size(), 210e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell rect, 211e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell rect, 212e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell false, 213e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell 1, 214e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell SkXfermode::kSrcOver_Mode); 215e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell 216e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell scoped_ptr<cc::TileDrawQuad> tile_quad = cc::TileDrawQuad::Create(); 217e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell tile_quad->SetNew(shared_state2.get(), 218e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell rect, 219e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell opaque_rect, 220e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell resource4, 221e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell gfx::RectF(0, 0, 100, 100), 222e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell gfx::Size(100, 100), 223e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell false); 224e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell AppendQuad(tile_quad.PassAs<DrawQuad>()); 225e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell 226cd03ed4f54444d96e4e47cdb118a3dfd94d92bb0Keith Whitwell ResourceProvider::ResourceId plane_resources[4]; 22708836341788a9f9d638d9dc8328510ccd18ddeb5Brian Paul for (int i = 0; i < 4; ++i) { 228e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell plane_resources[i] = 229e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell resource_provider->CreateResource( 230e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell gfx::Size(20, 12), 231e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell GL_CLAMP_TO_EDGE, 232e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell ResourceProvider::TextureUsageAny, 233e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell resource_provider->best_texture_format()); 234a852378a6289d154364dde440f89a39bbfc33e2dBrian Paul resource_provider->AllocateForTesting(plane_resources[i]); 235a852378a6289d154364dde440f89a39bbfc33e2dBrian Paul } 236e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell scoped_ptr<cc::YUVVideoDrawQuad> yuv_quad = 237cd03ed4f54444d96e4e47cdb118a3dfd94d92bb0Keith Whitwell cc::YUVVideoDrawQuad::Create(); 238cd03ed4f54444d96e4e47cdb118a3dfd94d92bb0Keith Whitwell yuv_quad->SetNew(shared_state2.get(), 239cd03ed4f54444d96e4e47cdb118a3dfd94d92bb0Keith Whitwell rect, 240cd03ed4f54444d96e4e47cdb118a3dfd94d92bb0Keith Whitwell opaque_rect, 241cd03ed4f54444d96e4e47cdb118a3dfd94d92bb0Keith Whitwell gfx::Size(100, 100), 2421b3528fe635242f782fbcdde3ba74b5b7359a362Brian Paul plane_resources[0], 243cd03ed4f54444d96e4e47cdb118a3dfd94d92bb0Keith Whitwell plane_resources[1], 244e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell plane_resources[2], 245e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell plane_resources[3]); 246cd03ed4f54444d96e4e47cdb118a3dfd94d92bb0Keith Whitwell AppendQuad(yuv_quad.PassAs<DrawQuad>()); 247e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell 248e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell AppendSharedQuadState(shared_state.Pass()); 249e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell AppendSharedQuadState(transformed_state.Pass()); 25095e02a210ed339ad20b0c16284dcdcf9af2dc755Brian Paul AppendSharedQuadState(shared_state2.Pass()); 251e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell} 252e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell 253e3a051e0538a605551f4d58294c94f5eb00ed07fKeith Whitwell} // namespace cc 2540070d398d13759adc519f9bc764ffd39bc88890eBrian Paul