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

Unified Diff: cc/resource_pool.cc

Issue 12471007: Part 8 of cc/ directory shuffles: resources (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 9 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « cc/resource_pool.h ('k') | cc/resource_provider.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/resource_pool.cc
diff --git a/cc/resource_pool.cc b/cc/resource_pool.cc
deleted file mode 100644
index 2b436931dd36bffe7ddcd0d8f5cd7bd32cbd962f..0000000000000000000000000000000000000000
--- a/cc/resource_pool.cc
+++ /dev/null
@@ -1,97 +0,0 @@
-// Copyright 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "cc/resource_pool.h"
-
-#include "cc/resource_provider.h"
-
-namespace cc {
-
-ResourcePool::Resource::Resource(cc::ResourceProvider* resource_provider,
- const gfx::Size& size,
- GLenum format)
- : cc::Resource(resource_provider->CreateManagedResource(
- size,
- format,
- ResourceProvider::TextureUsageAny),
- size,
- format),
- resource_provider_(resource_provider) {
- DCHECK(id());
-}
-
-ResourcePool::Resource::~Resource() {
- DCHECK(id());
- DCHECK(resource_provider_);
- resource_provider_->DeleteResource(id());
-}
-
-ResourcePool::ResourcePool(ResourceProvider* resource_provider)
- : resource_provider_(resource_provider),
- max_memory_usage_bytes_(0),
- memory_usage_bytes_(0) {
-}
-
-ResourcePool::~ResourcePool() {
- SetMaxMemoryUsageBytes(0);
-}
-
-scoped_ptr<ResourcePool::Resource> ResourcePool::AcquireResource(
- const gfx::Size& size, GLenum format) {
- for (ResourceList::iterator it = resources_.begin();
- it != resources_.end(); ++it) {
- Resource* resource = *it;
-
- // TODO(epenner): It would be nice to DCHECK that this
- // doesn't happen two frames in a row for any resource
- // in this pool.
- if (!resource_provider_->CanLockForWrite(resource->id()))
- continue;
-
- if (resource->size() != size)
- continue;
- if (resource->format() != format)
- continue;
-
- resources_.erase(it);
- return make_scoped_ptr(resource);
- }
-
- // Create new resource.
- Resource* resource = new Resource(
- resource_provider_, size, format);
-
- // Extend all read locks on all resources until the resource is
- // finished being used, such that we know when resources are
- // truly safe to recycle.
- resource_provider_->EnableReadLockFences(resource->id(), true);
-
- memory_usage_bytes_ += resource->bytes();
- return make_scoped_ptr(resource);
-}
-
-void ResourcePool::ReleaseResource(
- scoped_ptr<ResourcePool::Resource> resource) {
- if (memory_usage_bytes_ > max_memory_usage_bytes_) {
- memory_usage_bytes_ -= resource->bytes();
- return;
- }
-
- resources_.push_back(resource.release());
-}
-
-void ResourcePool::SetMaxMemoryUsageBytes(size_t max_memory_usage_bytes) {
- max_memory_usage_bytes_ = max_memory_usage_bytes;
-
- while (!resources_.empty()) {
- if (memory_usage_bytes_ <= max_memory_usage_bytes_)
- break;
- Resource* resource = resources_.front();
- resources_.pop_front();
- memory_usage_bytes_ -= resource->bytes();
- delete resource;
- }
-}
-
-} // namespace cc
« no previous file with comments | « cc/resource_pool.h ('k') | cc/resource_provider.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698