diff options
Diffstat (limited to 'views/desktop')
-rw-r--r-- | views/desktop/desktop_main.cc | 18 | ||||
-rw-r--r-- | views/desktop/desktop_window_view.cc | 4 |
2 files changed, 22 insertions, 0 deletions
diff --git a/views/desktop/desktop_main.cc b/views/desktop/desktop_main.cc index 09db616..ebee039 100644 --- a/views/desktop/desktop_main.cc +++ b/views/desktop/desktop_main.cc @@ -17,6 +17,12 @@ #include <ole2.h> #endif +#if defined(USE_WAYLAND) +#include "ui/gfx/gl/gl_surface_egl.h" +#include "ui/wayland/wayland_display.h" +#include "ui/wayland/wayland_message_pump.h" +#endif + int main(int argc, char** argv) { #if defined(OS_WIN) OleInitialize(NULL); @@ -24,8 +30,10 @@ int main(int argc, char** argv) { // Initializes gtk stuff. g_thread_init(NULL); g_type_init(); +#if !defined(USE_WAYLAND) gtk_init(&argc, &argv); #endif +#endif CommandLine::Init(argc, argv); @@ -39,6 +47,16 @@ int main(int argc, char** argv) { ResourceBundle::InitSharedInstance("en-US"); +#if defined(USE_WAYLAND) + // Wayland uses EGL for drawing, so we need to initialize this as early as + // possible. + if (!gfx::GLSurface::InitializeOneOff()) { + LOG(ERROR) << "Failed to initialize GLSurface"; + return -1; + } + ui::WaylandMessagePump wayland_message_pump( + ui::WaylandDisplay::GetDisplay(gfx::GLSurfaceEGL::GetNativeDisplay())); +#endif MessageLoop main_message_loop(MessageLoop::TYPE_UI); views::desktop::DesktopViewsDelegate views_delegate; diff --git a/views/desktop/desktop_window_view.cc b/views/desktop/desktop_window_view.cc index e2bbaef..7562e67 100644 --- a/views/desktop/desktop_window_view.cc +++ b/views/desktop/desktop_window_view.cc @@ -19,6 +19,8 @@ #include "views/widget/native_widget_aura.h" #elif defined(OS_WIN) #include "views/widget/native_widget_win.h" +#elif defined(USE_WAYLAND) +#include "views/widget/native_widget_wayland.h" #elif defined(TOOLKIT_USES_GTK) #include "views/widget/native_widget_gtk.h" #endif @@ -143,6 +145,8 @@ void DesktopWindowView::CreateDesktopWindow(DesktopType type) { params.native_widget = new views::NativeWidgetAura(window); #elif defined(OS_WIN) params.native_widget = new views::NativeWidgetWin(window); +#elif defined(USE_WAYLAND) + params.native_widget = new views::NativeWidgetWayland(window); #elif defined(TOOLKIT_USES_GTK) params.native_widget = new views::NativeWidgetGtk(window); params.maximize = true; |