Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1015)

Side by Side Diff: cc/test/render_pass_test_common.cc

Issue 11777025: cc: Implement DelegatingRender::drawFrame() method. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: for-landing Created 7 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « cc/test/render_pass_test_common.h ('k') | cc/test/render_pass_test_utils.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "cc/test/render_pass_test_common.h" 5 #include "cc/test/render_pass_test_common.h"
6 6
7 #include "cc/checkerboard_draw_quad.h" 7 #include "cc/checkerboard_draw_quad.h"
8 #include "cc/debug_border_draw_quad.h" 8 #include "cc/debug_border_draw_quad.h"
9 #include "cc/io_surface_draw_quad.h" 9 #include "cc/io_surface_draw_quad.h"
10 #include "cc/render_pass_draw_quad.h" 10 #include "cc/render_pass_draw_quad.h"
11 #include "cc/solid_color_draw_quad.h" 11 #include "cc/solid_color_draw_quad.h"
12 #include "cc/shared_quad_state.h" 12 #include "cc/shared_quad_state.h"
13 #include "cc/stream_video_draw_quad.h" 13 #include "cc/stream_video_draw_quad.h"
14 #include "cc/texture_draw_quad.h" 14 #include "cc/texture_draw_quad.h"
15 #include "cc/tile_draw_quad.h" 15 #include "cc/tile_draw_quad.h"
16 #include "cc/yuv_video_draw_quad.h" 16 #include "cc/yuv_video_draw_quad.h"
17 #include "cc/resource_provider.h" 17 #include "cc/resource_provider.h"
18 #include "ui/gfx/transform.h" 18 #include "ui/gfx/transform.h"
19 19
20 namespace cc { 20 namespace cc {
21 21
22 void TestRenderPass::AppendQuad(scoped_ptr<cc::DrawQuad> quad) {
23 quad_list.push_back(quad.Pass());
24 }
25
26 void TestRenderPass::AppendSharedQuadState(
27 scoped_ptr<cc::SharedQuadState> state) {
28 shared_quad_state_list.push_back(state.Pass());
29 }
30
22 void TestRenderPass::AppendOneOfEveryQuadType( 31 void TestRenderPass::AppendOneOfEveryQuadType(
23 cc::ResourceProvider* resourceProvider) { 32 cc::ResourceProvider* resourceProvider, RenderPass::Id child_pass) {
24 gfx::Rect rect(0, 0, 100, 100); 33 gfx::Rect rect(0, 0, 100, 100);
25 gfx::Rect opaque_rect(10, 10, 80, 80); 34 gfx::Rect opaque_rect(10, 10, 80, 80);
26 const float vertex_opacity[] = {1.0f, 1.0f, 1.0f, 1.0f}; 35 const float vertex_opacity[] = {1.0f, 1.0f, 1.0f, 1.0f};
27 cc::ResourceProvider::ResourceId texture_resource = 36 cc::ResourceProvider::ResourceId texture_resource =
28 resourceProvider->createResource( 37 resourceProvider->createResource(
29 gfx::Size(20, 12), 38 gfx::Size(20, 12),
30 resourceProvider->bestTextureFormat(), 39 resourceProvider->bestTextureFormat(),
31 ResourceProvider::TextureUsageAny); 40 ResourceProvider::TextureUsageAny);
32 resourceProvider->allocateForTesting(texture_resource); 41 resourceProvider->allocateForTesting(texture_resource);
33 unsigned texture_id = ResourceProvider::ScopedReadLockGL( 42 unsigned texture_id = ResourceProvider::ScopedReadLockGL(
34 resourceProvider, texture_resource).textureId(); 43 resourceProvider, texture_resource).textureId();
44 cc::ResourceProvider::ResourceId resource1 =
45 resourceProvider->createResource(
46 gfx::Size(45, 5),
47 resourceProvider->bestTextureFormat(),
48 ResourceProvider::TextureUsageAny);
49 resourceProvider->allocateForTesting(resource1);
50 cc::ResourceProvider::ResourceId resource2 =
51 resourceProvider->createResource(
52 gfx::Size(346, 61),
53 resourceProvider->bestTextureFormat(),
54 ResourceProvider::TextureUsageAny);
55 resourceProvider->allocateForTesting(resource2);
56 cc::ResourceProvider::ResourceId resource3 =
57 resourceProvider->createResource(
58 gfx::Size(12, 134),
59 resourceProvider->bestTextureFormat(),
60 ResourceProvider::TextureUsageAny);
61 resourceProvider->allocateForTesting(resource3);
62 cc::ResourceProvider::ResourceId resource4 =
63 resourceProvider->createResource(
64 gfx::Size(56, 12),
65 resourceProvider->bestTextureFormat(),
66 ResourceProvider::TextureUsageAny);
67 resourceProvider->allocateForTesting(resource4);
68 cc::ResourceProvider::ResourceId resource5 =
69 resourceProvider->createResource(
70 gfx::Size(73, 26),
71 resourceProvider->bestTextureFormat(),
72 ResourceProvider::TextureUsageAny);
73 resourceProvider->allocateForTesting(resource5);
35 74
36 scoped_ptr<cc::SharedQuadState> shared_state = cc::SharedQuadState::Create(); 75 scoped_ptr<cc::SharedQuadState> shared_state = cc::SharedQuadState::Create();
37 shared_state->SetAll(gfx::Transform(), 76 shared_state->SetAll(gfx::Transform(),
38 rect, 77 rect,
39 rect, 78 rect,
40 rect, 79 rect,
41 false, 80 false,
42 1); 81 1);
43 82
44 scoped_ptr<cc::CheckerboardDrawQuad> checkerboard_quad = 83 scoped_ptr<cc::CheckerboardDrawQuad> checkerboard_quad =
(...skipping 14 matching lines...) Expand all
59 scoped_ptr<cc::IOSurfaceDrawQuad> io_surface_quad = 98 scoped_ptr<cc::IOSurfaceDrawQuad> io_surface_quad =
60 cc::IOSurfaceDrawQuad::Create(); 99 cc::IOSurfaceDrawQuad::Create();
61 io_surface_quad->SetNew(shared_state.get(), 100 io_surface_quad->SetNew(shared_state.get(),
62 rect, 101 rect,
63 opaque_rect, 102 opaque_rect,
64 gfx::Size(50, 50), 103 gfx::Size(50, 50),
65 texture_id, 104 texture_id,
66 cc::IOSurfaceDrawQuad::FLIPPED); 105 cc::IOSurfaceDrawQuad::FLIPPED);
67 AppendQuad(io_surface_quad.PassAs<DrawQuad>()); 106 AppendQuad(io_surface_quad.PassAs<DrawQuad>());
68 107
69 scoped_ptr<cc::RenderPassDrawQuad> render_pass_quad = 108 if (child_pass.layer_id) {
70 cc::RenderPassDrawQuad::Create(); 109 scoped_ptr<cc::RenderPassDrawQuad> render_pass_quad =
71 render_pass_quad->SetNew(shared_state.get(), 110 cc::RenderPassDrawQuad::Create();
72 rect, 111 render_pass_quad->SetNew(shared_state.get(),
73 cc::RenderPass::Id(1, 1), 112 rect,
74 false, 113 child_pass,
75 0, 114 false,
76 rect, 115 resource5,
77 gfx::RectF(), 116 rect,
78 WebKit::WebFilterOperations(), 117 gfx::RectF(),
79 skia::RefPtr<SkImageFilter>(), 118 WebKit::WebFilterOperations(),
80 WebKit::WebFilterOperations()); 119 skia::RefPtr<SkImageFilter>(),
81 AppendQuad(render_pass_quad.PassAs<DrawQuad>()); 120 WebKit::WebFilterOperations());
121 AppendQuad(render_pass_quad.PassAs<DrawQuad>());
122
123 scoped_ptr<cc::RenderPassDrawQuad> render_pass_replica_quad =
124 cc::RenderPassDrawQuad::Create();
125 render_pass_replica_quad->SetNew(shared_state.get(),
126 rect,
127 child_pass,
128 true,
129 resource5,
130 rect,
131 gfx::RectF(),
132 WebKit::WebFilterOperations(),
133 skia::RefPtr<SkImageFilter>(),
134 WebKit::WebFilterOperations());
135 AppendQuad(render_pass_replica_quad.PassAs<DrawQuad>());
136 }
82 137
83 scoped_ptr<cc::SolidColorDrawQuad> solid_color_quad = 138 scoped_ptr<cc::SolidColorDrawQuad> solid_color_quad =
84 cc::SolidColorDrawQuad::Create(); 139 cc::SolidColorDrawQuad::Create();
85 solid_color_quad->SetNew(shared_state.get(), 140 solid_color_quad->SetNew(shared_state.get(),
86 rect, 141 rect,
87 SK_ColorRED); 142 SK_ColorRED);
88 AppendQuad(solid_color_quad.PassAs<DrawQuad>()); 143 AppendQuad(solid_color_quad.PassAs<DrawQuad>());
89 144
90 scoped_ptr<cc::StreamVideoDrawQuad> stream_video_quad = 145 scoped_ptr<cc::StreamVideoDrawQuad> stream_video_quad =
91 cc::StreamVideoDrawQuad::Create(); 146 cc::StreamVideoDrawQuad::Create();
92 stream_video_quad->SetNew(shared_state.get(), 147 stream_video_quad->SetNew(shared_state.get(),
93 rect, 148 rect,
94 opaque_rect, 149 opaque_rect,
95 texture_id, 150 texture_id,
96 gfx::Transform()); 151 gfx::Transform());
97 AppendQuad(stream_video_quad.PassAs<DrawQuad>()); 152 AppendQuad(stream_video_quad.PassAs<DrawQuad>());
98 153
99 scoped_ptr<cc::TextureDrawQuad> texture_quad = 154 scoped_ptr<cc::TextureDrawQuad> texture_quad =
100 cc::TextureDrawQuad::Create(); 155 cc::TextureDrawQuad::Create();
101 texture_quad->SetNew(shared_state.get(), 156 texture_quad->SetNew(shared_state.get(),
102 rect, 157 rect,
103 opaque_rect, 158 opaque_rect,
104 texture_resource, 159 resource1,
105 false, 160 false,
106 rect, 161 rect,
107 vertex_opacity, 162 vertex_opacity,
108 false); 163 false);
109 AppendQuad(texture_quad.PassAs<DrawQuad>()); 164 AppendQuad(texture_quad.PassAs<DrawQuad>());
110 165
111 scoped_ptr<cc::TileDrawQuad> scaled_tile_quad = 166 scoped_ptr<cc::TileDrawQuad> scaled_tile_quad =
112 cc::TileDrawQuad::Create(); 167 cc::TileDrawQuad::Create();
113 scaled_tile_quad->SetNew(shared_state.get(), 168 scaled_tile_quad->SetNew(shared_state.get(),
114 rect, 169 rect,
115 opaque_rect, 170 opaque_rect,
116 texture_resource, 171 resource2,
117 gfx::RectF(0, 0, 50, 50), 172 gfx::RectF(0, 0, 50, 50),
118 gfx::Size(50, 50), 173 gfx::Size(50, 50),
119 false, 174 false,
120 false, 175 false,
121 false, 176 false,
122 false, 177 false,
123 false); 178 false);
124 AppendQuad(scaled_tile_quad.PassAs<DrawQuad>()); 179 AppendQuad(scaled_tile_quad.PassAs<DrawQuad>());
125 180
126 scoped_ptr<cc::SharedQuadState> transformed_state = shared_state->Copy(); 181 scoped_ptr<cc::SharedQuadState> transformed_state = shared_state->Copy();
127 gfx::Transform rotation; 182 gfx::Transform rotation;
128 rotation.Rotate(45); 183 rotation.Rotate(45);
129 transformed_state->content_to_target_transform = transformed_state->content_to _target_transform * rotation; 184 transformed_state->content_to_target_transform = transformed_state->content_to _target_transform * rotation;
130 scoped_ptr<cc::TileDrawQuad> transformed_tile_quad = 185 scoped_ptr<cc::TileDrawQuad> transformed_tile_quad =
131 cc::TileDrawQuad::Create(); 186 cc::TileDrawQuad::Create();
132 transformed_tile_quad->SetNew(transformed_state.get(), 187 transformed_tile_quad->SetNew(transformed_state.get(),
133 rect, 188 rect,
134 opaque_rect, 189 opaque_rect,
135 texture_resource, 190 resource3,
136 gfx::RectF(0, 0, 100, 100), 191 gfx::RectF(0, 0, 100, 100),
137 gfx::Size(100, 100), 192 gfx::Size(100, 100),
138 false, 193 false,
139 false, 194 false,
140 false, 195 false,
141 false, 196 false,
142 false); 197 false);
143 AppendQuad(transformed_tile_quad.PassAs<DrawQuad>()); 198 AppendQuad(transformed_tile_quad.PassAs<DrawQuad>());
144 199
145 scoped_ptr<cc::TileDrawQuad> tile_quad = 200 scoped_ptr<cc::TileDrawQuad> tile_quad =
146 cc::TileDrawQuad::Create(); 201 cc::TileDrawQuad::Create();
147 tile_quad->SetNew(shared_state.get(), 202 tile_quad->SetNew(shared_state.get(),
148 rect, 203 rect,
149 opaque_rect, 204 opaque_rect,
150 texture_resource, 205 resource4,
151 gfx::RectF(0, 0, 100, 100), 206 gfx::RectF(0, 0, 100, 100),
152 gfx::Size(100, 100), 207 gfx::Size(100, 100),
153 false, 208 false,
154 false, 209 false,
155 false, 210 false,
156 false, 211 false,
157 false); 212 false);
158 AppendQuad(tile_quad.PassAs<DrawQuad>()); 213 AppendQuad(tile_quad.PassAs<DrawQuad>());
159 214
160 cc::VideoLayerImpl::FramePlane planes[3]; 215 cc::VideoLayerImpl::FramePlane planes[3];
(...skipping 16 matching lines...) Expand all
177 planes[0], 232 planes[0],
178 planes[1], 233 planes[1],
179 planes[2]); 234 planes[2]);
180 AppendQuad(yuv_quad.PassAs<DrawQuad>()); 235 AppendQuad(yuv_quad.PassAs<DrawQuad>());
181 236
182 AppendSharedQuadState(transformed_state.Pass()); 237 AppendSharedQuadState(transformed_state.Pass());
183 AppendSharedQuadState(shared_state.Pass()); 238 AppendSharedQuadState(shared_state.Pass());
184 } 239 }
185 240
186 } // namespace cc 241 } // namespace cc
OLDNEW
« no previous file with comments | « cc/test/render_pass_test_common.h ('k') | cc/test/render_pass_test_utils.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698