| Index: blimp/client/feature/compositor/blimp_compositor_manager.cc
|
| diff --git a/blimp/client/feature/compositor/blimp_compositor_manager.cc b/blimp/client/feature/compositor/blimp_compositor_manager.cc
|
| deleted file mode 100644
|
| index 42105fc770c2f6328f726ad2a61c9c5663d5b66c..0000000000000000000000000000000000000000
|
| --- a/blimp/client/feature/compositor/blimp_compositor_manager.cc
|
| +++ /dev/null
|
| @@ -1,214 +0,0 @@
|
| -// Copyright 2016 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 "blimp/client/feature/compositor/blimp_compositor_manager.h"
|
| -
|
| -#include "base/lazy_instance.h"
|
| -#include "base/memory/ptr_util.h"
|
| -#include "blimp/client/core/compositor/blob_image_serialization_processor.h"
|
| -#include "blimp/client/feature/compositor/blimp_layer_tree_settings.h"
|
| -#include "blimp/common/compositor/blimp_task_graph_runner.h"
|
| -#include "cc/proto/compositor_message.pb.h"
|
| -
|
| -namespace blimp {
|
| -namespace client {
|
| -
|
| -namespace {
|
| -base::LazyInstance<blimp::BlimpTaskGraphRunner> g_task_graph_runner =
|
| - LAZY_INSTANCE_INITIALIZER;
|
| -
|
| -const int kDummyTabId = 0;
|
| -} // namespace
|
| -
|
| -BlimpCompositorManager::BlimpCompositorManager(
|
| - RenderWidgetFeature* render_widget_feature,
|
| - BlimpCompositorManagerClient* client)
|
| - : visible_(false),
|
| - window_(gfx::kNullAcceleratedWidget),
|
| - gpu_memory_buffer_manager_(new BlimpGpuMemoryBufferManager),
|
| - active_compositor_(nullptr),
|
| - render_widget_feature_(render_widget_feature),
|
| - client_(client) {
|
| - DCHECK(render_widget_feature_);
|
| - render_widget_feature_->SetDelegate(kDummyTabId, this);
|
| -}
|
| -
|
| -BlimpCompositorManager::~BlimpCompositorManager() {
|
| - render_widget_feature_->RemoveDelegate(kDummyTabId);
|
| - if (compositor_thread_)
|
| - compositor_thread_->Stop();
|
| -}
|
| -
|
| -void BlimpCompositorManager::SetVisible(bool visible) {
|
| - visible_ = visible;
|
| - if (active_compositor_)
|
| - active_compositor_->SetVisible(visible);
|
| -}
|
| -
|
| -void BlimpCompositorManager::SetAcceleratedWidget(
|
| - gfx::AcceleratedWidget widget) {
|
| - window_ = widget;
|
| - if (active_compositor_)
|
| - active_compositor_->SetAcceleratedWidget(widget);
|
| -}
|
| -
|
| -void BlimpCompositorManager::ReleaseAcceleratedWidget() {
|
| - window_ = gfx::kNullAcceleratedWidget;
|
| - if (active_compositor_)
|
| - active_compositor_->ReleaseAcceleratedWidget();
|
| -}
|
| -
|
| -bool BlimpCompositorManager::OnTouchEvent(const ui::MotionEvent& motion_event) {
|
| - if (active_compositor_)
|
| - return active_compositor_->OnTouchEvent(motion_event);
|
| - return false;
|
| -}
|
| -
|
| -void BlimpCompositorManager::GenerateLayerTreeSettings(
|
| - cc::LayerTreeSettings* settings) {
|
| - PopulateCommonLayerTreeSettings(settings);
|
| -}
|
| -
|
| -std::unique_ptr<BlimpCompositor> BlimpCompositorManager::CreateBlimpCompositor(
|
| - int render_widget_id,
|
| - BlimpCompositorClient* client) {
|
| - return base::WrapUnique(new BlimpCompositor(render_widget_id, client));
|
| -}
|
| -
|
| -void BlimpCompositorManager::OnRenderWidgetCreated(int render_widget_id) {
|
| - CHECK(!GetCompositor(render_widget_id));
|
| -
|
| - compositors_[render_widget_id] = CreateBlimpCompositor(render_widget_id,
|
| - this);
|
| -}
|
| -
|
| -void BlimpCompositorManager::OnRenderWidgetInitialized(int render_widget_id) {
|
| - if (active_compositor_ &&
|
| - active_compositor_->render_widget_id() == render_widget_id)
|
| - return;
|
| -
|
| - if (active_compositor_) {
|
| - VLOG(1) << "Hiding currently active compositor for render widget: "
|
| - << active_compositor_->render_widget_id();
|
| - active_compositor_->SetVisible(false);
|
| - active_compositor_->ReleaseAcceleratedWidget();
|
| - }
|
| -
|
| - active_compositor_ = GetCompositor(render_widget_id);
|
| - CHECK(active_compositor_);
|
| -
|
| - active_compositor_->SetVisible(visible_);
|
| - active_compositor_->SetAcceleratedWidget(window_);
|
| -}
|
| -
|
| -void BlimpCompositorManager::OnRenderWidgetDeleted(int render_widget_id) {
|
| - CompositorMap::const_iterator it = compositors_.find(render_widget_id);
|
| - CHECK(it != compositors_.end());
|
| -
|
| - // Reset the |active_compositor_| if that is what we're destroying right now.
|
| - if (active_compositor_ == it->second.get())
|
| - active_compositor_ = nullptr;
|
| -
|
| - compositors_.erase(it);
|
| -}
|
| -
|
| -void BlimpCompositorManager::OnCompositorMessageReceived(
|
| - int render_widget_id,
|
| - std::unique_ptr<cc::proto::CompositorMessage> message) {
|
| - BlimpCompositor* compositor = GetCompositor(render_widget_id);
|
| - CHECK(compositor);
|
| -
|
| - compositor->OnCompositorMessageReceived(std::move(message));
|
| -}
|
| -
|
| -cc::LayerTreeSettings* BlimpCompositorManager::GetLayerTreeSettings() {
|
| - if (!settings_) {
|
| - settings_.reset(new cc::LayerTreeSettings);
|
| -
|
| - // TODO(khushalsagar): The server should selectively send only those
|
| - // LayerTreeSettings which should remain consistent across the server and
|
| - // client. Since it currently overrides all settings, ignore them.
|
| - // See crbug/577985.
|
| - GenerateLayerTreeSettings(settings_.get());
|
| - settings_
|
| - ->abort_commit_before_output_surface_creation = false;
|
| - settings_->renderer_settings.buffer_to_texture_target_map =
|
| - BlimpGpuMemoryBufferManager::GetDefaultBufferToTextureTargetMap();
|
| - }
|
| -
|
| - return settings_.get();
|
| -}
|
| -
|
| -void BlimpCompositorManager::DidCompleteSwapBuffers() {
|
| - DCHECK(client_);
|
| - client_->OnSwapBuffersCompleted();
|
| -}
|
| -
|
| -void BlimpCompositorManager::DidCommitAndDrawFrame() {
|
| - DCHECK(client_);
|
| - client_->DidCommitAndDrawFrame();
|
| -}
|
| -
|
| -scoped_refptr<base::SingleThreadTaskRunner>
|
| -BlimpCompositorManager::GetCompositorTaskRunner() {
|
| - if (compositor_thread_)
|
| - return compositor_thread_->task_runner();
|
| -
|
| - base::Thread::Options thread_options;
|
| -#if defined(OS_ANDROID)
|
| - thread_options.priority = base::ThreadPriority::DISPLAY;
|
| -#endif
|
| - compositor_thread_.reset(new base::Thread("Compositor"));
|
| - compositor_thread_->StartWithOptions(thread_options);
|
| -
|
| - scoped_refptr<base::SingleThreadTaskRunner> task_runner =
|
| - compositor_thread_->task_runner();
|
| - task_runner->PostTask(
|
| - FROM_HERE,
|
| - base::Bind(base::IgnoreResult(&base::ThreadRestrictions::SetIOAllowed),
|
| - false));
|
| - // TODO(dtrainor): Determine whether or not we can disallow waiting.
|
| -
|
| - return task_runner;
|
| -}
|
| -
|
| -cc::TaskGraphRunner* BlimpCompositorManager::GetTaskGraphRunner() {
|
| - return g_task_graph_runner.Pointer();
|
| -}
|
| -
|
| -gpu::GpuMemoryBufferManager*
|
| -BlimpCompositorManager::GetGpuMemoryBufferManager() {
|
| - return gpu_memory_buffer_manager_.get();
|
| -}
|
| -
|
| -cc::ImageSerializationProcessor*
|
| -BlimpCompositorManager::GetImageSerializationProcessor() {
|
| - return BlobImageSerializationProcessor::current();
|
| -}
|
| -
|
| -void BlimpCompositorManager::SendWebGestureEvent(
|
| - int render_widget_id,
|
| - const blink::WebGestureEvent& gesture_event) {
|
| - render_widget_feature_->SendWebGestureEvent(kDummyTabId,
|
| - render_widget_id,
|
| - gesture_event);
|
| -}
|
| -
|
| -void BlimpCompositorManager::SendCompositorMessage(
|
| - int render_widget_id,
|
| - const cc::proto::CompositorMessage& message) {
|
| - render_widget_feature_->SendCompositorMessage(kDummyTabId,
|
| - render_widget_id,
|
| - message);
|
| -}
|
| -
|
| -BlimpCompositor* BlimpCompositorManager::GetCompositor(int render_widget_id) {
|
| - CompositorMap::const_iterator it = compositors_.find(render_widget_id);
|
| - if (it == compositors_.end())
|
| - return nullptr;
|
| - return it->second.get();
|
| -}
|
| -
|
| -} // namespace client
|
| -} // namespace blimp
|
|
|