Chromium Code Reviews

Side by Side Diff: cc/output/direct_renderer.cc

Issue 1441613002: cc: Remove ScopedPtrDeque. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff |
OLDNEW
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/direct_renderer.h" 5 #include "cc/output/direct_renderer.h"
6 6
7 #include <utility> 7 #include <utility>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/containers/hash_tables.h" 10 #include "base/containers/hash_tables.h"
(...skipping 386 matching lines...)
397 return; 397 return;
398 } 398 }
399 399
400 std::vector<gfx::QuadF> quads; 400 std::vector<gfx::QuadF> quads;
401 poly.ToQuads2D(&quads); 401 poly.ToQuads2D(&quads);
402 for (size_t i = 0; i < quads.size(); ++i) { 402 for (size_t i = 0; i < quads.size(); ++i) {
403 DoDrawQuad(frame, poly.original_ref(), &quads[i]); 403 DoDrawQuad(frame, poly.original_ref(), &quads[i]);
404 } 404 }
405 } 405 }
406 406
407 void DirectRenderer::FlushPolygons(ScopedPtrDeque<DrawPolygon>* poly_list, 407 void DirectRenderer::FlushPolygons(
408 DrawingFrame* frame, 408 std::deque<scoped_ptr<DrawPolygon>>* poly_list,
409 const gfx::Rect& render_pass_scissor, 409 DrawingFrame* frame,
410 bool use_render_pass_scissor) { 410 const gfx::Rect& render_pass_scissor,
411 bool use_render_pass_scissor) {
411 if (poly_list->empty()) { 412 if (poly_list->empty()) {
412 return; 413 return;
413 } 414 }
414 415
415 BspTree bsp_tree(poly_list); 416 BspTree bsp_tree(poly_list);
416 BspWalkActionDrawPolygon action_handler(this, frame, render_pass_scissor, 417 BspWalkActionDrawPolygon action_handler(this, frame, render_pass_scissor,
417 use_render_pass_scissor); 418 use_render_pass_scissor);
418 bsp_tree.TraverseWithActionHandler(&action_handler); 419 bsp_tree.TraverseWithActionHandler(&action_handler);
419 DCHECK(poly_list->empty()); 420 DCHECK(poly_list->empty());
420 } 421 }
(...skipping 45 matching lines...)
466 mode = SURFACE_INITIALIZATION_MODE_FULL_SURFACE_CLEAR; 467 mode = SURFACE_INITIALIZATION_MODE_FULL_SURFACE_CLEAR;
467 } else { 468 } else {
468 mode = SURFACE_INITIALIZATION_MODE_PRESERVE; 469 mode = SURFACE_INITIALIZATION_MODE_PRESERVE;
469 } 470 }
470 471
471 PrepareSurfaceForPass( 472 PrepareSurfaceForPass(
472 frame, mode, 473 frame, mode,
473 MoveFromDrawToWindowSpace(frame, render_pass_scissor_in_draw_space)); 474 MoveFromDrawToWindowSpace(frame, render_pass_scissor_in_draw_space));
474 475
475 const QuadList& quad_list = render_pass->quad_list; 476 const QuadList& quad_list = render_pass->quad_list;
476 ScopedPtrDeque<DrawPolygon> poly_list; 477 std::deque<scoped_ptr<DrawPolygon>> poly_list;
477 478
478 int next_polygon_id = 0; 479 int next_polygon_id = 0;
479 int last_sorting_context_id = 0; 480 int last_sorting_context_id = 0;
480 for (auto it = quad_list.BackToFrontBegin(); it != quad_list.BackToFrontEnd(); 481 for (auto it = quad_list.BackToFrontBegin(); it != quad_list.BackToFrontEnd();
481 ++it) { 482 ++it) {
482 const DrawQuad& quad = **it; 483 const DrawQuad& quad = **it;
483 gfx::QuadF send_quad(gfx::RectF(quad.visible_rect)); 484 gfx::QuadF send_quad(gfx::RectF(quad.visible_rect));
484 485
485 if (render_pass_is_clipped && 486 if (render_pass_is_clipped &&
486 ShouldSkipQuad(quad, render_pass_scissor_in_draw_space)) { 487 ShouldSkipQuad(quad, render_pass_scissor_in_draw_space)) {
(...skipping 69 matching lines...)
556 ScopedResource* texture = render_pass_textures_.get(id); 557 ScopedResource* texture = render_pass_textures_.get(id);
557 return texture && texture->id(); 558 return texture && texture->id();
558 } 559 }
559 560
560 // static 561 // static
561 gfx::Size DirectRenderer::RenderPassTextureSize(const RenderPass* render_pass) { 562 gfx::Size DirectRenderer::RenderPassTextureSize(const RenderPass* render_pass) {
562 return render_pass->output_rect.size(); 563 return render_pass->output_rect.size();
563 } 564 }
564 565
565 } // namespace cc 566 } // namespace cc
OLDNEW

Powered by Google App Engine