diff options
Diffstat (limited to 'gpu/command_buffer/service/resource.cc')
-rw-r--r-- | gpu/command_buffer/service/resource.cc | 73 |
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 |