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

Side by Side Diff: cc/surfaces/surface_aggregator.cc

Issue 1175113010: cc: Rename visible_content_rect and content stuff on quads. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rename-visible-content-rect: moreandroid 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/shared_quad_state.cc ('k') | cc/surfaces/surface_aggregator_test_helpers.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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/surfaces/surface_aggregator.h" 5 #include "cc/surfaces/surface_aggregator.h"
6 6
7 #include <map> 7 #include <map>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/containers/hash_tables.h" 10 #include "base/containers/hash_tables.h"
(...skipping 241 matching lines...) Expand 10 before | Expand all | Expand 10 after
252 copy_pass->SetAll(remapped_pass_id, source.output_rect, gfx::Rect(), 252 copy_pass->SetAll(remapped_pass_id, source.output_rect, gfx::Rect(),
253 source.transform_to_root_target, 253 source.transform_to_root_target,
254 source.has_transparent_background); 254 source.has_transparent_background);
255 255
256 MoveMatchingRequests(source.id, &copy_requests, &copy_pass->copy_requests); 256 MoveMatchingRequests(source.id, &copy_requests, &copy_pass->copy_requests);
257 257
258 // Contributing passes aggregated in to the pass list need to take the 258 // Contributing passes aggregated in to the pass list need to take the
259 // transform of the surface quad into account to update their transform to 259 // transform of the surface quad into account to update their transform to
260 // the root surface. 260 // the root surface.
261 copy_pass->transform_to_root_target.ConcatTransform( 261 copy_pass->transform_to_root_target.ConcatTransform(
262 surface_quad->shared_quad_state->content_to_target_transform); 262 surface_quad->shared_quad_state->quad_to_target_transform);
263 copy_pass->transform_to_root_target.ConcatTransform(target_transform); 263 copy_pass->transform_to_root_target.ConcatTransform(target_transform);
264 copy_pass->transform_to_root_target.ConcatTransform( 264 copy_pass->transform_to_root_target.ConcatTransform(
265 dest_pass->transform_to_root_target); 265 dest_pass->transform_to_root_target);
266 266
267 CopyQuadsToPass(source.quad_list, source.shared_quad_state_list, 267 CopyQuadsToPass(source.quad_list, source.shared_quad_state_list,
268 child_to_parent_map, gfx::Transform(), ClipData(), 268 child_to_parent_map, gfx::Transform(), ClipData(),
269 copy_pass.get(), surface_id); 269 copy_pass.get(), surface_id);
270 270
271 if (j == referenced_passes.size() - 1) 271 if (j == referenced_passes.size() - 1)
272 surface_damage = gfx::UnionRects(surface_damage, copy_pass->damage_rect); 272 surface_damage = gfx::UnionRects(surface_damage, copy_pass->damage_rect);
273 273
274 dest_pass_list_->push_back(copy_pass.Pass()); 274 dest_pass_list_->push_back(copy_pass.Pass());
275 } 275 }
276 276
277 const RenderPass& last_pass = *render_pass_list.back(); 277 const RenderPass& last_pass = *render_pass_list.back();
278 if (merge_pass) { 278 if (merge_pass) {
279 // TODO(jamesr): Clean up last pass special casing. 279 // TODO(jamesr): Clean up last pass special casing.
280 const QuadList& quads = last_pass.quad_list; 280 const QuadList& quads = last_pass.quad_list;
281 281
282 gfx::Transform surface_transform = 282 gfx::Transform surface_transform =
283 surface_quad->shared_quad_state->content_to_target_transform; 283 surface_quad->shared_quad_state->quad_to_target_transform;
284 surface_transform.ConcatTransform(target_transform); 284 surface_transform.ConcatTransform(target_transform);
285 285
286 // Intersect the transformed visible rect and the clip rect to create a 286 // Intersect the transformed visible rect and the clip rect to create a
287 // smaller cliprect for the quad. 287 // smaller cliprect for the quad.
288 ClipData surface_quad_clip_rect( 288 ClipData surface_quad_clip_rect(
289 true, MathUtil::MapEnclosingClippedRect( 289 true, MathUtil::MapEnclosingClippedRect(
290 surface_quad->shared_quad_state->content_to_target_transform, 290 surface_quad->shared_quad_state->quad_to_target_transform,
291 surface_quad->visible_rect)); 291 surface_quad->visible_rect));
292 if (surface_quad->shared_quad_state->is_clipped) { 292 if (surface_quad->shared_quad_state->is_clipped) {
293 surface_quad_clip_rect.rect.Intersect( 293 surface_quad_clip_rect.rect.Intersect(
294 surface_quad->shared_quad_state->clip_rect); 294 surface_quad->shared_quad_state->clip_rect);
295 } 295 }
296 296
297 ClipData quads_clip = 297 ClipData quads_clip =
298 CalculateClipRect(clip_rect, surface_quad_clip_rect, target_transform); 298 CalculateClipRect(clip_rect, surface_quad_clip_rect, target_transform);
299 299
300 CopyQuadsToPass(quads, last_pass.shared_quad_state_list, 300 CopyQuadsToPass(quads, last_pass.shared_quad_state_list,
(...skipping 16 matching lines...) Expand all
317 0, 317 0,
318 gfx::Vector2dF(), 318 gfx::Vector2dF(),
319 gfx::Size(), 319 gfx::Size(),
320 FilterOperations(), 320 FilterOperations(),
321 gfx::Vector2dF(), 321 gfx::Vector2dF(),
322 FilterOperations()); 322 FilterOperations());
323 } 323 }
324 dest_pass->damage_rect = gfx::UnionRects( 324 dest_pass->damage_rect = gfx::UnionRects(
325 dest_pass->damage_rect, 325 dest_pass->damage_rect,
326 MathUtil::MapEnclosingClippedRect( 326 MathUtil::MapEnclosingClippedRect(
327 surface_quad->shared_quad_state->content_to_target_transform, 327 surface_quad->shared_quad_state->quad_to_target_transform,
328 surface_damage)); 328 surface_damage));
329 329
330 referenced_surfaces_.erase(it); 330 referenced_surfaces_.erase(it);
331 } 331 }
332 332
333 void SurfaceAggregator::CopySharedQuadState( 333 void SurfaceAggregator::CopySharedQuadState(
334 const SharedQuadState* source_sqs, 334 const SharedQuadState* source_sqs,
335 const gfx::Transform& target_transform, 335 const gfx::Transform& target_transform,
336 const ClipData& clip_rect, 336 const ClipData& clip_rect,
337 RenderPass* dest_render_pass) { 337 RenderPass* dest_render_pass) {
338 SharedQuadState* copy_shared_quad_state = 338 SharedQuadState* copy_shared_quad_state =
339 dest_render_pass->CreateAndAppendSharedQuadState(); 339 dest_render_pass->CreateAndAppendSharedQuadState();
340 copy_shared_quad_state->CopyFrom(source_sqs); 340 copy_shared_quad_state->CopyFrom(source_sqs);
341 // target_transform contains any transformation that may exist 341 // target_transform contains any transformation that may exist
342 // between the context that these quads are being copied from (i.e. the 342 // between the context that these quads are being copied from (i.e. the
343 // surface's draw transform when aggregated from within a surface) to the 343 // surface's draw transform when aggregated from within a surface) to the
344 // target space of the pass. This will be identity except when copying the 344 // target space of the pass. This will be identity except when copying the
345 // root draw pass from a surface into a pass when the surface draw quad's 345 // root draw pass from a surface into a pass when the surface draw quad's
346 // transform is not identity. 346 // transform is not identity.
347 copy_shared_quad_state->content_to_target_transform.ConcatTransform( 347 copy_shared_quad_state->quad_to_target_transform.ConcatTransform(
348 target_transform); 348 target_transform);
349 349
350 ClipData new_clip_rect = CalculateClipRect( 350 ClipData new_clip_rect = CalculateClipRect(
351 clip_rect, ClipData(source_sqs->is_clipped, source_sqs->clip_rect), 351 clip_rect, ClipData(source_sqs->is_clipped, source_sqs->clip_rect),
352 target_transform); 352 target_transform);
353 copy_shared_quad_state->is_clipped = new_clip_rect.is_clipped; 353 copy_shared_quad_state->is_clipped = new_clip_rect.is_clipped;
354 copy_shared_quad_state->clip_rect = new_clip_rect.rect; 354 copy_shared_quad_state->clip_rect = new_clip_rect.rect;
355 } 355 }
356 356
357 void SurfaceAggregator::CopyQuadsToPass( 357 void SurfaceAggregator::CopyQuadsToPass(
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
397 break; 397 break;
398 } 398 }
399 } 399 }
400 400
401 dest_quad = dest_pass->CopyFromAndAppendRenderPassDrawQuad( 401 dest_quad = dest_pass->CopyFromAndAppendRenderPassDrawQuad(
402 pass_quad, dest_pass->shared_quad_state_list.back(), 402 pass_quad, dest_pass->shared_quad_state_list.back(),
403 remapped_pass_id); 403 remapped_pass_id);
404 dest_pass->damage_rect = gfx::UnionRects( 404 dest_pass->damage_rect = gfx::UnionRects(
405 dest_pass->damage_rect, 405 dest_pass->damage_rect,
406 MathUtil::MapEnclosingClippedRect( 406 MathUtil::MapEnclosingClippedRect(
407 dest_quad->shared_quad_state->content_to_target_transform, 407 dest_quad->shared_quad_state->quad_to_target_transform,
408 pass_damage)); 408 pass_damage));
409 } else { 409 } else {
410 dest_quad = dest_pass->CopyFromAndAppendDrawQuad( 410 dest_quad = dest_pass->CopyFromAndAppendDrawQuad(
411 quad, dest_pass->shared_quad_state_list.back()); 411 quad, dest_pass->shared_quad_state_list.back());
412 } 412 }
413 if (!child_to_parent_map.empty()) { 413 if (!child_to_parent_map.empty()) {
414 for (ResourceId& resource_id : dest_quad->resources) { 414 for (ResourceId& resource_id : dest_quad->resources) {
415 ResourceProvider::ResourceIdMap::const_iterator it = 415 ResourceProvider::ResourceIdMap::const_iterator it =
416 child_to_parent_map.find(resource_id); 416 child_to_parent_map.find(resource_id);
417 DCHECK(it != child_to_parent_map.end()); 417 DCHECK(it != child_to_parent_map.end());
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after
546 546
547 void SurfaceAggregator::SetFullDamageForSurface(SurfaceId surface_id) { 547 void SurfaceAggregator::SetFullDamageForSurface(SurfaceId surface_id) {
548 auto it = previous_contained_surfaces_.find(surface_id); 548 auto it = previous_contained_surfaces_.find(surface_id);
549 if (it == previous_contained_surfaces_.end()) 549 if (it == previous_contained_surfaces_.end())
550 return; 550 return;
551 // Set the last drawn index as 0 to ensure full damage next time it's drawn. 551 // Set the last drawn index as 0 to ensure full damage next time it's drawn.
552 it->second = 0; 552 it->second = 0;
553 } 553 }
554 554
555 } // namespace cc 555 } // namespace cc
OLDNEW
« no previous file with comments | « cc/quads/shared_quad_state.cc ('k') | cc/surfaces/surface_aggregator_test_helpers.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698