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); |
}; |