| Index: content/common/gpu/stream_texture_manager_android.cc
|
| diff --git a/content/common/gpu/stream_texture_manager_android.cc b/content/common/gpu/stream_texture_manager_android.cc
|
| deleted file mode 100644
|
| index 3462fe2d71b11f928f34058c2dc8fd9a5551963d..0000000000000000000000000000000000000000
|
| --- a/content/common/gpu/stream_texture_manager_android.cc
|
| +++ /dev/null
|
| @@ -1,149 +0,0 @@
|
| -// Copyright (c) 2012 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 "content/common/gpu/stream_texture_manager_android.h"
|
| -
|
| -#include "base/bind.h"
|
| -#include "content/common/gpu/gpu_channel.h"
|
| -#include "content/common/gpu/gpu_messages.h"
|
| -#include "gpu/command_buffer/service/stream_texture.h"
|
| -#include "ui/gfx/size.h"
|
| -#include "ui/gl/android/surface_texture_bridge.h"
|
| -#include "ui/gl/gl_bindings.h"
|
| -
|
| -namespace content {
|
| -
|
| -StreamTextureManagerAndroid::StreamTextureAndroid::StreamTextureAndroid(
|
| - GpuChannel* channel, int service_id)
|
| - : surface_texture_bridge_(new gfx::SurfaceTextureBridge(service_id)),
|
| - size_(0, 0),
|
| - has_updated_(false),
|
| - channel_(channel) {
|
| - memset(current_matrix_, 0, sizeof(current_matrix_));
|
| -}
|
| -
|
| -StreamTextureManagerAndroid::StreamTextureAndroid::~StreamTextureAndroid() {
|
| -}
|
| -
|
| -void StreamTextureManagerAndroid::StreamTextureAndroid::Update() {
|
| - GLint texture_id = 0;
|
| - glGetIntegerv(GL_TEXTURE_BINDING_EXTERNAL_OES, &texture_id);
|
| - surface_texture_bridge_->UpdateTexImage();
|
| - glBindTexture(GL_TEXTURE_EXTERNAL_OES, texture_id);
|
| - if (matrix_callback_.is_null())
|
| - return;
|
| -
|
| - float mtx[16];
|
| - surface_texture_bridge_->GetTransformMatrix(mtx);
|
| -
|
| - // Only query the matrix once we have bound a valid frame.
|
| - if (has_updated_ && memcmp(current_matrix_, mtx, sizeof(mtx)) != 0) {
|
| - memcpy(current_matrix_, mtx, sizeof(mtx));
|
| -
|
| - GpuStreamTextureMsg_MatrixChanged_Params params;
|
| - memcpy(¶ms.m00, mtx, sizeof(mtx));
|
| - matrix_callback_.Run(params);
|
| - }
|
| -}
|
| -
|
| -void StreamTextureManagerAndroid::StreamTextureAndroid::OnFrameAvailable(
|
| - int route_id) {
|
| - has_updated_ = true;
|
| - channel_->Send(new GpuStreamTextureMsg_FrameAvailable(route_id));
|
| -}
|
| -
|
| -gfx::Size StreamTextureManagerAndroid::StreamTextureAndroid::GetSize() {
|
| - return size_;
|
| -}
|
| -
|
| -StreamTextureManagerAndroid::StreamTextureManagerAndroid(
|
| - GpuChannel* channel)
|
| - : channel_(channel) {
|
| -}
|
| -
|
| -StreamTextureManagerAndroid::~StreamTextureManagerAndroid() {
|
| - DCHECK(textures_.size() == textures_from_service_id_.size());
|
| - if (!textures_.IsEmpty())
|
| - LOG(WARNING) << "Undestroyed surface textures while closing GPU channel.";
|
| -}
|
| -
|
| -GLuint StreamTextureManagerAndroid::CreateStreamTexture(uint32 service_id,
|
| - uint32 client_id) {
|
| - // service_id: the actual GL texture name
|
| - // client_id: texture name given to the client in the renderer (unused here)
|
| - // The return value here is what glCreateStreamTextureCHROMIUM() will return
|
| - // to identify the stream (i.e. surface texture).
|
| - StreamTextureAndroid* texture = new StreamTextureAndroid(
|
| - channel_, service_id);
|
| - textures_from_service_id_.AddWithID(texture, service_id);
|
| - return textures_.Add(texture);
|
| -}
|
| -
|
| -void StreamTextureManagerAndroid::DestroyStreamTexture(uint32 service_id) {
|
| - gpu::StreamTexture* texture = textures_from_service_id_.Lookup(service_id);
|
| - if (texture) {
|
| - textures_from_service_id_.Remove(service_id);
|
| -
|
| - for (TextureMap::Iterator<StreamTextureAndroid> it(&textures_);
|
| - !it.IsAtEnd(); it.Advance()) {
|
| - if (it.GetCurrentValue() == texture) {
|
| - textures_.Remove(it.GetCurrentKey());
|
| - break;
|
| - }
|
| - }
|
| - }
|
| -}
|
| -
|
| -gpu::StreamTexture* StreamTextureManagerAndroid::LookupStreamTexture(
|
| - uint32 service_id) {
|
| - return textures_from_service_id_.Lookup(service_id);
|
| -}
|
| -
|
| -void StreamTextureManagerAndroid::SendMatrixChanged(
|
| - int route_id,
|
| - const GpuStreamTextureMsg_MatrixChanged_Params& params) {
|
| - channel_->Send(new GpuStreamTextureMsg_MatrixChanged(route_id, params));
|
| -}
|
| -
|
| -void StreamTextureManagerAndroid::RegisterStreamTextureProxy(
|
| - int32 stream_id, int32 route_id) {
|
| - StreamTextureAndroid* stream_texture = textures_.Lookup(stream_id);
|
| - if (stream_texture) {
|
| - // TODO(sievers): Post from binder thread to IO thread directly.
|
| - base::Closure frame_cb = base::Bind(
|
| - &StreamTextureAndroid::OnFrameAvailable,
|
| - stream_texture->AsWeakPtr(),
|
| - route_id);
|
| - StreamTextureAndroid::MatrixChangedCB matrix_cb = base::Bind(
|
| - &StreamTextureManagerAndroid::SendMatrixChanged,
|
| - base::Unretained(this),
|
| - route_id);
|
| - stream_texture->set_matrix_changed_callback(matrix_cb);
|
| - stream_texture->surface_texture_bridge()->SetFrameAvailableCallback(
|
| - frame_cb);
|
| - }
|
| -}
|
| -
|
| -void StreamTextureManagerAndroid::EstablishStreamTexture(
|
| - int32 stream_id, int32 primary_id, int32 secondary_id) {
|
| - StreamTextureAndroid* stream_texture = textures_.Lookup(stream_id);
|
| - base::ProcessHandle process = channel_->renderer_pid();
|
| -
|
| - if (stream_texture) {
|
| - SurfaceTexturePeer::GetInstance()->EstablishSurfaceTexturePeer(
|
| - process,
|
| - stream_texture->surface_texture_bridge(),
|
| - primary_id,
|
| - secondary_id);
|
| - }
|
| -}
|
| -
|
| -void StreamTextureManagerAndroid::SetStreamTextureSize(
|
| - int32 stream_id, const gfx::Size& size) {
|
| - StreamTextureAndroid* stream_texture = textures_.Lookup(stream_id);
|
| - if (stream_texture)
|
| - stream_texture->SetSize(size);
|
| -}
|
| -
|
| -} // namespace content
|
|
|