| Index: mojo/gpu/texture_cache.cc
|
| diff --git a/mojo/gpu/texture_cache.cc b/mojo/gpu/texture_cache.cc
|
| deleted file mode 100644
|
| index a76fedbacf55b50503904691be5cd2d10aac9fa7..0000000000000000000000000000000000000000
|
| --- a/mojo/gpu/texture_cache.cc
|
| +++ /dev/null
|
| @@ -1,104 +0,0 @@
|
| -// Copyright 2015 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.
|
| -
|
| -#ifndef GL_GLEXT_PROTOTYPES
|
| -#define GL_GLEXT_PROTOTYPES
|
| -#endif
|
| -#include <GLES2/gl2extmojo.h>
|
| -
|
| -#include "mojo/gpu/gl_context.h"
|
| -#include "mojo/gpu/gl_texture.h"
|
| -#include "mojo/gpu/texture_cache.h"
|
| -#include "mojo/services/geometry/interfaces/geometry.mojom.h"
|
| -
|
| -namespace mojo {
|
| -
|
| -TextureCache::TextureInfo::TextureInfo() : texture_(), resource_id_(0u) {}
|
| -TextureCache::TextureInfo::TextureInfo(scoped_ptr<mojo::GLTexture> texture,
|
| - uint32_t resource_id)
|
| - : texture_(texture.Pass()), resource_id_(resource_id) {}
|
| -TextureCache::TextureInfo::~TextureInfo() {}
|
| -
|
| -TextureCache::TextureCache(base::WeakPtr<mojo::GLContext> gl_context,
|
| - mojo::ResourceReturnerPtr* out_resource_returner)
|
| - : gl_context_(gl_context), returner_binding_(this), next_resource_id_(0u) {
|
| - if (out_resource_returner) {
|
| - returner_binding_.Bind(GetProxy(out_resource_returner));
|
| - }
|
| -}
|
| -
|
| -TextureCache::~TextureCache() {}
|
| -
|
| -scoped_ptr<TextureCache::TextureInfo> TextureCache::GetTexture(
|
| - const mojo::Size& requested_size) {
|
| - // Sift through our available textures to find one the correct size. If one
|
| - // exists use it. As we find textures of the wrong size, clean them up.
|
| - while (!available_textures_.empty()) {
|
| - // Get the next available texture's resource id.
|
| - uint32_t available_resource_id = available_textures_.front();
|
| - available_textures_.pop_front();
|
| -
|
| - // Get the texture information from the texture map.
|
| - auto texture_iterator =
|
| - resource_to_texture_map_.find(available_resource_id);
|
| - mojo::Size texture_size = texture_iterator->second->size();
|
| - scoped_ptr<TextureInfo> texture_info(new TextureInfo(
|
| - texture_iterator->second.Pass(), texture_iterator->first));
|
| - resource_to_texture_map_.erase(texture_iterator);
|
| -
|
| - // Get the sync point from the sync point map.
|
| - auto sync_point_iterator =
|
| - resource_to_sync_point_map_.find(available_resource_id);
|
| - int sync_point = sync_point_iterator->second;
|
| - resource_to_sync_point_map_.erase(sync_point_iterator);
|
| -
|
| - // If the texture is the right size, use it.
|
| - if (texture_size.width == requested_size.width &&
|
| - texture_size.height == requested_size.height) {
|
| - gl_context_->MakeCurrent();
|
| - glWaitSyncPointCHROMIUM(sync_point);
|
| - return texture_info;
|
| - }
|
| - }
|
| -
|
| - // If our context is invalid return an empty scoped ptr.
|
| - if (!gl_context_) {
|
| - return scoped_ptr<TextureInfo>();
|
| - }
|
| -
|
| - // We couldn't find an existing texture to reuse, create a new one!
|
| - scoped_ptr<mojo::GLTexture> new_texture(
|
| - new mojo::GLTexture(gl_context_, requested_size));
|
| - next_resource_id_++;
|
| - scoped_ptr<TextureInfo> texture_info(
|
| - new TextureInfo(new_texture.Pass(), next_resource_id_));
|
| - return texture_info;
|
| -}
|
| -
|
| -void TextureCache::NotifyPendingResourceReturn(
|
| - uint32_t resource_id,
|
| - scoped_ptr<mojo::GLTexture> texture) {
|
| - resource_to_texture_map_[resource_id] = texture.Pass();
|
| -}
|
| -
|
| -// mojo::ResourceReturner
|
| -void TextureCache::ReturnResources(
|
| - mojo::Array<mojo::ReturnedResourcePtr> resources) {
|
| - if (!gl_context_) {
|
| - return;
|
| - }
|
| - gl_context_->MakeCurrent();
|
| - for (size_t i = 0u; i < resources.size(); ++i) {
|
| - mojo::ReturnedResourcePtr resource = resources[i].Pass();
|
| - DCHECK_EQ(1, resource->count);
|
| - auto it = resource_to_texture_map_.find(resource->id);
|
| - // Ignore the returned resource if we haven't been notified of its pending
|
| - // return.
|
| - if (it != resource_to_texture_map_.end()) {
|
| - available_textures_.push_back(resource->id);
|
| - resource_to_sync_point_map_[resource->id] = resource->sync_point;
|
| - }
|
| - }
|
| -}
|
| -} // namespace mojo
|
|
|