Merge ozone-mir:compile-with-mir into ozone-mir:ozone-mir

Proposed by Andrea Azzarone
Status: Merged
Approved by: Andrea Azzarone
Approved revision: 531a040be8f9d6ec5073504d9105b414ccd0db79
Merge reported by: Andrea Azzarone
Merged at revision: not available
Proposed branch: ozone-mir:compile-with-mir
Merge into: ozone-mir:ozone-mir
Diff against target: 399 lines (+328/-0)
9 files modified
ui/ozone/BUILD.gn (+5/-0)
ui/ozone/ozone.gni (+2/-0)
ui/ozone/platform/mir/BUILD.gn (+42/-0)
ui/ozone/platform/mir/client_native_pixmap_factory_mir.cc (+15/-0)
ui/ozone/platform/mir/client_native_pixmap_factory_mir.h (+17/-0)
ui/ozone/platform/mir/mir_window.cc (+84/-0)
ui/ozone/platform/mir/mir_window.h (+48/-0)
ui/ozone/platform/mir/ozone_platform_mir.cc (+98/-0)
ui/ozone/platform/mir/ozone_platform_mir.h (+17/-0)
Reviewer Review Type Date Requested Status
Unity Team Pending
Review via email: mp+317178@code.launchpad.net

Commit message

Initial branch to create the chromium/ozone/mir platform.

