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

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

Issue 1155553006: Revert of cc: Fix size_t to int truncations in layers/ output/ playback/ quads/ (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 6 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
« no previous file with comments | « cc/quads/render_pass.h ('k') | cc/quads/render_pass_draw_quad.cc » ('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 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 <algorithm> 7 #include <algorithm>
8 8
9 #include "base/numerics/safe_conversions.h"
10 #include "base/trace_event/trace_event_argument.h" 9 #include "base/trace_event/trace_event_argument.h"
11 #include "base/values.h" 10 #include "base/values.h"
12 #include "cc/base/math_util.h" 11 #include "cc/base/math_util.h"
13 #include "cc/debug/traced_value.h" 12 #include "cc/debug/traced_value.h"
14 #include "cc/output/copy_output_request.h" 13 #include "cc/output/copy_output_request.h"
15 #include "cc/quads/checkerboard_draw_quad.h" 14 #include "cc/quads/checkerboard_draw_quad.h"
16 #include "cc/quads/debug_border_draw_quad.h" 15 #include "cc/quads/debug_border_draw_quad.h"
17 #include "cc/quads/draw_quad.h" 16 #include "cc/quads/draw_quad.h"
18 #include "cc/quads/io_surface_draw_quad.h" 17 #include "cc/quads/io_surface_draw_quad.h"
19 #include "cc/quads/largest_draw_quad.h" 18 #include "cc/quads/largest_draw_quad.h"
(...skipping 26 matching lines...) Expand all
46 return make_scoped_ptr(new RenderPass(num_layers)); 45 return make_scoped_ptr(new RenderPass(num_layers));
47 } 46 }
48 47
49 scoped_ptr<RenderPass> RenderPass::Create(size_t shared_quad_state_list_size, 48 scoped_ptr<RenderPass> RenderPass::Create(size_t shared_quad_state_list_size,
50 size_t quad_list_size) { 49 size_t quad_list_size) {
51 return make_scoped_ptr( 50 return make_scoped_ptr(
52 new RenderPass(shared_quad_state_list_size, quad_list_size)); 51 new RenderPass(shared_quad_state_list_size, quad_list_size));
53 } 52 }
54 53
55 RenderPass::RenderPass() 54 RenderPass::RenderPass()
56 : has_transparent_background(true), 55 : id(RenderPassId(-1, -1)),
56 has_transparent_background(true),
57 quad_list(kDefaultNumQuadsToReserve), 57 quad_list(kDefaultNumQuadsToReserve),
58 shared_quad_state_list(sizeof(SharedQuadState), 58 shared_quad_state_list(sizeof(SharedQuadState),
59 kDefaultNumSharedQuadStatesToReserve) { 59 kDefaultNumSharedQuadStatesToReserve) {
60 } 60 }
61 61
62 // Each layer usually produces one shared quad state, so the number of layers 62 // Each layer usually produces one shared quad state, so the number of layers
63 // is a good hint for what to reserve here. 63 // is a good hint for what to reserve here.
64 RenderPass::RenderPass(size_t num_layers) 64 RenderPass::RenderPass(size_t num_layers)
65 : has_transparent_background(true), 65 : id(RenderPassId(-1, -1)),
66 has_transparent_background(true),
66 quad_list(kDefaultNumQuadsToReserve), 67 quad_list(kDefaultNumQuadsToReserve),
67 shared_quad_state_list(sizeof(SharedQuadState), num_layers) { 68 shared_quad_state_list(sizeof(SharedQuadState), num_layers) {
68 } 69 }
69 70
70 RenderPass::RenderPass(size_t shared_quad_state_list_size, 71 RenderPass::RenderPass(size_t shared_quad_state_list_size,
71 size_t quad_list_size) 72 size_t quad_list_size)
72 : has_transparent_background(true), 73 : id(RenderPassId(-1, -1)),
74 has_transparent_background(true),
73 quad_list(quad_list_size), 75 quad_list(quad_list_size),
74 shared_quad_state_list(sizeof(SharedQuadState), 76 shared_quad_state_list(sizeof(SharedQuadState),
75 shared_quad_state_list_size) { 77 shared_quad_state_list_size) {
76 } 78 }
77 79
78 RenderPass::~RenderPass() { 80 RenderPass::~RenderPass() {
79 TRACE_EVENT_OBJECT_DELETED_WITH_ID( 81 TRACE_EVENT_OBJECT_DELETED_WITH_ID(
80 TRACE_DISABLED_BY_DEFAULT("cc.debug.quads"), 82 TRACE_DISABLED_BY_DEFAULT("cc.debug.quads"),
81 "cc::RenderPass", id.AsTracingId()); 83 "cc::RenderPass", id.AsTracingId());
82 } 84 }
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
139 } 141 }
140 out->push_back(copy_pass.Pass()); 142 out->push_back(copy_pass.Pass());
141 } 143 }
142 } 144 }
143 145
144 void RenderPass::SetNew(RenderPassId id, 146 void RenderPass::SetNew(RenderPassId id,
145 const gfx::Rect& output_rect, 147 const gfx::Rect& output_rect,
146 const gfx::Rect& damage_rect, 148 const gfx::Rect& damage_rect,
147 const gfx::Transform& transform_to_root_target) { 149 const gfx::Transform& transform_to_root_target) {
148 DCHECK_GT(id.layer_id, 0); 150 DCHECK_GT(id.layer_id, 0);
151 DCHECK_GE(id.index, 0);
149 DCHECK(damage_rect.IsEmpty() || output_rect.Contains(damage_rect)) 152 DCHECK(damage_rect.IsEmpty() || output_rect.Contains(damage_rect))
150 << "damage_rect: " << damage_rect.ToString() 153 << "damage_rect: " << damage_rect.ToString()
151 << " output_rect: " << output_rect.ToString(); 154 << " output_rect: " << output_rect.ToString();
152 155
153 this->id = id; 156 this->id = id;
154 this->output_rect = output_rect; 157 this->output_rect = output_rect;
155 this->damage_rect = damage_rect; 158 this->damage_rect = damage_rect;
156 this->transform_to_root_target = transform_to_root_target; 159 this->transform_to_root_target = transform_to_root_target;
157 160
158 DCHECK(quad_list.empty()); 161 DCHECK(quad_list.empty());
159 DCHECK(shared_quad_state_list.empty()); 162 DCHECK(shared_quad_state_list.empty());
160 } 163 }
161 164
162 void RenderPass::SetAll(RenderPassId id, 165 void RenderPass::SetAll(RenderPassId id,
163 const gfx::Rect& output_rect, 166 const gfx::Rect& output_rect,
164 const gfx::Rect& damage_rect, 167 const gfx::Rect& damage_rect,
165 const gfx::Transform& transform_to_root_target, 168 const gfx::Transform& transform_to_root_target,
166 bool has_transparent_background) { 169 bool has_transparent_background) {
167 DCHECK_GT(id.layer_id, 0); 170 DCHECK_GT(id.layer_id, 0);
171 DCHECK_GE(id.index, 0);
168 172
169 this->id = id; 173 this->id = id;
170 this->output_rect = output_rect; 174 this->output_rect = output_rect;
171 this->damage_rect = damage_rect; 175 this->damage_rect = damage_rect;
172 this->transform_to_root_target = transform_to_root_target; 176 this->transform_to_root_target = transform_to_root_target;
173 this->has_transparent_background = has_transparent_background; 177 this->has_transparent_background = has_transparent_background;
174 178
175 DCHECK(quad_list.empty()); 179 DCHECK(quad_list.empty());
176 DCHECK(shared_quad_state_list.empty()); 180 DCHECK(shared_quad_state_list.empty());
177 } 181 }
178 182
179 void RenderPass::AsValueInto(base::trace_event::TracedValue* value) const { 183 void RenderPass::AsValueInto(base::trace_event::TracedValue* value) const {
180 MathUtil::AddToTracedValue("output_rect", output_rect, value); 184 MathUtil::AddToTracedValue("output_rect", output_rect, value);
181 MathUtil::AddToTracedValue("damage_rect", damage_rect, value); 185 MathUtil::AddToTracedValue("damage_rect", damage_rect, value);
182 186
183 value->SetBoolean("has_transparent_background", has_transparent_background); 187 value->SetBoolean("has_transparent_background", has_transparent_background);
184 value->SetInteger("copy_requests", 188 value->SetInteger("copy_requests", copy_requests.size());
185 base::saturated_cast<int>(copy_requests.size()));
186 189
187 value->BeginArray("shared_quad_state_list"); 190 value->BeginArray("shared_quad_state_list");
188 for (const auto& shared_quad_state : shared_quad_state_list) { 191 for (const auto& shared_quad_state : shared_quad_state_list) {
189 value->BeginDictionary(); 192 value->BeginDictionary();
190 shared_quad_state->AsValueInto(value); 193 shared_quad_state->AsValueInto(value);
191 value->EndDictionary(); 194 value->EndDictionary();
192 } 195 }
193 value->EndArray(); 196 value->EndArray();
194 197
195 value->BeginArray("quad_list"); 198 value->BeginArray("quad_list");
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
260 case DrawQuad::RENDER_PASS: 263 case DrawQuad::RENDER_PASS:
261 case DrawQuad::INVALID: 264 case DrawQuad::INVALID:
262 LOG(FATAL) << "Invalid DrawQuad material " << quad->material; 265 LOG(FATAL) << "Invalid DrawQuad material " << quad->material;
263 break; 266 break;
264 } 267 }
265 quad_list.back()->shared_quad_state = shared_quad_state; 268 quad_list.back()->shared_quad_state = shared_quad_state;
266 return quad_list.back(); 269 return quad_list.back();
267 } 270 }
268 271
269 } // namespace cc 272 } // namespace cc
OLDNEW
« no previous file with comments | « cc/quads/render_pass.h ('k') | cc/quads/render_pass_draw_quad.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698