| 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/quads/render_pass.h" | 5 #include "cc/quads/render_pass.h" |
| 6 | 6 |
| 7 #include "cc/base/math_util.h" | 7 #include "cc/base/math_util.h" |
| 8 #include "cc/base/scoped_ptr_vector.h" | 8 #include "cc/base/scoped_ptr_vector.h" |
| 9 #include "cc/output/copy_output_request.h" | 9 #include "cc/output/copy_output_request.h" |
| 10 #include "cc/quads/checkerboard_draw_quad.h" | 10 #include "cc/quads/checkerboard_draw_quad.h" |
| (...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 85 gfx::Size(), | 85 gfx::Size(), |
| 86 gfx::Rect(), | 86 gfx::Rect(), |
| 87 gfx::Rect(), | 87 gfx::Rect(), |
| 88 false, | 88 false, |
| 89 1, | 89 1, |
| 90 SkXfermode::kSrcOver_Mode, | 90 SkXfermode::kSrcOver_Mode, |
| 91 0); | 91 0); |
| 92 | 92 |
| 93 CheckerboardDrawQuad* checkerboard_quad = | 93 CheckerboardDrawQuad* checkerboard_quad = |
| 94 pass->CreateAndAppendDrawQuad<CheckerboardDrawQuad>(); | 94 pass->CreateAndAppendDrawQuad<CheckerboardDrawQuad>(); |
| 95 checkerboard_quad->SetNew( | 95 checkerboard_quad->SetNew(pass->shared_quad_state_list.back(), gfx::Rect(), |
| 96 pass->shared_quad_state_list.back(), gfx::Rect(), gfx::Rect(), SkColor()); | 96 gfx::Rect(), SkColor(), 1.f); |
| 97 | 97 |
| 98 RenderPassId new_id(63, 4); | 98 RenderPassId new_id(63, 4); |
| 99 | 99 |
| 100 scoped_ptr<RenderPass> copy = pass->Copy(new_id); | 100 scoped_ptr<RenderPass> copy = pass->Copy(new_id); |
| 101 EXPECT_EQ(new_id, copy->id); | 101 EXPECT_EQ(new_id, copy->id); |
| 102 EXPECT_EQ(pass->output_rect, copy->output_rect); | 102 EXPECT_EQ(pass->output_rect, copy->output_rect); |
| 103 EXPECT_EQ(pass->transform_to_root_target, copy->transform_to_root_target); | 103 EXPECT_EQ(pass->transform_to_root_target, copy->transform_to_root_target); |
| 104 EXPECT_EQ(pass->damage_rect, copy->damage_rect); | 104 EXPECT_EQ(pass->damage_rect, copy->damage_rect); |
| 105 EXPECT_EQ(pass->has_transparent_background, copy->has_transparent_background); | 105 EXPECT_EQ(pass->has_transparent_background, copy->has_transparent_background); |
| 106 EXPECT_EQ(0u, copy->quad_list.size()); | 106 EXPECT_EQ(0u, copy->quad_list.size()); |
| (...skipping 29 matching lines...) Expand all Loading... |
| 136 gfx::Rect(), | 136 gfx::Rect(), |
| 137 gfx::Rect(), | 137 gfx::Rect(), |
| 138 false, | 138 false, |
| 139 1, | 139 1, |
| 140 SkXfermode::kSrcOver_Mode, | 140 SkXfermode::kSrcOver_Mode, |
| 141 0); | 141 0); |
| 142 | 142 |
| 143 CheckerboardDrawQuad* checkerboard_quad1 = | 143 CheckerboardDrawQuad* checkerboard_quad1 = |
| 144 pass->CreateAndAppendDrawQuad<CheckerboardDrawQuad>(); | 144 pass->CreateAndAppendDrawQuad<CheckerboardDrawQuad>(); |
| 145 checkerboard_quad1->SetNew(pass->shared_quad_state_list.back(), | 145 checkerboard_quad1->SetNew(pass->shared_quad_state_list.back(), |
| 146 gfx::Rect(1, 1, 1, 1), | 146 gfx::Rect(1, 1, 1, 1), gfx::Rect(1, 1, 1, 1), |
| 147 gfx::Rect(1, 1, 1, 1), | 147 SkColor(), 1.f); |
| 148 SkColor()); | |
| 149 | 148 |
| 150 CheckerboardDrawQuad* checkerboard_quad2 = | 149 CheckerboardDrawQuad* checkerboard_quad2 = |
| 151 pass->CreateAndAppendDrawQuad<CheckerboardDrawQuad>(); | 150 pass->CreateAndAppendDrawQuad<CheckerboardDrawQuad>(); |
| 152 checkerboard_quad2->SetNew(pass->shared_quad_state_list.back(), | 151 checkerboard_quad2->SetNew(pass->shared_quad_state_list.back(), |
| 153 gfx::Rect(2, 2, 2, 2), | 152 gfx::Rect(2, 2, 2, 2), gfx::Rect(2, 2, 2, 2), |
| 154 gfx::Rect(2, 2, 2, 2), | 153 SkColor(), 1.f); |
| 155 SkColor()); | |
| 156 | 154 |
| 157 // And two quads using another shared state. | 155 // And two quads using another shared state. |
| 158 SharedQuadState* shared_state2 = pass->CreateAndAppendSharedQuadState(); | 156 SharedQuadState* shared_state2 = pass->CreateAndAppendSharedQuadState(); |
| 159 shared_state2->SetAll(gfx::Transform(), | 157 shared_state2->SetAll(gfx::Transform(), |
| 160 gfx::Size(2, 2), | 158 gfx::Size(2, 2), |
| 161 gfx::Rect(), | 159 gfx::Rect(), |
| 162 gfx::Rect(), | 160 gfx::Rect(), |
| 163 false, | 161 false, |
| 164 1, | 162 1, |
| 165 SkXfermode::kSrcOver_Mode, | 163 SkXfermode::kSrcOver_Mode, |
| 166 0); | 164 0); |
| 167 | 165 |
| 168 CheckerboardDrawQuad* checkerboard_quad3 = | 166 CheckerboardDrawQuad* checkerboard_quad3 = |
| 169 pass->CreateAndAppendDrawQuad<CheckerboardDrawQuad>(); | 167 pass->CreateAndAppendDrawQuad<CheckerboardDrawQuad>(); |
| 170 checkerboard_quad3->SetNew(pass->shared_quad_state_list.back(), | 168 checkerboard_quad3->SetNew(pass->shared_quad_state_list.back(), |
| 171 gfx::Rect(3, 3, 3, 3), | 169 gfx::Rect(3, 3, 3, 3), gfx::Rect(3, 3, 3, 3), |
| 172 gfx::Rect(3, 3, 3, 3), | 170 SkColor(), 1.f); |
| 173 SkColor()); | |
| 174 | 171 |
| 175 CheckerboardDrawQuad* checkerboard_quad4 = | 172 CheckerboardDrawQuad* checkerboard_quad4 = |
| 176 pass->CreateAndAppendDrawQuad<CheckerboardDrawQuad>(); | 173 pass->CreateAndAppendDrawQuad<CheckerboardDrawQuad>(); |
| 177 checkerboard_quad4->SetNew(pass->shared_quad_state_list.back(), | 174 checkerboard_quad4->SetNew(pass->shared_quad_state_list.back(), |
| 178 gfx::Rect(4, 4, 4, 4), | 175 gfx::Rect(4, 4, 4, 4), gfx::Rect(4, 4, 4, 4), |
| 179 gfx::Rect(4, 4, 4, 4), | 176 SkColor(), 1.f); |
| 180 SkColor()); | |
| 181 | 177 |
| 182 // A second render pass with a quad. | 178 // A second render pass with a quad. |
| 183 RenderPassId contrib_id(4, 1); | 179 RenderPassId contrib_id(4, 1); |
| 184 gfx::Rect contrib_output_rect(10, 15, 12, 17); | 180 gfx::Rect contrib_output_rect(10, 15, 12, 17); |
| 185 gfx::Transform contrib_transform_to_root = | 181 gfx::Transform contrib_transform_to_root = |
| 186 gfx::Transform(1.0, 0.5, 0.5, -0.5, -1.0, 0.0); | 182 gfx::Transform(1.0, 0.5, 0.5, -0.5, -1.0, 0.0); |
| 187 gfx::Rect contrib_damage_rect(11, 16, 10, 15); | 183 gfx::Rect contrib_damage_rect(11, 16, 10, 15); |
| 188 bool contrib_has_transparent_background = true; | 184 bool contrib_has_transparent_background = true; |
| 189 | 185 |
| 190 scoped_ptr<TestRenderPass> contrib = TestRenderPass::Create(); | 186 scoped_ptr<TestRenderPass> contrib = TestRenderPass::Create(); |
| (...skipping 10 matching lines...) Expand all Loading... |
| 201 gfx::Rect(), | 197 gfx::Rect(), |
| 202 gfx::Rect(), | 198 gfx::Rect(), |
| 203 false, | 199 false, |
| 204 1, | 200 1, |
| 205 SkXfermode::kSrcOver_Mode, | 201 SkXfermode::kSrcOver_Mode, |
| 206 0); | 202 0); |
| 207 | 203 |
| 208 CheckerboardDrawQuad* contrib_quad = | 204 CheckerboardDrawQuad* contrib_quad = |
| 209 contrib->CreateAndAppendDrawQuad<CheckerboardDrawQuad>(); | 205 contrib->CreateAndAppendDrawQuad<CheckerboardDrawQuad>(); |
| 210 contrib_quad->SetNew(contrib->shared_quad_state_list.back(), | 206 contrib_quad->SetNew(contrib->shared_quad_state_list.back(), |
| 211 gfx::Rect(3, 3, 3, 3), | 207 gfx::Rect(3, 3, 3, 3), gfx::Rect(3, 3, 3, 3), SkColor(), |
| 212 gfx::Rect(3, 3, 3, 3), | 208 1.f); |
| 213 SkColor()); | |
| 214 | 209 |
| 215 // And a RenderPassDrawQuad for the contributing pass. | 210 // And a RenderPassDrawQuad for the contributing pass. |
| 216 scoped_ptr<RenderPassDrawQuad> pass_quad = | 211 scoped_ptr<RenderPassDrawQuad> pass_quad = |
| 217 make_scoped_ptr(new RenderPassDrawQuad); | 212 make_scoped_ptr(new RenderPassDrawQuad); |
| 218 pass_quad->SetNew(pass->shared_quad_state_list.back(), | 213 pass_quad->SetNew(pass->shared_quad_state_list.back(), |
| 219 contrib_output_rect, | 214 contrib_output_rect, |
| 220 contrib_output_rect, | 215 contrib_output_rect, |
| 221 contrib_id, | 216 contrib_id, |
| 222 0, | 217 0, |
| 223 gfx::Vector2dF(), | 218 gfx::Vector2dF(), |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 260 gfx::Rect(), | 255 gfx::Rect(), |
| 261 gfx::Rect(), | 256 gfx::Rect(), |
| 262 false, | 257 false, |
| 263 1, | 258 1, |
| 264 SkXfermode::kSrcOver_Mode, | 259 SkXfermode::kSrcOver_Mode, |
| 265 0); | 260 0); |
| 266 | 261 |
| 267 CheckerboardDrawQuad* checkerboard_quad1 = | 262 CheckerboardDrawQuad* checkerboard_quad1 = |
| 268 pass->CreateAndAppendDrawQuad<CheckerboardDrawQuad>(); | 263 pass->CreateAndAppendDrawQuad<CheckerboardDrawQuad>(); |
| 269 checkerboard_quad1->SetNew(pass->shared_quad_state_list.back(), | 264 checkerboard_quad1->SetNew(pass->shared_quad_state_list.back(), |
| 270 gfx::Rect(1, 1, 1, 1), | 265 gfx::Rect(1, 1, 1, 1), gfx::Rect(1, 1, 1, 1), |
| 271 gfx::Rect(1, 1, 1, 1), | 266 SkColor(), 1.f); |
| 272 SkColor()); | |
| 273 | 267 |
| 274 // A shared state with no quads, they were culled. | 268 // A shared state with no quads, they were culled. |
| 275 SharedQuadState* shared_state2 = pass->CreateAndAppendSharedQuadState(); | 269 SharedQuadState* shared_state2 = pass->CreateAndAppendSharedQuadState(); |
| 276 shared_state2->SetAll(gfx::Transform(), | 270 shared_state2->SetAll(gfx::Transform(), |
| 277 gfx::Size(2, 2), | 271 gfx::Size(2, 2), |
| 278 gfx::Rect(), | 272 gfx::Rect(), |
| 279 gfx::Rect(), | 273 gfx::Rect(), |
| 280 false, | 274 false, |
| 281 1, | 275 1, |
| 282 SkXfermode::kSrcOver_Mode, | 276 SkXfermode::kSrcOver_Mode, |
| (...skipping 17 matching lines...) Expand all Loading... |
| 300 gfx::Rect(), | 294 gfx::Rect(), |
| 301 gfx::Rect(), | 295 gfx::Rect(), |
| 302 false, | 296 false, |
| 303 1, | 297 1, |
| 304 SkXfermode::kSrcOver_Mode, | 298 SkXfermode::kSrcOver_Mode, |
| 305 0); | 299 0); |
| 306 | 300 |
| 307 CheckerboardDrawQuad* checkerboard_quad2 = | 301 CheckerboardDrawQuad* checkerboard_quad2 = |
| 308 pass->CreateAndAppendDrawQuad<CheckerboardDrawQuad>(); | 302 pass->CreateAndAppendDrawQuad<CheckerboardDrawQuad>(); |
| 309 checkerboard_quad2->SetNew(pass->shared_quad_state_list.back(), | 303 checkerboard_quad2->SetNew(pass->shared_quad_state_list.back(), |
| 310 gfx::Rect(3, 3, 3, 3), | 304 gfx::Rect(3, 3, 3, 3), gfx::Rect(3, 3, 3, 3), |
| 311 gfx::Rect(3, 3, 3, 3), | 305 SkColor(), 1.f); |
| 312 SkColor()); | |
| 313 | 306 |
| 314 pass_list.push_back(pass.Pass()); | 307 pass_list.push_back(pass.Pass()); |
| 315 | 308 |
| 316 // Make a copy with CopyAll(). | 309 // Make a copy with CopyAll(). |
| 317 RenderPassList copy_list; | 310 RenderPassList copy_list; |
| 318 RenderPass::CopyAll(pass_list, ©_list); | 311 RenderPass::CopyAll(pass_list, ©_list); |
| 319 | 312 |
| 320 CompareRenderPassLists(pass_list, copy_list); | 313 CompareRenderPassLists(pass_list, copy_list); |
| 321 } | 314 } |
| 322 | 315 |
| 323 } // namespace | 316 } // namespace |
| 324 } // namespace cc | 317 } // namespace cc |
| OLD | NEW |