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

Side by Side Diff: cc/resources/prioritized_resource_manager.cc

Issue 638353002: [C++11 Allowed Features] Declares a type-safe null pointer converting from NULL to nullptr in src/… (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Formating. Created 6 years, 2 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
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/resources/prioritized_resource_manager.h" 5 #include "cc/resources/prioritized_resource_manager.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/debug/trace_event.h" 9 #include "base/debug/trace_event.h"
10 #include "base/stl_util.h" 10 #include "base/stl_util.h"
(...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after
229 void PrioritizedResourceManager::AcquireBackingTextureIfNeeded( 229 void PrioritizedResourceManager::AcquireBackingTextureIfNeeded(
230 PrioritizedResource* texture, 230 PrioritizedResource* texture,
231 ResourceProvider* resource_provider) { 231 ResourceProvider* resource_provider) {
232 DCHECK(proxy_->IsImplThread() && proxy_->IsMainThreadBlocked()); 232 DCHECK(proxy_->IsImplThread() && proxy_->IsMainThreadBlocked());
233 DCHECK(!texture->is_self_managed()); 233 DCHECK(!texture->is_self_managed());
234 DCHECK(texture->is_above_priority_cutoff()); 234 DCHECK(texture->is_above_priority_cutoff());
235 if (texture->backing() || !texture->is_above_priority_cutoff()) 235 if (texture->backing() || !texture->is_above_priority_cutoff())
236 return; 236 return;
237 237
238 // Find a backing below, by either recycling or allocating. 238 // Find a backing below, by either recycling or allocating.
239 PrioritizedResource::Backing* backing = NULL; 239 PrioritizedResource::Backing* backing = nullptr;
240 240
241 // First try to recycle 241 // First try to recycle
242 for (BackingList::iterator it = backings_.begin(); it != backings_.end(); 242 for (BackingList::iterator it = backings_.begin(); it != backings_.end();
243 ++it) { 243 ++it) {
244 if (!(*it)->CanBeRecycledIfNotInExternalUse()) 244 if (!(*it)->CanBeRecycledIfNotInExternalUse())
245 break; 245 break;
246 if (resource_provider->InUseByConsumer((*it)->id())) 246 if (resource_provider->InUseByConsumer((*it)->id()))
247 continue; 247 continue;
248 if ((*it)->size() == texture->size() && 248 if ((*it)->size() == texture->size() &&
249 (*it)->format() == texture->format()) { 249 (*it)->format() == texture->format()) {
(...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after
424 } 424 }
425 425
426 void PrioritizedResourceManager::UnregisterTexture( 426 void PrioritizedResourceManager::UnregisterTexture(
427 PrioritizedResource* texture) { 427 PrioritizedResource* texture) {
428 DCHECK(proxy_->IsMainThread() || 428 DCHECK(proxy_->IsMainThread() ||
429 (proxy_->IsImplThread() && proxy_->IsMainThreadBlocked())); 429 (proxy_->IsImplThread() && proxy_->IsMainThreadBlocked()));
430 DCHECK(texture); 430 DCHECK(texture);
431 DCHECK(ContainsKey(textures_, texture)); 431 DCHECK(ContainsKey(textures_, texture));
432 432
433 ReturnBackingTexture(texture); 433 ReturnBackingTexture(texture);
434 texture->set_manager_internal(NULL); 434 texture->set_manager_internal(nullptr);
435 textures_.erase(texture); 435 textures_.erase(texture);
436 texture->set_above_priority_cutoff(false); 436 texture->set_above_priority_cutoff(false);
437 } 437 }
438 438
439 void PrioritizedResourceManager::ReturnBackingTexture( 439 void PrioritizedResourceManager::ReturnBackingTexture(
440 PrioritizedResource* texture) { 440 PrioritizedResource* texture) {
441 DCHECK(proxy_->IsMainThread() || 441 DCHECK(proxy_->IsMainThread() ||
442 (proxy_->IsImplThread() && proxy_->IsMainThreadBlocked())); 442 (proxy_->IsImplThread() && proxy_->IsMainThreadBlocked()));
443 if (texture->backing()) 443 if (texture->backing())
444 texture->Unlink(); 444 texture->Unlink();
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
518 backing) == evicted_backings_.end()); 518 backing) == evicted_backings_.end());
519 } 519 }
520 DCHECK(backing->owner() == texture); 520 DCHECK(backing->owner() == texture);
521 } 521 }
522 } 522 }
523 523
524 // At all times, backings that can be evicted must always come before 524 // At all times, backings that can be evicted must always come before
525 // backings that can't be evicted in the backing texture list (otherwise 525 // backings that can't be evicted in the backing texture list (otherwise
526 // ReduceMemory will not find all textures available for eviction/recycling). 526 // ReduceMemory will not find all textures available for eviction/recycling).
527 bool reached_unrecyclable = false; 527 bool reached_unrecyclable = false;
528 PrioritizedResource::Backing* previous_backing = NULL; 528 PrioritizedResource::Backing* previous_backing = nullptr;
529 for (BackingList::iterator it = backings_.begin(); it != backings_.end(); 529 for (BackingList::iterator it = backings_.begin(); it != backings_.end();
530 ++it) { 530 ++it) {
531 PrioritizedResource::Backing* backing = *it; 531 PrioritizedResource::Backing* backing = *it;
532 if (previous_backing && 532 if (previous_backing &&
533 (!backings_tail_not_sorted_ || 533 (!backings_tail_not_sorted_ ||
534 !backing->was_above_priority_cutoff_at_last_priority_update())) 534 !backing->was_above_priority_cutoff_at_last_priority_update()))
535 DCHECK(CompareBackings(previous_backing, backing)); 535 DCHECK(CompareBackings(previous_backing, backing));
536 if (!backing->CanBeRecycledIfNotInExternalUse()) 536 if (!backing->CanBeRecycledIfNotInExternalUse())
537 reached_unrecyclable = true; 537 reached_unrecyclable = true;
538 if (reached_unrecyclable) 538 if (reached_unrecyclable)
539 DCHECK(!backing->CanBeRecycledIfNotInExternalUse()); 539 DCHECK(!backing->CanBeRecycledIfNotInExternalUse());
540 else 540 else
541 DCHECK(backing->CanBeRecycledIfNotInExternalUse()); 541 DCHECK(backing->CanBeRecycledIfNotInExternalUse());
542 previous_backing = backing; 542 previous_backing = backing;
543 } 543 }
544 #endif // DCHECK_IS_ON 544 #endif // DCHECK_IS_ON
545 } 545 }
546 546
547 const Proxy* PrioritizedResourceManager::ProxyForDebug() const { 547 const Proxy* PrioritizedResourceManager::ProxyForDebug() const {
548 return proxy_; 548 return proxy_;
549 } 549 }
550 550
551 } // namespace cc 551 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698