| Index: blimp/client/app/linux/blimp_display_manager.cc
|
| diff --git a/blimp/client/app/linux/blimp_display_manager.cc b/blimp/client/app/linux/blimp_display_manager.cc
|
| index e6f9f851465880e6c9dee6f68f771848b795afa6..38fd51bf653558533fa2d57bb2a32ba91ce1ed24 100644
|
| --- a/blimp/client/app/linux/blimp_display_manager.cc
|
| +++ b/blimp/client/app/linux/blimp_display_manager.cc
|
| @@ -4,7 +4,9 @@
|
|
|
| #include "blimp/client/app/linux/blimp_display_manager.h"
|
|
|
| +#include "blimp/client/app/compositor/browser_compositor.h"
|
| #include "blimp/client/core/contents/tab_control_feature.h"
|
| +#include "blimp/client/feature/compositor/blimp_compositor_manager.h"
|
| #include "blimp/client/feature/render_widget_feature.h"
|
| #include "ui/events/event.h"
|
| #include "ui/gfx/geometry/size.h"
|
| @@ -22,25 +24,33 @@ BlimpDisplayManager::BlimpDisplayManager(
|
| : device_pixel_ratio_(1.f),
|
| delegate_(delegate),
|
| tab_control_feature_(tab_control_feature),
|
| - blimp_compositor_manager_(
|
| - new BlimpCompositorManager(render_widget_feature, this)),
|
| + visible_(true),
|
| + widget_(gfx::kNullAcceleratedWidget),
|
| + compositor_(base::MakeUnique<BrowserCompositor>()),
|
| platform_window_(new ui::X11Window(this)) {
|
| + blimp_compositor_manager_ = base::MakeUnique<BlimpCompositorManager>(
|
| + render_widget_feature, BrowserCompositor::GetSurfaceManager(),
|
| + BrowserCompositor::GetGpuMemoryBufferManager(),
|
| + base::Bind(&BrowserCompositor::AllocateSurfaceClientId));
|
| + blimp_compositor_manager_->SetVisible(visible_);
|
| +
|
| platform_window_->SetBounds(gfx::Rect(window_size));
|
| platform_window_->Show();
|
| +
|
| tab_control_feature_->SetSizeAndScale(platform_window_->GetBounds().size(),
|
| device_pixel_ratio_);
|
|
|
| - blimp_compositor_manager_->SetVisible(true);
|
| + compositor_->SetSize(platform_window_->GetBounds().size());
|
| + compositor_->SetContentLayer(blimp_compositor_manager_->layer());
|
| }
|
|
|
| BlimpDisplayManager::~BlimpDisplayManager() {}
|
|
|
| void BlimpDisplayManager::OnBoundsChanged(const gfx::Rect& new_bounds) {
|
| + compositor_->SetSize(new_bounds.size());
|
| tab_control_feature_->SetSizeAndScale(new_bounds.size(), device_pixel_ratio_);
|
| }
|
|
|
| -void BlimpDisplayManager::OnDamageRect(const gfx::Rect& damaged_region) {}
|
| -
|
| void BlimpDisplayManager::DispatchEvent(ui::Event* event) {
|
| // TODO(dtrainor): Look into using web_input_event_aura to translate these to
|
| // blink events.
|
| @@ -48,6 +58,7 @@ void BlimpDisplayManager::DispatchEvent(ui::Event* event) {
|
|
|
| void BlimpDisplayManager::OnCloseRequest() {
|
| blimp_compositor_manager_->SetVisible(false);
|
| + compositor_->SetAcceleratedWidget(gfx::kNullAcceleratedWidget);
|
| platform_window_->Close();
|
| }
|
|
|
| @@ -56,11 +67,6 @@ void BlimpDisplayManager::OnClosed() {
|
| delegate_->OnClosed();
|
| }
|
|
|
| -void BlimpDisplayManager::OnWindowStateChanged(
|
| - ui::PlatformWindowState new_state) {}
|
| -
|
| -void BlimpDisplayManager::OnLostCapture() {}
|
| -
|
| void BlimpDisplayManager::OnAcceleratedWidgetAvailable(
|
| gfx::AcceleratedWidget widget,
|
| float device_pixel_ratio) {
|
| @@ -68,19 +74,16 @@ void BlimpDisplayManager::OnAcceleratedWidgetAvailable(
|
| tab_control_feature_->SetSizeAndScale(platform_window_->GetBounds().size(),
|
| device_pixel_ratio_);
|
|
|
| - if (widget != gfx::kNullAcceleratedWidget)
|
| - blimp_compositor_manager_->SetAcceleratedWidget(widget);
|
| + if (widget != gfx::kNullAcceleratedWidget) {
|
| + widget_ = widget;
|
| + if (visible_)
|
| + compositor_->SetAcceleratedWidget(widget_);
|
| + }
|
| }
|
|
|
| void BlimpDisplayManager::OnAcceleratedWidgetDestroyed() {
|
| - blimp_compositor_manager_->ReleaseAcceleratedWidget();
|
| + compositor_->SetAcceleratedWidget(gfx::kNullAcceleratedWidget);
|
| }
|
|
|
| -void BlimpDisplayManager::OnActivationChanged(bool active) {}
|
| -
|
| -void BlimpDisplayManager::OnSwapBuffersCompleted() {}
|
| -
|
| -void BlimpDisplayManager::DidCommitAndDrawFrame() {}
|
| -
|
| } // namespace client
|
| } // namespace blimp
|
|
|