| OLD | NEW |
| 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 <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include <algorithm> | 9 #include <algorithm> |
| 10 | 10 |
| 11 #include "base/memory/ptr_util.h" |
| 11 #include "base/numerics/safe_conversions.h" | 12 #include "base/numerics/safe_conversions.h" |
| 12 #include "base/trace_event/trace_event_argument.h" | 13 #include "base/trace_event/trace_event_argument.h" |
| 13 #include "base/values.h" | 14 #include "base/values.h" |
| 14 #include "cc/base/math_util.h" | 15 #include "cc/base/math_util.h" |
| 15 #include "cc/debug/traced_value.h" | 16 #include "cc/debug/traced_value.h" |
| 16 #include "cc/output/copy_output_request.h" | 17 #include "cc/output/copy_output_request.h" |
| 17 #include "cc/quads/debug_border_draw_quad.h" | 18 #include "cc/quads/debug_border_draw_quad.h" |
| 18 #include "cc/quads/draw_quad.h" | 19 #include "cc/quads/draw_quad.h" |
| 19 #include "cc/quads/io_surface_draw_quad.h" | 20 #include "cc/quads/io_surface_draw_quad.h" |
| 20 #include "cc/quads/largest_draw_quad.h" | 21 #include "cc/quads/largest_draw_quad.h" |
| (...skipping 11 matching lines...) Expand all Loading... |
| 32 const size_t kDefaultNumSharedQuadStatesToReserve = 32; | 33 const size_t kDefaultNumSharedQuadStatesToReserve = 32; |
| 33 const size_t kDefaultNumQuadsToReserve = 128; | 34 const size_t kDefaultNumQuadsToReserve = 128; |
| 34 } | 35 } |
| 35 | 36 |
| 36 namespace cc { | 37 namespace cc { |
| 37 | 38 |
| 38 QuadList::QuadList(size_t default_size_to_reserve) | 39 QuadList::QuadList(size_t default_size_to_reserve) |
| 39 : ListContainer<DrawQuad>(LargestDrawQuadSize(), default_size_to_reserve) { | 40 : ListContainer<DrawQuad>(LargestDrawQuadSize(), default_size_to_reserve) { |
| 40 } | 41 } |
| 41 | 42 |
| 42 scoped_ptr<RenderPass> RenderPass::Create() { | 43 std::unique_ptr<RenderPass> RenderPass::Create() { |
| 43 return make_scoped_ptr(new RenderPass()); | 44 return base::WrapUnique(new RenderPass()); |
| 44 } | 45 } |
| 45 | 46 |
| 46 scoped_ptr<RenderPass> RenderPass::Create(size_t num_layers) { | 47 std::unique_ptr<RenderPass> RenderPass::Create(size_t num_layers) { |
| 47 return make_scoped_ptr(new RenderPass(num_layers)); | 48 return base::WrapUnique(new RenderPass(num_layers)); |
| 48 } | 49 } |
| 49 | 50 |
| 50 scoped_ptr<RenderPass> RenderPass::Create(size_t shared_quad_state_list_size, | 51 std::unique_ptr<RenderPass> RenderPass::Create( |
| 51 size_t quad_list_size) { | 52 size_t shared_quad_state_list_size, |
| 52 return make_scoped_ptr( | 53 size_t quad_list_size) { |
| 54 return base::WrapUnique( |
| 53 new RenderPass(shared_quad_state_list_size, quad_list_size)); | 55 new RenderPass(shared_quad_state_list_size, quad_list_size)); |
| 54 } | 56 } |
| 55 | 57 |
| 56 RenderPass::RenderPass() | 58 RenderPass::RenderPass() |
| 57 : has_transparent_background(true), | 59 : has_transparent_background(true), |
| 58 quad_list(kDefaultNumQuadsToReserve), | 60 quad_list(kDefaultNumQuadsToReserve), |
| 59 shared_quad_state_list(sizeof(SharedQuadState), | 61 shared_quad_state_list(sizeof(SharedQuadState), |
| 60 kDefaultNumSharedQuadStatesToReserve) { | 62 kDefaultNumSharedQuadStatesToReserve) { |
| 61 } | 63 } |
| 62 | 64 |
| (...skipping 12 matching lines...) Expand all Loading... |
| 75 shared_quad_state_list(sizeof(SharedQuadState), | 77 shared_quad_state_list(sizeof(SharedQuadState), |
| 76 shared_quad_state_list_size) { | 78 shared_quad_state_list_size) { |
| 77 } | 79 } |
| 78 | 80 |
| 79 RenderPass::~RenderPass() { | 81 RenderPass::~RenderPass() { |
| 80 TRACE_EVENT_OBJECT_DELETED_WITH_ID( | 82 TRACE_EVENT_OBJECT_DELETED_WITH_ID( |
| 81 TRACE_DISABLED_BY_DEFAULT("cc.debug.quads"), | 83 TRACE_DISABLED_BY_DEFAULT("cc.debug.quads"), |
| 82 "cc::RenderPass", id.AsTracingId()); | 84 "cc::RenderPass", id.AsTracingId()); |
| 83 } | 85 } |
| 84 | 86 |
| 85 scoped_ptr<RenderPass> RenderPass::Copy(RenderPassId new_id) const { | 87 std::unique_ptr<RenderPass> RenderPass::Copy(RenderPassId new_id) const { |
| 86 scoped_ptr<RenderPass> copy_pass( | 88 std::unique_ptr<RenderPass> copy_pass( |
| 87 Create(shared_quad_state_list.size(), quad_list.size())); | 89 Create(shared_quad_state_list.size(), quad_list.size())); |
| 88 copy_pass->SetAll(new_id, | 90 copy_pass->SetAll(new_id, |
| 89 output_rect, | 91 output_rect, |
| 90 damage_rect, | 92 damage_rect, |
| 91 transform_to_root_target, | 93 transform_to_root_target, |
| 92 has_transparent_background); | 94 has_transparent_background); |
| 93 return copy_pass; | 95 return copy_pass; |
| 94 } | 96 } |
| 95 | 97 |
| 96 // static | 98 // static |
| 97 void RenderPass::CopyAll(const std::vector<scoped_ptr<RenderPass>>& in, | 99 void RenderPass::CopyAll(const std::vector<std::unique_ptr<RenderPass>>& in, |
| 98 std::vector<scoped_ptr<RenderPass>>* out) { | 100 std::vector<std::unique_ptr<RenderPass>>* out) { |
| 99 for (const auto& source : in) { | 101 for (const auto& source : in) { |
| 100 // Since we can't copy these, it's wrong to use CopyAll in a situation where | 102 // Since we can't copy these, it's wrong to use CopyAll in a situation where |
| 101 // you may have copy_requests present. | 103 // you may have copy_requests present. |
| 102 DCHECK_EQ(source->copy_requests.size(), 0u); | 104 DCHECK_EQ(source->copy_requests.size(), 0u); |
| 103 | 105 |
| 104 scoped_ptr<RenderPass> copy_pass(Create( | 106 std::unique_ptr<RenderPass> copy_pass(Create( |
| 105 source->shared_quad_state_list.size(), source->quad_list.size())); | 107 source->shared_quad_state_list.size(), source->quad_list.size())); |
| 106 copy_pass->SetAll(source->id, | 108 copy_pass->SetAll(source->id, |
| 107 source->output_rect, | 109 source->output_rect, |
| 108 source->damage_rect, | 110 source->damage_rect, |
| 109 source->transform_to_root_target, | 111 source->transform_to_root_target, |
| 110 source->has_transparent_background); | 112 source->has_transparent_background); |
| 111 for (const auto& shared_quad_state : source->shared_quad_state_list) { | 113 for (const auto& shared_quad_state : source->shared_quad_state_list) { |
| 112 SharedQuadState* copy_shared_quad_state = | 114 SharedQuadState* copy_shared_quad_state = |
| 113 copy_pass->CreateAndAppendSharedQuadState(); | 115 copy_pass->CreateAndAppendSharedQuadState(); |
| 114 copy_shared_quad_state->CopyFrom(shared_quad_state); | 116 copy_shared_quad_state->CopyFrom(shared_quad_state); |
| (...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 256 case DrawQuad::RENDER_PASS: | 258 case DrawQuad::RENDER_PASS: |
| 257 case DrawQuad::INVALID: | 259 case DrawQuad::INVALID: |
| 258 LOG(FATAL) << "Invalid DrawQuad material " << quad->material; | 260 LOG(FATAL) << "Invalid DrawQuad material " << quad->material; |
| 259 break; | 261 break; |
| 260 } | 262 } |
| 261 quad_list.back()->shared_quad_state = shared_quad_state; | 263 quad_list.back()->shared_quad_state = shared_quad_state; |
| 262 return quad_list.back(); | 264 return quad_list.back(); |
| 263 } | 265 } |
| 264 | 266 |
| 265 } // namespace cc | 267 } // namespace cc |
| OLD | NEW |