OLD | NEW |
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/output/software_renderer.h" | 5 #include "cc/output/software_renderer.h" |
6 | 6 |
7 #include "base/run_loop.h" | 7 #include "base/run_loop.h" |
8 #include "cc/output/compositor_frame_metadata.h" | 8 #include "cc/output/compositor_frame_metadata.h" |
9 #include "cc/output/copy_output_request.h" | 9 #include "cc/output/copy_output_request.h" |
10 #include "cc/output/copy_output_result.h" | 10 #include "cc/output/copy_output_result.h" |
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
107 SharedQuadState* shared_quad_state = | 107 SharedQuadState* shared_quad_state = |
108 root_render_pass->CreateAndAppendSharedQuadState(); | 108 root_render_pass->CreateAndAppendSharedQuadState(); |
109 shared_quad_state->SetAll(gfx::Transform(), | 109 shared_quad_state->SetAll(gfx::Transform(), |
110 outer_size, | 110 outer_size, |
111 outer_rect, | 111 outer_rect, |
112 outer_rect, | 112 outer_rect, |
113 false, | 113 false, |
114 1.0, | 114 1.0, |
115 SkXfermode::kSrcOver_Mode, | 115 SkXfermode::kSrcOver_Mode, |
116 0); | 116 0); |
117 scoped_ptr<SolidColorDrawQuad> outer_quad = SolidColorDrawQuad::Create(); | 117 SolidColorDrawQuad* inner_quad = |
118 outer_quad->SetNew( | 118 root_render_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); |
119 shared_quad_state, outer_rect, outer_rect, SK_ColorYELLOW, false); | |
120 scoped_ptr<SolidColorDrawQuad> inner_quad = SolidColorDrawQuad::Create(); | |
121 inner_quad->SetNew( | 119 inner_quad->SetNew( |
122 shared_quad_state, inner_rect, inner_rect, SK_ColorCYAN, false); | 120 shared_quad_state, inner_rect, inner_rect, SK_ColorCYAN, false); |
123 inner_quad->visible_rect = visible_rect; | 121 inner_quad->visible_rect = visible_rect; |
124 root_render_pass->AppendQuad(inner_quad.PassAs<DrawQuad>()); | 122 SolidColorDrawQuad* outer_quad = |
125 root_render_pass->AppendQuad(outer_quad.PassAs<DrawQuad>()); | 123 root_render_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); |
| 124 outer_quad->SetNew( |
| 125 shared_quad_state, outer_rect, outer_rect, SK_ColorYELLOW, false); |
126 | 126 |
127 RenderPassList list; | 127 RenderPassList list; |
128 list.push_back(root_render_pass.PassAs<RenderPass>()); | 128 list.push_back(root_render_pass.PassAs<RenderPass>()); |
129 | 129 |
130 float device_scale_factor = 1.f; | 130 float device_scale_factor = 1.f; |
131 gfx::Rect device_viewport_rect(outer_size); | 131 gfx::Rect device_viewport_rect(outer_size); |
132 scoped_ptr<SkBitmap> output = | 132 scoped_ptr<SkBitmap> output = |
133 DrawAndCopyOutput(&list, device_scale_factor, device_viewport_rect); | 133 DrawAndCopyOutput(&list, device_scale_factor, device_viewport_rect); |
134 EXPECT_EQ(outer_rect.width(), output->info().fWidth); | 134 EXPECT_EQ(outer_rect.width(), output->info().fWidth); |
135 EXPECT_EQ(outer_rect.width(), output->info().fHeight); | 135 EXPECT_EQ(outer_rect.width(), output->info().fHeight); |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
190 SharedQuadState* shared_quad_state = | 190 SharedQuadState* shared_quad_state = |
191 root_render_pass->CreateAndAppendSharedQuadState(); | 191 root_render_pass->CreateAndAppendSharedQuadState(); |
192 shared_quad_state->SetAll(gfx::Transform(), | 192 shared_quad_state->SetAll(gfx::Transform(), |
193 outer_size, | 193 outer_size, |
194 outer_rect, | 194 outer_rect, |
195 outer_rect, | 195 outer_rect, |
196 false, | 196 false, |
197 1.0, | 197 1.0, |
198 SkXfermode::kSrcOver_Mode, | 198 SkXfermode::kSrcOver_Mode, |
199 0); | 199 0); |
200 scoped_ptr<TileDrawQuad> outer_quad = TileDrawQuad::Create(); | 200 TileDrawQuad* inner_quad = |
201 outer_quad->SetNew(shared_quad_state, | 201 root_render_pass->CreateAndAppendDrawQuad<TileDrawQuad>(); |
202 outer_rect, | |
203 outer_rect, | |
204 outer_rect, | |
205 resource_yellow, | |
206 gfx::RectF(outer_size), | |
207 outer_size, | |
208 false); | |
209 scoped_ptr<TileDrawQuad> inner_quad = TileDrawQuad::Create(); | |
210 inner_quad->SetNew(shared_quad_state, | 202 inner_quad->SetNew(shared_quad_state, |
211 inner_rect, | 203 inner_rect, |
212 inner_rect, | 204 inner_rect, |
213 inner_rect, | 205 inner_rect, |
214 resource_cyan, | 206 resource_cyan, |
215 gfx::RectF(inner_size), | 207 gfx::RectF(inner_size), |
216 inner_size, | 208 inner_size, |
217 false); | 209 false); |
218 root_render_pass->AppendQuad(inner_quad.PassAs<DrawQuad>()); | 210 TileDrawQuad* outer_quad = |
219 root_render_pass->AppendQuad(outer_quad.PassAs<DrawQuad>()); | 211 root_render_pass->CreateAndAppendDrawQuad<TileDrawQuad>(); |
| 212 outer_quad->SetNew(shared_quad_state, |
| 213 outer_rect, |
| 214 outer_rect, |
| 215 outer_rect, |
| 216 resource_yellow, |
| 217 gfx::RectF(outer_size), |
| 218 outer_size, |
| 219 false); |
220 | 220 |
221 RenderPassList list; | 221 RenderPassList list; |
222 list.push_back(root_render_pass.PassAs<RenderPass>()); | 222 list.push_back(root_render_pass.PassAs<RenderPass>()); |
223 | 223 |
224 float device_scale_factor = 1.f; | 224 float device_scale_factor = 1.f; |
225 gfx::Rect device_viewport_rect(outer_size); | 225 gfx::Rect device_viewport_rect(outer_size); |
226 scoped_ptr<SkBitmap> output = | 226 scoped_ptr<SkBitmap> output = |
227 DrawAndCopyOutput(&list, device_scale_factor, device_viewport_rect); | 227 DrawAndCopyOutput(&list, device_scale_factor, device_viewport_rect); |
228 EXPECT_EQ(outer_rect.width(), output->info().fWidth); | 228 EXPECT_EQ(outer_rect.width(), output->info().fWidth); |
229 EXPECT_EQ(outer_rect.width(), output->info().fHeight); | 229 EXPECT_EQ(outer_rect.width(), output->info().fHeight); |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
272 SharedQuadState* shared_quad_state = | 272 SharedQuadState* shared_quad_state = |
273 root_render_pass->CreateAndAppendSharedQuadState(); | 273 root_render_pass->CreateAndAppendSharedQuadState(); |
274 shared_quad_state->SetAll(gfx::Transform(), | 274 shared_quad_state->SetAll(gfx::Transform(), |
275 tile_size, | 275 tile_size, |
276 tile_rect, | 276 tile_rect, |
277 tile_rect, | 277 tile_rect, |
278 false, | 278 false, |
279 1.0, | 279 1.0, |
280 SkXfermode::kSrcOver_Mode, | 280 SkXfermode::kSrcOver_Mode, |
281 0); | 281 0); |
282 scoped_ptr<TileDrawQuad> quad = TileDrawQuad::Create(); | 282 TileDrawQuad* quad = |
| 283 root_render_pass->CreateAndAppendDrawQuad<TileDrawQuad>(); |
283 quad->SetNew(shared_quad_state, | 284 quad->SetNew(shared_quad_state, |
284 tile_rect, | 285 tile_rect, |
285 tile_rect, | 286 tile_rect, |
286 tile_rect, | 287 tile_rect, |
287 resource_cyan, | 288 resource_cyan, |
288 gfx::RectF(tile_size), | 289 gfx::RectF(tile_size), |
289 tile_size, | 290 tile_size, |
290 false); | 291 false); |
291 quad->visible_rect = visible_rect; | 292 quad->visible_rect = visible_rect; |
292 root_render_pass->AppendQuad(quad.PassAs<DrawQuad>()); | |
293 | 293 |
294 RenderPassList list; | 294 RenderPassList list; |
295 list.push_back(root_render_pass.PassAs<RenderPass>()); | 295 list.push_back(root_render_pass.PassAs<RenderPass>()); |
296 | 296 |
297 float device_scale_factor = 1.f; | 297 float device_scale_factor = 1.f; |
298 gfx::Rect device_viewport_rect(tile_size); | 298 gfx::Rect device_viewport_rect(tile_size); |
299 scoped_ptr<SkBitmap> output = | 299 scoped_ptr<SkBitmap> output = |
300 DrawAndCopyOutput(&list, device_scale_factor, device_viewport_rect); | 300 DrawAndCopyOutput(&list, device_scale_factor, device_viewport_rect); |
301 EXPECT_EQ(tile_rect.width(), output->info().fWidth); | 301 EXPECT_EQ(tile_rect.width(), output->info().fWidth); |
302 EXPECT_EQ(tile_rect.width(), output->info().fHeight); | 302 EXPECT_EQ(tile_rect.width(), output->info().fHeight); |
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
425 EXPECT_EQ( | 425 EXPECT_EQ( |
426 SK_ColorMAGENTA, | 426 SK_ColorMAGENTA, |
427 output->getColor(interior_visible_rect.x(), interior_visible_rect.y())); | 427 output->getColor(interior_visible_rect.x(), interior_visible_rect.y())); |
428 EXPECT_EQ(SK_ColorMAGENTA, | 428 EXPECT_EQ(SK_ColorMAGENTA, |
429 output->getColor(interior_visible_rect.right() - 1, | 429 output->getColor(interior_visible_rect.right() - 1, |
430 interior_visible_rect.bottom() - 1)); | 430 interior_visible_rect.bottom() - 1)); |
431 } | 431 } |
432 | 432 |
433 } // namespace | 433 } // namespace |
434 } // namespace cc | 434 } // namespace cc |
OLD | NEW |