| Index: ui/ozone/platform/dri/ozone_platform_gbm.cc
|
| diff --git a/ui/ozone/platform/dri/ozone_platform_gbm.cc b/ui/ozone/platform/dri/ozone_platform_gbm.cc
|
| index 791bdc32cdfe4a72bd6abaa845f6c0faadc15ee8..5b80d46337c9577f4b74b42c8984bb51abf392fc 100644
|
| --- a/ui/ozone/platform/dri/ozone_platform_gbm.cc
|
| +++ b/ui/ozone/platform/dri/ozone_platform_gbm.cc
|
| @@ -14,6 +14,7 @@
|
| #include "ui/events/ozone/evdev/event_factory_evdev.h"
|
| #include "ui/ozone/platform/dri/cursor_factory_evdev_dri.h"
|
| #include "ui/ozone/platform/dri/dri_window.h"
|
| +#include "ui/ozone/platform/dri/dri_window_delegate_proxy.h"
|
| #include "ui/ozone/platform/dri/dri_window_manager.h"
|
| #include "ui/ozone/platform/dri/dri_wrapper.h"
|
| #include "ui/ozone/platform/dri/gbm_buffer.h"
|
| @@ -97,11 +98,16 @@ class OzonePlatformGbm : public OzonePlatform {
|
| virtual scoped_ptr<PlatformWindow> CreatePlatformWindow(
|
| PlatformWindowDelegate* delegate,
|
| const gfx::Rect& bounds) OVERRIDE {
|
| - return scoped_ptr<PlatformWindow>(
|
| + scoped_ptr<DriWindow> platform_window(
|
| new DriWindow(delegate,
|
| bounds,
|
| - surface_factory_ozone_.get(),
|
| - event_factory_ozone_.get()));
|
| + scoped_ptr<DriWindowDelegate>(new DriWindowDelegateProxy(
|
| + ui_window_manager_.NextAcceleratedWidget(),
|
| + gpu_platform_support_host_.get())),
|
| + event_factory_ozone_.get(),
|
| + &ui_window_manager_));
|
| + platform_window->Initialize();
|
| + return platform_window.PassAs<PlatformWindow>();
|
| }
|
| #if defined(OS_CHROMEOS)
|
| virtual scoped_ptr<NativeDisplayDelegate> CreateNativeDisplayDelegate()
|
| @@ -120,7 +126,6 @@ class OzonePlatformGbm : public OzonePlatform {
|
| // Needed since the browser process creates the accelerated widgets and that
|
| // happens through SFO.
|
| surface_factory_ozone_.reset(new GbmSurfaceFactory(use_surfaceless_));
|
| -
|
| device_manager_ = CreateDeviceManager();
|
| gpu_platform_support_host_.reset(new GpuPlatformSupportHostGbm());
|
| cursor_factory_ozone_.reset(
|
| @@ -139,7 +144,8 @@ class OzonePlatformGbm : public OzonePlatform {
|
|
|
| surface_factory_ozone_->InitializeGpu(dri_.get(),
|
| buffer_generator_->device(),
|
| - screen_manager_.get());
|
| + screen_manager_.get(),
|
| + &gpu_window_manager_);
|
| gpu_platform_support_.reset(
|
| new GpuPlatformSupportGbm(surface_factory_ozone_.get(),
|
| &gpu_window_manager_,
|
| @@ -173,6 +179,7 @@ class OzonePlatformGbm : public OzonePlatform {
|
| scoped_ptr<GpuPlatformSupportHostGbm> gpu_platform_support_host_;
|
|
|
| DriWindowManager gpu_window_manager_;
|
| + DriWindowManager ui_window_manager_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(OzonePlatformGbm);
|
| };
|
|
|