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

Side by Side Diff: cc/layers/heads_up_display_layer_impl.cc

Issue 1437413002: cc: Remove ScopedPtrVector and cc::remove_if. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: update Created 5 years, 1 month 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 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/layers/heads_up_display_layer_impl.h" 5 #include "cc/layers/heads_up_display_layer_impl.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/numerics/safe_conversions.h" 10 #include "base/numerics/safe_conversions.h"
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
84 84
85 HeadsUpDisplayLayerImpl::~HeadsUpDisplayLayerImpl() {} 85 HeadsUpDisplayLayerImpl::~HeadsUpDisplayLayerImpl() {}
86 86
87 scoped_ptr<LayerImpl> HeadsUpDisplayLayerImpl::CreateLayerImpl( 87 scoped_ptr<LayerImpl> HeadsUpDisplayLayerImpl::CreateLayerImpl(
88 LayerTreeImpl* tree_impl) { 88 LayerTreeImpl* tree_impl) {
89 return HeadsUpDisplayLayerImpl::Create(tree_impl, id()); 89 return HeadsUpDisplayLayerImpl::Create(tree_impl, id());
90 } 90 }
91 91
92 void HeadsUpDisplayLayerImpl::AcquireResource( 92 void HeadsUpDisplayLayerImpl::AcquireResource(
93 ResourceProvider* resource_provider) { 93 ResourceProvider* resource_provider) {
94 for (ScopedPtrVector<ScopedResource>::iterator it = resources_.begin(); 94 for (auto& resource : resources_) {
95 it != resources_.end(); 95 if (!resource_provider->InUseByConsumer(resource->id())) {
96 ++it) { 96 resource.swap(resources_.back());
97 if (!resource_provider->InUseByConsumer((*it)->id())) {
98 resources_.swap(it, resources_.end() - 1);
99 return; 97 return;
100 } 98 }
101 } 99 }
102 100
103 scoped_ptr<ScopedResource> resource = 101 scoped_ptr<ScopedResource> resource =
104 ScopedResource::Create(resource_provider); 102 ScopedResource::Create(resource_provider);
105 resource->Allocate(internal_content_bounds_, 103 resource->Allocate(internal_content_bounds_,
106 ResourceProvider::TEXTURE_HINT_IMMUTABLE, 104 ResourceProvider::TEXTURE_HINT_IMMUTABLE,
107 resource_provider->best_texture_format()); 105 resource_provider->best_texture_format());
108 resources_.push_back(resource.Pass()); 106 resources_.push_back(resource.Pass());
109 } 107 }
110 108
111 class ResourceSizeIsEqualTo {
112 public:
113 explicit ResourceSizeIsEqualTo(const gfx::Size& size_)
114 : compare_size_(size_) {}
115
116 bool operator()(const ScopedResource* resource) {
117 return resource->size() == compare_size_;
118 }
119
120 private:
121 const gfx::Size compare_size_;
122 };
123
124 void HeadsUpDisplayLayerImpl::ReleaseUnmatchedSizeResources( 109 void HeadsUpDisplayLayerImpl::ReleaseUnmatchedSizeResources(
125 ResourceProvider* resource_provider) { 110 ResourceProvider* resource_provider) {
126 ScopedPtrVector<ScopedResource>::iterator it_erase = 111 std::vector<scoped_ptr<ScopedResource>>::iterator it_erase =
danakj 2015/11/17 23:49:41 auto?
vmpstr 2015/11/18 00:08:46 Done.
127 resources_.partition(ResourceSizeIsEqualTo(internal_content_bounds_)); 112 std::remove_if(resources_.begin(), resources_.end(),
113 [this](const scoped_ptr<ScopedResource>& resource) {
114 return internal_content_bounds_ != resource->size();
115 });
128 resources_.erase(it_erase, resources_.end()); 116 resources_.erase(it_erase, resources_.end());
129 } 117 }
130 118
131 bool HeadsUpDisplayLayerImpl::WillDraw(DrawMode draw_mode, 119 bool HeadsUpDisplayLayerImpl::WillDraw(DrawMode draw_mode,
132 ResourceProvider* resource_provider) { 120 ResourceProvider* resource_provider) {
133 if (draw_mode == DRAW_MODE_RESOURCELESS_SOFTWARE) 121 if (draw_mode == DRAW_MODE_RESOURCELESS_SOFTWARE)
134 return false; 122 return false;
135 123
136 internal_contents_scale_ = GetIdealContentsScale(); 124 internal_contents_scale_ = GetIdealContentsScale();
137 internal_content_bounds_ = 125 internal_content_bounds_ =
(...skipping 665 matching lines...) Expand 10 before | Expand all | Expand 10 after
803 return "cc::HeadsUpDisplayLayerImpl"; 791 return "cc::HeadsUpDisplayLayerImpl";
804 } 792 }
805 793
806 void HeadsUpDisplayLayerImpl::AsValueInto( 794 void HeadsUpDisplayLayerImpl::AsValueInto(
807 base::trace_event::TracedValue* dict) const { 795 base::trace_event::TracedValue* dict) const {
808 LayerImpl::AsValueInto(dict); 796 LayerImpl::AsValueInto(dict);
809 dict->SetString("layer_name", "Heads Up Display Layer"); 797 dict->SetString("layer_name", "Heads Up Display Layer");
810 } 798 }
811 799
812 } // namespace cc 800 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698