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 |