blob: adcf1d3030ca4786eabb2c5f169948f261819128 [file] [log] [blame]
// 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.
#include "services/sky/compositor/texture_cache.h"
#include "mojo/converters/geometry/geometry_type_converters.h"
#include "mojo/gpu/gl_texture.h"
namespace sky {
TextureCache::TextureCache() {
}
TextureCache::~TextureCache() {
}
scoped_ptr<mojo::GLTexture> TextureCache::GetTexture(const gfx::Size& size) {
if (size != size_) {
available_textures_.clear();
size_ = size;
}
if (available_textures_.empty())
return nullptr;
scoped_ptr<mojo::GLTexture> texture(available_textures_.back());
available_textures_.back() = nullptr;
available_textures_.pop_back();
return texture.Pass();
}
void TextureCache::PutTexture(scoped_ptr<mojo::GLTexture> texture) {
if (texture->size() != size_)
return;
available_textures_.push_back(texture.release());
}
} // namespace sky