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