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

Side by Side Diff: cc/quads/render_pass.cc

Issue 380893004: Move Copy method from DrawQuad to RenderPass (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@moreRP4DQ
Patch Set: add RP to DQ_unittests to test Copy Created 6 years, 5 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
OLDNEW
1 // Copyright 2011 The Chromium Authors. All rights reserved. 1 // Copyright 2011 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 "base/values.h" 7 #include "base/values.h"
8 #include "cc/base/math_util.h" 8 #include "cc/base/math_util.h"
9 #include "cc/debug/traced_value.h" 9 #include "cc/debug/traced_value.h"
10 #include "cc/output/copy_output_request.h" 10 #include "cc/output/copy_output_request.h"
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
100 DCHECK_LT(sqs_i, source->shared_quad_state_list.size()); 100 DCHECK_LT(sqs_i, source->shared_quad_state_list.size());
101 } 101 }
102 DCHECK(source->quad_list[i]->shared_quad_state == 102 DCHECK(source->quad_list[i]->shared_quad_state ==
103 source->shared_quad_state_list[sqs_i]); 103 source->shared_quad_state_list[sqs_i]);
104 104
105 DrawQuad* quad = source->quad_list[i]; 105 DrawQuad* quad = source->quad_list[i];
106 106
107 if (quad->material == DrawQuad::RENDER_PASS) { 107 if (quad->material == DrawQuad::RENDER_PASS) {
108 const RenderPassDrawQuad* pass_quad = 108 const RenderPassDrawQuad* pass_quad =
109 RenderPassDrawQuad::MaterialCast(quad); 109 RenderPassDrawQuad::MaterialCast(quad);
110 copy_pass->quad_list.push_back( 110 RenderPassDrawQuad* copy_quad =
111 pass_quad->Copy(copy_pass->shared_quad_state_list[sqs_i], 111 copy_pass->CopyFromAndAppendTypedDrawQuad<RenderPassDrawQuad>(
danakj 2014/07/10 19:53:25 Why not copy_pass->CopyFromAndAppendRenderPassDraw
weiliangc 2014/07/11 15:59:12 Done.
112 pass_quad->render_pass_id).PassAs<DrawQuad>()); 112 pass_quad);
113 copy_quad->shared_quad_state = copy_pass->shared_quad_state_list[sqs_i];
114 copy_quad->render_pass_id = pass_quad->render_pass_id;
113 } else { 115 } else {
114 copy_pass->quad_list.push_back(source->quad_list[i]->Copy( 116 copy_pass->CopyFromAndAppendDrawQuad(
115 copy_pass->shared_quad_state_list[sqs_i])); 117 quad, copy_pass->shared_quad_state_list[sqs_i]);
116 } 118 }
117 } 119 }
118 out->push_back(copy_pass.Pass()); 120 out->push_back(copy_pass.Pass());
119 } 121 }
120 } 122 }
121 123
122 void RenderPass::SetNew(Id id, 124 void RenderPass::SetNew(Id id,
123 const gfx::Rect& output_rect, 125 const gfx::Rect& output_rect,
124 const gfx::Rect& damage_rect, 126 const gfx::Rect& damage_rect,
125 const gfx::Transform& transform_to_root_target) { 127 const gfx::Transform& transform_to_root_target) {
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
233 case DrawQuad::RENDER_PASS: 235 case DrawQuad::RENDER_PASS:
234 case DrawQuad::INVALID: 236 case DrawQuad::INVALID:
235 LOG(FATAL) << "Invalid DrawQuad material " << quad->material; 237 LOG(FATAL) << "Invalid DrawQuad material " << quad->material;
236 break; 238 break;
237 } 239 }
238 quad_list.back()->shared_quad_state = shared_quad_state; 240 quad_list.back()->shared_quad_state = shared_quad_state;
239 return quad_list.back(); 241 return quad_list.back();
240 } 242 }
241 243
242 } // namespace cc 244 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698