To post a comment you must log in.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/ui/ozone/BUILD.gn b/ui/ozone/BUILD.gn
2index b5746be..e24b0f8 100644
3--- a/ui/ozone/BUILD.gn
4+++ b/ui/ozone/BUILD.gn
5@@ -42,6 +42,11 @@ if (ozone_platform_wayland) {
6 ozone_platform_test_deps += [ "platform/wayland:wayland_unittests" ]
7 }
8
9+if (ozone_platform_mir) {
10+ ozone_platforms += [ "mir" ]
11+ ozone_platform_deps += [ "platform/mir" ]
12+}
13+
14 if (ozone_platform_x11) {
15 ozone_platforms += [ "x11" ]
16 ozone_platform_deps += [ "platform/x11" ]
17diff --git a/ui/ozone/ozone.gni b/ui/ozone/ozone.gni
18index b677b48..d711a18 100644
19--- a/ui/ozone/ozone.gni
20+++ b/ui/ozone/ozone.gni
21@@ -27,6 +27,7 @@ declare_args() {
22 ozone_platform_headless = false
23 ozone_platform_x11 = false
24 ozone_platform_wayland = false
25+ ozone_platform_mir = false
26
27 if (ozone_auto_platforms) {
28 # Use headless as the default platform.
29@@ -55,6 +56,7 @@ declare_args() {
30 } else if (is_desktop_linux) {
31 ozone_platform_wayland = true
32 ozone_platform_x11 = true
33+ ozone_platform_mir = true
34 }
35 }
36 }
37diff --git a/ui/ozone/platform/mir/BUILD.gn b/ui/ozone/platform/mir/BUILD.gn
38new file mode 100644
39index 0000000..f3dd99d
40--- /dev/null
41+++ b/ui/ozone/platform/mir/BUILD.gn
42@@ -0,0 +1,42 @@
43+## Copyright 2017 The Chromium Authors. All rights reserved.
44+## Use of this source code is governed by a BSD-style license that can be
45+## found in the LICENSE file.
46+
47+visibility = [ "//ui/ozone/*" ]
48+
49+import("//build/config/linux/pkg_config.gni")
50+
51+pkg_config("mirclient") {
52+ packages = [ "mirclient" ]
53+}
54+
55+source_set("mir") {
56+ sources = [
57+ "client_native_pixmap_factory_mir.cc",
58+ "client_native_pixmap_factory_mir.h",
59+ "mir_window.cc",
60+ "mir_window.h",
61+ "ozone_platform_mir.cc",
62+ "ozone_platform_mir.h"
63+ ]
64+
65+ deps = [
66+ "//base",
67+ "//skia",
68+ "//ui/display",
69+ "//ui/events",
70+ "//ui/events/platform",
71+ "//ui/gfx",
72+ "//ui/gfx/geometry",
73+ "//ui/ozone:ozone_base",
74+ "//ui/ozone/common",
75+ "//ui/platform_window",
76+ ]
77+
78+ defines = [ "OZONE_IMPLEMENTATION" ]
79+
80+ configs += [
81+ ":mirclient",
82+ "//third_party/khronos:khronos_headers"
83+ ]
84+}
85diff --git a/ui/ozone/platform/mir/client_native_pixmap_factory_mir.cc b/ui/ozone/platform/mir/client_native_pixmap_factory_mir.cc
86new file mode 100644
87index 0000000..e2a24a9
88--- /dev/null
89+++ b/ui/ozone/platform/mir/client_native_pixmap_factory_mir.cc
90@@ -0,0 +1,15 @@
91+// Copyright 2017 The Chromium Authors. All rights reserved.
92+// Use of this source code is governed by a BSD-style license that can be
93+// found in the LICENSE file.
94+
95+#include "ui/ozone/platform/mir/client_native_pixmap_factory_mir.h"
96+
97+#include "ui/ozone/common/stub_client_native_pixmap_factory.h"
98+
99+namespace ui {
100+
101+ClientNativePixmapFactory* CreateClientNativePixmapFactoryMir() {
102+ return CreateStubClientNativePixmapFactory();
103+}
104+
105+} // namespace ui
106diff --git a/ui/ozone/platform/mir/client_native_pixmap_factory_mir.h b/ui/ozone/platform/mir/client_native_pixmap_factory_mir.h
107new file mode 100644
108index 0000000..a65b288
109--- /dev/null
110+++ b/ui/ozone/platform/mir/client_native_pixmap_factory_mir.h
111@@ -0,0 +1,17 @@
112+// Copyright 2017 The Chromium Authors. All rights reserved.
113+// Use of this source code is governed by a BSD-style license that can be
114+// found in the LICENSE file.
115+
116+#ifndef UI_OZONE_PLATFORM_MIR_CLIENT_NATIVE_PIXMAP_FACTORY_MIR_H_
117+#define UI_OZONE_PLATFORM_MIR_CLIENT_NATIVE_PIXMAP_FACTORY_MIR_H_
118+
119+namespace ui {
120+
121+class ClientNativePixmapFactory;
122+
123+// Constructor hook for use in constructor_list.cc
124+ClientNativePixmapFactory* CreateClientNativePixmapFactoryMir();
125+
126+} // namespace ui
127+
128+#endif // UI_OZONE_PLATFORM_MIR_CLIENT_NATIVE_PIXMAP_FACTORY_MIR_H_
129diff --git a/ui/ozone/platform/mir/mir_window.cc b/ui/ozone/platform/mir/mir_window.cc
130new file mode 100644
131index 0000000..9835650
132--- /dev/null
133+++ b/ui/ozone/platform/mir/mir_window.cc
134@@ -0,0 +1,84 @@
135+// Copyright 2017 The Chromium Authors. All rights reserved.
136+// Use of this source code is governed by a BSD-style license that can be
137+// found in the LICENSE file.
138+
139+#include "ui/ozone/platform/mir/mir_window.h"
140+
141+#include "base/logging.h"
142+
143+namespace ui {
144+
145+
146+MirWindow::MirWindow() {
147+}
148+
149+MirWindow::~MirWindow() {
150+}
151+
152+void MirWindow::Show() {
153+ NOTIMPLEMENTED();
154+}
155+
156+void MirWindow::Hide() {
157+ NOTIMPLEMENTED();
158+}
159+
160+void MirWindow::Close() {
161+ NOTIMPLEMENTED();
162+}
163+
164+void MirWindow::SetBounds(const gfx::Rect& bounds) {
165+ NOTIMPLEMENTED();
166+}
167+
168+gfx::Rect MirWindow::GetBounds() {
169+ NOTIMPLEMENTED();
170+ return gfx::Rect(0, 0);
171+}
172+
173+void MirWindow::SetTitle(const base::string16& title) {
174+ NOTIMPLEMENTED();
175+}
176+
177+void MirWindow::SetCapture() {
178+ NOTIMPLEMENTED();
179+}
180+
181+void MirWindow::ReleaseCapture() {
182+ NOTIMPLEMENTED();
183+}
184+
185+void MirWindow::ToggleFullscreen() {
186+ NOTIMPLEMENTED();
187+}
188+
189+void MirWindow::Maximize() {
190+ NOTIMPLEMENTED();
191+}
192+
193+void MirWindow::Minimize() {
194+ NOTIMPLEMENTED();
195+}
196+
197+void MirWindow::Restore() {
198+ NOTIMPLEMENTED();
199+}
200+
201+void MirWindow::SetCursor(PlatformCursor cursor) {
202+ NOTIMPLEMENTED();
203+}
204+
205+void MirWindow::MoveCursorTo(const gfx::Point& location) {
206+ NOTIMPLEMENTED();
207+}
208+
209+void MirWindow::ConfineCursorToBounds(const gfx::Rect& bounds) {
210+ NOTIMPLEMENTED();
211+}
212+
213+PlatformImeController* MirWindow::GetPlatformImeController() {
214+ NOTIMPLEMENTED();
215+ return nullptr;
216+}
217+
218+} // namespace ui
219diff --git a/ui/ozone/platform/mir/mir_window.h b/ui/ozone/platform/mir/mir_window.h
220new file mode 100644
221index 0000000..25114c2
222--- /dev/null
223+++ b/ui/ozone/platform/mir/mir_window.h
224@@ -0,0 +1,48 @@
225+// Copyright 2017 The Chromium Authors. All rights reserved.
226+// Use of this source code is governed by a BSD-style license that can be
227+// found in the LICENSE file.
228+
229+#ifndef UI_OZONE_PLATFORM_MIR_MIR_WINDOW_H_
230+#define UI_OZONE_PLATFORM_MIR_MIR_WINDOW_H_
231+
232+#include "ui/gfx/geometry/rect.h"
233+#include "ui/gfx/native_widget_types.h"
234+#include "ui/platform_window/platform_window.h"
235+
236+namespace ui {
237+
238+class MirWindow : public PlatformWindow {
239+ public:
240+ MirWindow();
241+ ~MirWindow() override;
242+
243+ void Show() override;
244+ void Hide() override;
245+ void Close() override;
246+
247+ void SetBounds(const gfx::Rect& bounds) override;
248+ gfx::Rect GetBounds() override;
249+
250+ void SetTitle(const base::string16& title) override;
251+
252+ void SetCapture() override;
253+ void ReleaseCapture() override;
254+
255+ void ToggleFullscreen() override;
256+ void Maximize() override;
257+ void Minimize() override;
258+ void Restore() override;
259+
260+ void SetCursor(PlatformCursor cursor) override;
261+ void MoveCursorTo(const gfx::Point& location) override;
262+ void ConfineCursorToBounds(const gfx::Rect& bounds) override;
263+
264+ PlatformImeController* GetPlatformImeController() override;
265+
266+ private:
267+ DISALLOW_COPY_AND_ASSIGN(MirWindow);
268+};
269+
270+} // namespace ui
271+
272+#endif // UI_OZONE_PLATFORM_MIR_MIR_WINDOW_H_
273diff --git a/ui/ozone/platform/mir/ozone_platform_mir.cc b/ui/ozone/platform/mir/ozone_platform_mir.cc
274new file mode 100644
275index 0000000..c85cdd7
276--- /dev/null
277+++ b/ui/ozone/platform/mir/ozone_platform_mir.cc
278@@ -0,0 +1,98 @@
279+// Copyright 2017 The Chromium Authors. All rights reserved.
280+// Use of this source code is governed by a BSD-style license that can be
281+// found in the LICENSE file.
282+
283+#include "ui/ozone/platform/mir/ozone_platform_mir.h"
284+
285+#include "base/memory/ptr_util.h"
286+#include "base/logging.h"
287+#include "ui/display/fake_display_delegate.h"
288+#include "ui/ozone/common/stub_overlay_manager.h"
289+#include "ui/ozone/platform/mir/mir_window.h"
290+#include "ui/ozone/public/cursor_factory_ozone.h"
291+#include "ui/ozone/public/gpu_platform_support_host.h"
292+#include "ui/ozone/public/input_controller.h"
293+#include "ui/ozone/public/ozone_platform.h"
294+#include "ui/ozone/public/system_input_injector.h"
295+
296+namespace ui {
297+
298+namespace {
299+
300+class OzonePlatformMir : public OzonePlatform {
301+ public:
302+ OzonePlatformMir() {}
303+ ~OzonePlatformMir() override {}
304+
305+ // OzonePlatform
306+ SurfaceFactoryOzone* GetSurfaceFactoryOzone() override {
307+ NOTIMPLEMENTED();
308+ return nullptr;
309+ }
310+
311+ OverlayManagerOzone* GetOverlayManager() override {
312+ NOTIMPLEMENTED();
313+ return nullptr;
314+ }
315+
316+ CursorFactoryOzone* GetCursorFactoryOzone() override {
317+ NOTIMPLEMENTED();
318+ return nullptr;
319+ }
320+
321+ InputController* GetInputController() override {
322+ NOTIMPLEMENTED();
323+ return nullptr;
324+ }
325+
326+ GpuPlatformSupportHost* GetGpuPlatformSupportHost() override {
327+ NOTIMPLEMENTED();
328+ return nullptr;
329+ }
330+
331+ std::unique_ptr<SystemInputInjector> CreateSystemInputInjector() override {
332+ NOTIMPLEMENTED();
333+ return nullptr;
334+ }
335+
336+ std::unique_ptr<PlatformWindow> CreatePlatformWindow(
337+ PlatformWindowDelegate* delegate,
338+ const gfx::Rect& bounds) override {
339+ NOTIMPLEMENTED();
340+ return nullptr;
341+ }
342+
343+ std::unique_ptr<display::NativeDisplayDelegate> CreateNativeDisplayDelegate()
344+ override {
345+ return base::MakeUnique<display::FakeDisplayDelegate>();
346+ }
347+
348+ void InitializeUI() override {
349+ InitParams default_params;
350+ InitializeUI(default_params);
351+ }
352+
353+ void InitializeUI(const InitParams& args) override {
354+ NOTIMPLEMENTED();
355+ }
356+
357+ void InitializeGPU() override {
358+ InitParams default_params;
359+ InitializeGPU(default_params);
360+ }
361+
362+ void InitializeGPU(const InitParams& args) override {
363+ NOTIMPLEMENTED();
364+ }
365+
366+ private:
367+ DISALLOW_COPY_AND_ASSIGN(OzonePlatformMir);
368+};
369+
370+} // namespace
371+
372+OzonePlatform* CreateOzonePlatformMir() {
373+ return new OzonePlatformMir;
374+}
375+
376+} // namespace ui
377diff --git a/ui/ozone/platform/mir/ozone_platform_mir.h b/ui/ozone/platform/mir/ozone_platform_mir.h
378new file mode 100644
379index 0000000..cf72231
380--- /dev/null
381+++ b/ui/ozone/platform/mir/ozone_platform_mir.h
382@@ -0,0 +1,17 @@
383+// Copyright 2017 The Chromium Authors. All rights reserved.
384+// Use of this source code is governed by a BSD-style license that can be
385+// found in the LICENSE file.
386+
387+#ifndef UI_OZONE_PLATFORM_MIR_OZONE_PLATFORM_MIR_H_
388+#define UI_OZONE_PLATFORM_MIR_OZONE_PLATFORM_MIR_H_
389+
390+namespace ui {
391+
392+class OzonePlatform;
393+
394+// Constructor hook for use in ozone_platform_list.cc
395+OzonePlatform* CreateOzonePlatformMir();
396+
397+} // namespace ui
398+
399+#endif // UI_OZONE_PLATFORM_MIR_OZONE_PLATFORM_MIR_H_

Subscribers

People subscribed via source and target branches

to all changes: