summaryrefslogtreecommitdiffstats
path: root/gpu/command_buffer/service/resource.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gpu/command_buffer/service/resource.cc')
-rw-r--r--gpu/command_buffer/service/resource.cc73
1 files changed, 0 insertions, 73 deletions
diff --git a/gpu/command_buffer/service/resource.cc b/gpu/command_buffer/service/resource.cc
deleted file mode 100644
index 05bf49c..0000000
--- a/gpu/command_buffer/service/resource.cc
+++ /dev/null
@@ -1,73 +0,0 @@
-// Copyright (c) 2009 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.
-
-// This file contains the implementation of ResourceMapBase.
-
-#include "gpu/command_buffer/service/precompile.h"
-#include "gpu/command_buffer/service/resource.h"
-
-namespace gpu {
-
-// Assigns a resource to a resource ID, by setting it at the right location
-// into the list, resizing the list if necessary, and destroying an existing
-// resource if one existed already.
-void ResourceMapBase::Assign(ResourceId id, Resource *resource) {
- if (id >= resources_.size()) {
- resources_.resize(id + 1, NULL);
- } else {
- Resource *&entry = resources_[id];
- if (entry) {
- delete entry;
- entry = NULL;
- }
- }
- DCHECK(resources_[id] == NULL);
- resources_[id] = resource;
-}
-
-// Destroys a resource contained in the map, setting its entry to NULL. If
-// necessary, this will trim the list.
-bool ResourceMapBase::Destroy(ResourceId id) {
- if (id >= resources_.size()) {
- return false;
- }
- Resource *&entry = resources_[id];
- if (entry) {
- delete entry;
- entry = NULL;
-
- // Removing the last element, we can trim the list.
- // TODO: this may not be optimal to do every time. Investigate if it
- // becomes an issue, and add a threshold before we resize.
- if (id == resources_.size() - 1) {
- size_t last_valid = resources_.max_size();
- for (unsigned int i = id; i < resources_.size(); --i) {
- if (resources_[i]) {
- last_valid = i;
- break;
- }
- }
- if (last_valid == resources_.max_size()) {
- resources_.clear();
- } else {
- resources_.resize(last_valid + 1);
- }
- }
- return true;
- }
- return false;
-}
-
-// Goes over all non-NULL entries in the list, destroying them, then clears the
-// list.
-void ResourceMapBase::DestroyAllResources() {
- for (Container::iterator i = resources_.begin(); i != resources_.end(); ++i) {
- if (*i) {
- delete *i;
- }
- }
- resources_.clear();
-}
-
-} // namespace gpu