Mir

Merge lp:~alan-griffiths/mir/mir-on-mir-platform into lp:mir

Proposed by Alan Griffiths
Status: Work in progress
Proposed branch: lp:~alan-griffiths/mir/mir-on-mir-platform
Merge into: lp:mir
Diff against target: 1306 lines (+318/-225)
49 files modified
debian/control (+15/-0)
debian/mir-platform-graphics-mir13.install (+1/-0)
include/platform/mir/graphics/cursor.h (+0/-1)
include/platform/mir/graphics/gl_extensions_base.h (+3/-3)
include/platform/mir/graphics/platform.h (+14/-12)
include/platform/mir/graphics/surfaceless_egl_context.h (+3/-3)
include/test/mir/test/doubles/stub_cursor.h (+0/-1)
src/include/server/mir/default_server_configuration.h (+0/-1)
src/platform/graphics/CMakeLists.txt (+5/-1)
src/platform/graphics/gl_extensions_base.cpp (+3/-3)
src/platform/graphics/surfaceless_egl_context.cpp (+3/-3)
src/platform/symbols.map (+7/-0)
src/platforms/CMakeLists.txt (+1/-0)
src/platforms/eglstream-kms/server/platform_symbols.cpp (+2/-1)
src/platforms/mesa/server/kms/cursor.cpp (+0/-11)
src/platforms/mesa/server/kms/cursor.h (+0/-1)
src/platforms/mesa/server/kms/platform_symbols.cpp (+2/-1)
src/platforms/mesa/server/x11/graphics/graphics.cpp (+2/-1)
src/platforms/mir/CMakeLists.txt (+41/-0)
src/platforms/mir/cursor.cpp (+2/-8)
src/platforms/mir/cursor.h (+2/-4)
src/platforms/mir/display.cpp (+2/-2)
src/platforms/mir/platform.cpp (+134/-0)
src/platforms/mir/symbols.map.in (+20/-0)
src/server/CMakeLists.txt (+0/-1)
src/server/graphics/CMakeLists.txt (+0/-3)
src/server/graphics/default_configuration.cpp (+9/-74)
src/server/graphics/software_cursor.cpp (+0/-12)
src/server/graphics/software_cursor.h (+0/-1)
src/server/input/default_configuration.cpp (+0/-12)
src/server/symbols.map (+0/-1)
tests/acceptance-tests/test_nested_mir.cpp (+6/-13)
tests/include/mir/test/doubles/stub_host_connection.h (+7/-5)
tests/mir_test_framework/headless_nested_server_runner.cpp (+1/-1)
tests/mir_test_framework/platform_graphics_throw.cpp (+3/-2)
tests/mir_test_framework/stubbed_graphics_platform.cpp (+2/-1)
tests/unit-tests/graphics/test_software_cursor.cpp (+0/-19)
tests/unit-tests/input/CMakeLists.txt (+0/-1)
tests/unit-tests/platforms/mesa/kms/test_cursor.cpp (+1/-1)
tests/unit-tests/platforms/nested/CMakeLists.txt (+2/-0)
tests/unit-tests/platforms/nested/test_buffer.cpp (+5/-2)
tests/unit-tests/platforms/nested/test_host_buffer.cpp (+1/-1)
tests/unit-tests/platforms/nested/test_ipc_operations.cpp (+2/-2)
tests/unit-tests/platforms/nested/test_nested_cursor.cpp (+6/-6)
tests/unit-tests/platforms/nested/test_nested_display.cpp (+3/-3)
tests/unit-tests/platforms/nested/test_nested_display_buffer.cpp (+5/-5)
tests/unit-tests/platforms/nested/test_nested_display_configuration.cpp (+1/-1)
tests/unit-tests/platforms/nested/test_nested_input_platform.cpp (+1/-1)
tools/update_package_abis.sh (+1/-0)
To merge this branch: bzr merge lp:~alan-griffiths/mir/mir-on-mir-platform
Reviewer Review Type Date Requested Status
Alan Griffiths Needs Fixing
Mir CI Bot continuous-integration Needs Fixing
Review via email: mp+325931@code.launchpad.net

Commit message

Mir-on-Mir as a platform

To post a comment you must log in.
Revision history for this message
Alan Griffiths (alan-griffiths) wrote :

I've seen intermittent tests failing to shutdown. Need to investigate further.

review: Needs Information
Revision history for this message
Mir CI Bot (mir-ci-bot) wrote :

FAILED: Continuous integration, rev:4199
https://mir-jenkins.ubuntu.com/job/mir-ci/3458/
Executed test runs:
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-mir/4719/console
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-0-fetch/4873
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=artful/4862
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial/4862
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=zesty/4862
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=artful/4756
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=artful/4756/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=zesty/4756
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=zesty/4756/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=artful/4756
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=artful/4756/artifact/output/*zip*/output.zip
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial/4756/console
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=zesty/4756/console
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=mesa,release=artful/4756
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=mesa,release=artful/4756/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=mesa,release=zesty/4756
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=mesa,release=zesty/4756/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial/4756
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial/4756/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://mir-jenkins.ubuntu.com/job/mir-ci/3458/rebuild

review: Needs Fixing (continuous-integration)
Revision history for this message
Alan Griffiths (alan-griffiths) wrote :
Download full text (3.2 KiB)

Yep, that's the sort of thing I saw too:

16:24:57 11: [ RUN ] NestedInput.on_add_device_observer_gets_device_added_calls_on_existing_devices
16:24:57 11: [2017-06-19 16:24:56.684528] mirserver: Starting
16:24:57 11: [2017-06-19 16:24:56.687228] mirserver: Selected driver: mir:stub-graphics (version 0.27.0)
16:24:57 11: [2017-06-19 16:24:56.874292] mirserver: Using software cursor
16:24:57 11: [2017-06-19 16:24:56.904316] mirserver: Selected input driver: mir:stub-input (version: 0.27.0)
16:24:57 11: [2017-06-19 16:24:56.929421] mirserver: Mir version 0.27.0
16:24:57 11: [2017-06-19 16:24:57.085794] mirserver: Initial display configuration:
16:24:57 11: [2017-06-19 16:24:57.086460] mirserver: CMakeFiles CTestTestfile.cmake Makefile cmake_install.cmake mir_acceptance_tests_precompiled.hpp.gch precompiled.hpp.compileflags precompiled.hpp.compileflags.processed Output 1: VGA connected, used
16:24:57 11: [2017-06-19 16:24:57.086656] mirserver: . |_ Physical size 0.0" 0x0mm
16:24:57 11: [2017-06-19 16:24:57.086807] mirserver: . |_ Power is on
16:24:57 11: [2017-06-19 16:24:57.086988] mirserver: . |_ Current mode 1920x1080 60.00Hz
16:24:57 11: [2017-06-19 16:24:57.087161] mirserver: . |_ Preferred mode 1920x1080 60.00Hz
16:24:57 11: [2017-06-19 16:24:57.087305] mirserver: . |_ Orientation normal
16:24:57 11: [2017-06-19 16:24:57.087465] mirserver: . |_ Logical size 1920x1080
16:24:57 11: [2017-06-19 16:24:57.087617] mirserver: . |_ Logical position +0+0
16:24:57 11: [2017-06-19 16:24:57.087773] mirserver: . |_ Scaling factor: 1.00
16:24:58 11: [2017-06-19 16:24:57.192869] mirserver: Starting
16:24:58 11: [2017-06-19 16:24:57.196132] mirserver: Selected driver: mir:mir (version 0.27.0)
16:24:59 11: [2017-06-19 16:24:58.279249] mirserver: Using hardware cursor
16:24:59 11: [2017-06-19 16:24:58.512087] mirserver: Selected input driver: mir:mir-input (version: 0.27.0)
16:24:59 11: [2017-06-19 16:24:58.579084] mirserver: Mir version 0.27.0
16:24:59 11: [2017-06-19 16:24:58.859170] mirserver: Initial display configuration:
16:24:59 11: [2017-06-19 16:24:58.860082] mirserver: CMakeFiles CTestTestfile.cmake Makefile cmake_install.cmake mir_acceptance_tests_precompiled.hpp.gch precompiled.hpp.compileflags precompiled.hpp.compileflags.processed Output 1: VGA connected, used
16:24:59 11: [2017-06-19 16:24:58.860288] mirserver: . |_ Physical size 0.0" 0x0mm
16:24:59 11: [2017-06-19 16:24:58.860449] mirserver: . |_ Power is on
16:24:59 11: [2017-06-19 16:24:58.860644] mirserver: . |_ Current mode 1920x1080 60.00Hz
16:24:59 11: [2017-06-19 16:24:58.860829] mirserver: . |_ Preferred mode 1920x1080 60.00Hz
16:24:59 11: [2017-06-19 16:24:58.860989] mirserver: . |_ Orientation normal
16:24:59 11: [2017-06-19 16:24:58.861159] mirserver: . |_ Logical size 1920x1080
16:24:59 11: [2017-06-19 16:24:58.861321] mirserver: . |_ Logical position +0+0
16:24:59 11: [2017-06-19 16:24:58.861488] mirserver: . |_ Scaling factor: 1.00
16:24:59 11: [2017-06-19 16:24:58.917833] mirserver: Stopping
18:54:59 debian/rules:20: recipe for target 'override_dh_auto_test' failed
18:54:59 Makefile:130: recipe for target 'test' failed
18:54:59 make[1]: *** [override_dh_auto_test] Terminated
18...

Read more...

review: Needs Fixing

Unmerged revisions

4199. By Alan Griffiths

Fix some tests of mir-on-mir cursor

4198. By Alan Griffiths

Ensure nested tests use nested platform

4197. By Alan Griffiths

Better naming for Mir-on-Mir

4196. By Alan Griffiths

merge & fixup ~kdub/mir/real-nested-platform

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'debian/control'
2--- debian/control 2017-05-25 08:58:03 +0000
3+++ debian/control 2017-06-19 15:01:38 +0000
4@@ -347,6 +347,20 @@
5 Contains the shared libraries required for the Mir server to interact with
6 the hardware platform using the Mesa drivers.
7
8+Package: mir-platform-graphics-mir13
9+Section: libs
10+Architecture: linux-any
11+Multi-Arch: same
12+Pre-Depends: ${misc:Pre-Depends}
13+Depends: ${misc:Depends},
14+ ${shlibs:Depends},
15+Description: Display server for Ubuntu - platform library for Nested servers
16+ Mir is a display server running on linux systems, with a focus on efficiency,
17+ robust operation and a well-defined driver model.
18+ .
19+ Contains the shared libraries required for the Mir server to connect to
20+ another Mir server.
21+
22 Package: mir-platform-input-evdev7
23 Section: libs
24 Architecture: linux-any
25@@ -399,6 +413,7 @@
26 mir-platform-graphics-mesa-x13,
27 mir-client-platform-mesa5,
28 mir-platform-input-evdev7,
29+ mir-platform-graphics-mir13,
30 Description: Display server for Ubuntu - desktop driver metapackage
31 Mir is a display server running on linux systems, with a focus on efficiency,
32 robust operation and a well-defined driver model.
33
34=== added file 'debian/mir-platform-graphics-mir13.install'
35--- debian/mir-platform-graphics-mir13.install 1970-01-01 00:00:00 +0000
36+++ debian/mir-platform-graphics-mir13.install 2017-06-19 15:01:38 +0000
37@@ -0,0 +1,1 @@
38+usr/lib/*/mir/server-platform/server-mir.so.13
39
40=== modified file 'include/platform/mir/graphics/cursor.h'
41--- include/platform/mir/graphics/cursor.h 2015-04-28 07:54:10 +0000
42+++ include/platform/mir/graphics/cursor.h 2017-06-19 15:01:38 +0000
43@@ -33,7 +33,6 @@
44 class Cursor
45 {
46 public:
47- virtual void show() = 0;
48 virtual void show(CursorImage const& cursor_image) = 0;
49 virtual void hide() = 0;
50
51
52=== renamed file 'src/include/server/mir/graphics/gl_extensions_base.h' => 'include/platform/mir/graphics/gl_extensions_base.h'
53--- src/include/server/mir/graphics/gl_extensions_base.h 2015-02-22 07:46:25 +0000
54+++ include/platform/mir/graphics/gl_extensions_base.h 2017-06-19 15:01:38 +0000
55@@ -2,15 +2,15 @@
56 * Copyright © 2013 Canonical Ltd.
57 *
58 * This program is free software: you can redistribute it and/or modify it
59- * under the terms of the GNU General Public License version 3,
60+ * under the terms of the GNU Lesser General Public License version 3,
61 * as published by the Free Software Foundation.
62 *
63 * This program is distributed in the hope that it will be useful,
64 * but WITHOUT ANY WARRANTY; without even the implied warranty of
65 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
66- * GNU General Public License for more details.
67+ * GNU Lesser General Public License for more details.
68 *
69- * You should have received a copy of the GNU General Public License
70+ * You should have received a copy of the GNU Lesser General Public License
71 * along with this program. If not, see <http://www.gnu.org/licenses/>.
72 *
73 * Authored by: Alexandros Frantzis <alexandros.frantzis@canonical.com>
74
75=== modified file 'include/platform/mir/graphics/platform.h'
76--- include/platform/mir/graphics/platform.h 2017-06-09 11:19:23 +0000
77+++ include/platform/mir/graphics/platform.h 2017-06-19 15:01:38 +0000
78@@ -29,6 +29,7 @@
79 namespace mir
80 {
81 class EmergencyCleanupRegistry;
82+namespace shell { class HostLifecycleEventListener; }
83
84 namespace logging { class Logger; }
85
86@@ -149,22 +150,20 @@
87 /**
88 * A measure of how well a platform supports a device
89 *
90- * \note This is compared as an integer; best + 1 is a valid PlatformPriority that
91- * will be used in preference to a module that reports best.
92+ * \note This is compared as an integer; request + 1 is a valid PlatformPriority that
93+ * will be used in preference to a module that reports request.
94 * Platform modules distributed with Mir will never use a priority higher
95- * than best.
96+ * than request.
97 */
98 enum PlatformPriority : uint32_t
99 {
100 unsupported = 0, /**< Unable to function at all on this device */
101- dummy = 1, /**< Used only for dummy or stub platforms.
102- */
103+ dummy = 1, /**< Used only for dummy or stub platforms. */
104 supported = 128, /**< Capable of providing a functioning Platform on this device,
105- * possibly with degraded performance or features.
106- */
107- best = 256 /**< Capable of providing a Platform with the best features and
108- * performance this device is capable of.
109- */
110+ * possibly with degraded performance or features. */
111+ best = 192, /**< Capable of providing a Platform with the best features and
112+ * performance this device is capable of.*/
113+ requested = 256 /**< Provides a Platform that satisfies a user request. */
114 };
115
116 //The host/guest platform concept is soon to be removed. Use CreateRenderingPlatform and
117@@ -173,7 +172,8 @@
118 std::shared_ptr<mir::options::Option> const& options,
119 std::shared_ptr<mir::EmergencyCleanupRegistry> const& emergency_cleanup_registry,
120 std::shared_ptr<mir::graphics::DisplayReport> const& report,
121- std::shared_ptr<mir::logging::Logger> const& logger);
122+ std::shared_ptr<mir::logging::Logger> const& logger,
123+ std::shared_ptr<mir::shell::HostLifecycleEventListener> const& host_lifecycle_event_listener);
124
125 typedef void(*AddPlatformOptions)(
126 boost::program_options::options_description& config);
127@@ -210,6 +210,7 @@
128 * \param [in] options options to use for this platform
129 * \param [in] emergency_cleanup_registry object to register emergency shutdown handlers with
130 * \param [in] report the object to use to report interesting events from the display subsystem
131+ * \param [in] host_lifecycle_event_listener the object to use to listen to events from a host server
132 *
133 * This factory function needs to be implemented by each platform.
134 *
135@@ -219,7 +220,8 @@
136 std::shared_ptr<mir::options::Option> const& options,
137 std::shared_ptr<mir::EmergencyCleanupRegistry> const& emergency_cleanup_registry,
138 std::shared_ptr<mir::graphics::DisplayReport> const& report,
139- std::shared_ptr<mir::logging::Logger> const& logger);
140+ std::shared_ptr<mir::logging::Logger> const& logger,
141+ std::shared_ptr<mir::shell::HostLifecycleEventListener> const& host_lifecycle_event_listener);
142
143 /**
144 * Function prototype used to add platform specific options to the platform-independent server options.
145
146=== renamed file 'src/include/server/mir/graphics/surfaceless_egl_context.h' => 'include/platform/mir/graphics/surfaceless_egl_context.h'
147--- src/include/server/mir/graphics/surfaceless_egl_context.h 2016-07-28 09:10:43 +0000
148+++ include/platform/mir/graphics/surfaceless_egl_context.h 2017-06-19 15:01:38 +0000
149@@ -2,15 +2,15 @@
150 * Copyright © 2013 Canonical Ltd.
151 *
152 * This program is free software: you can redistribute it and/or modify it
153- * under the terms of the GNU General Public License version 3,
154+ * under the terms of the GNU Lesser General Public License version 3,
155 * as published by the Free Software Foundation.
156 *
157 * This program is distributed in the hope that it will be useful,
158 * but WITHOUT ANY WARRANTY; without even the implied warranty of
159 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
160- * GNU General Public License for more details.
161+ * GNU Lesser General Public License for more details.
162 *
163- * You should have received a copy of the GNU General Public License
164+ * You should have received a copy of the GNU Lesser General Public License
165 * along with this program. If not, see <http://www.gnu.org/licenses/>.
166 *
167 * Authored by: Alexandros Frantzis <alexandros.frantzis@canonical.com>
168
169=== modified file 'include/test/mir/test/doubles/stub_cursor.h'
170--- include/test/mir/test/doubles/stub_cursor.h 2016-01-29 08:18:22 +0000
171+++ include/test/mir/test/doubles/stub_cursor.h 2017-06-19 15:01:38 +0000
172@@ -30,7 +30,6 @@
173
174 struct StubCursor : public graphics::Cursor
175 {
176- void show() override {}
177 void show(graphics::CursorImage const&) override {}
178 void hide() override {}
179 void move_to(geometry::Point) override {}
180
181=== modified file 'src/include/server/mir/default_server_configuration.h'
182--- src/include/server/mir/default_server_configuration.h 2017-05-08 03:04:26 +0000
183+++ src/include/server/mir/default_server_configuration.h 2017-06-19 15:01:38 +0000
184@@ -208,7 +208,6 @@
185 virtual std::shared_ptr<renderer::RendererFactory> the_renderer_factory();
186 virtual std::shared_ptr<shell::DisplayConfigurationController> the_display_configuration_controller();
187 virtual std::shared_ptr<graphics::DisplayConfigurationPolicy> the_display_configuration_policy();
188- virtual std::shared_ptr<graphics::nested::HostConnection> the_host_connection();
189 virtual std::shared_ptr<graphics::GLConfig> the_gl_config();
190 /** @} */
191
192
193=== modified file 'src/platform/graphics/CMakeLists.txt'
194--- src/platform/graphics/CMakeLists.txt 2017-05-08 03:04:26 +0000
195+++ src/platform/graphics/CMakeLists.txt 2017-06-19 15:01:38 +0000
196@@ -1,4 +1,6 @@
197-include_directories(${GL_INCLUDE_DIRS})
198+include_directories(
199+ ${GL_INCLUDE_DIRS}
200+ ${PROJECT_SOURCE_DIR}/include/renderers/gl)
201
202 set(
203 GRAPHICS_SOURCES
204@@ -6,6 +8,8 @@
205 egl_extensions.cpp
206 egl_resources.cpp
207 egl_error.cpp
208+ surfaceless_egl_context.cpp
209+ gl_extensions_base.cpp
210 display_configuration.cpp
211 gamma_curves.cpp
212 buffer_basic.cpp
213
214=== renamed file 'src/server/graphics/gl_extensions_base.cpp' => 'src/platform/graphics/gl_extensions_base.cpp'
215--- src/server/graphics/gl_extensions_base.cpp 2013-12-13 05:24:22 +0000
216+++ src/platform/graphics/gl_extensions_base.cpp 2017-06-19 15:01:38 +0000
217@@ -2,15 +2,15 @@
218 * Copyright © 2013 Canonical Ltd.
219 *
220 * This program is free software: you can redistribute it and/or modify it
221- * under the terms of the GNU General Public License version 3,
222+ * under the terms of the GNU Lesser General Public License version 3,
223 * as published by the Free Software Foundation.
224 *
225 * This program is distributed in the hope that it will be useful,
226 * but WITHOUT ANY WARRANTY; without even the implied warranty of
227 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
228- * GNU General Public License for more details.
229+ * GNU Lesser General Public License for more details.
230 *
231- * You should have received a copy of the GNU General Public License
232+ * You should have received a copy of the GNU Lesser General Public License
233 * along with this program. If not, see <http://www.gnu.org/licenses/>.
234 *
235 * Authored by: Alexandros Frantzis <alexandros.frantzis@canonical.com>
236
237=== renamed file 'src/server/graphics/surfaceless_egl_context.cpp' => 'src/platform/graphics/surfaceless_egl_context.cpp'
238--- src/server/graphics/surfaceless_egl_context.cpp 2017-05-08 03:04:26 +0000
239+++ src/platform/graphics/surfaceless_egl_context.cpp 2017-06-19 15:01:38 +0000
240@@ -2,15 +2,15 @@
241 * Copyright © 2013 Canonical Ltd.
242 *
243 * This program is free software: you can redistribute it and/or modify it
244- * under the terms of the GNU General Public License version 3,
245+ * under the terms of the GNU Lesser General Public License version 3,
246 * as published by the Free Software Foundation.
247 *
248 * This program is distributed in the hope that it will be useful,
249 * but WITHOUT ANY WARRANTY; without even the implied warranty of
250 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
251- * GNU General Public License for more details.
252+ * GNU Lesser General Public License for more details.
253 *
254- * You should have received a copy of the GNU General Public License
255+ * You should have received a copy of the GNU Lesser General Public License
256 * along with this program. If not, see <http://www.gnu.org/licenses/>.
257 *
258 * Authored by: Alexandros Frantzis <alexandros.frantzis@canonical.com>
259
260=== modified file 'src/platform/symbols.map'
261--- src/platform/symbols.map 2017-05-25 08:58:03 +0000
262+++ src/platform/symbols.map 2017-06-19 15:01:38 +0000
263@@ -21,9 +21,16 @@
264 mir::graphics::EventHandlerRegister::register_signal_handler*;
265 mir::graphics::EventHandlerRegister::unregister_fd_handler*;
266 mir::graphics::GammaCurves::GammaCurves*;
267+ mir::graphics::GLExtensionsBase::GLExtensionsBase*;
268+ mir::graphics::GLExtensionsBase::support*;
269 mir::graphics::LinearGammaLUTs::LinearGammaLUTs*;
270 mir::graphics::module_for_device*;
271 mir::graphics::operator*;
272+ mir::graphics::SurfacelessEGLContext::SurfacelessEGLContext*;
273+ mir::graphics::SurfacelessEGLContext::make_current*;
274+ mir::graphics::SurfacelessEGLContext::operator*;
275+ mir::graphics::SurfacelessEGLContext::release_current*;
276+ mir::graphics::SurfacelessEGLContext::?SurfacelessEGLContext*;
277 mir::graphics::UserDisplayConfigurationOutput::extents*;
278 mir::graphics::UserDisplayConfigurationOutput::UserDisplayConfigurationOutput*;
279 mir::options::arw_server_socket_opt*;
280
281=== modified file 'src/platforms/CMakeLists.txt'
282--- src/platforms/CMakeLists.txt 2017-05-17 04:48:46 +0000
283+++ src/platforms/CMakeLists.txt 2017-06-19 15:01:38 +0000
284@@ -72,4 +72,5 @@
285 add_subdirectory(eglstream-kms)
286 endif()
287
288+add_subdirectory(mir/)
289 add_subdirectory(evdev/)
290
291=== modified file 'src/platforms/eglstream-kms/server/platform_symbols.cpp'
292--- src/platforms/eglstream-kms/server/platform_symbols.cpp 2017-06-09 11:19:23 +0000
293+++ src/platforms/eglstream-kms/server/platform_symbols.cpp 2017-06-19 15:01:38 +0000
294@@ -74,7 +74,8 @@
295 std::shared_ptr<mo::Option> const&,
296 std::shared_ptr<mir::EmergencyCleanupRegistry> const&,
297 std::shared_ptr<mg::DisplayReport> const&,
298- std::shared_ptr<mir::logging::Logger> const&)
299+ std::shared_ptr<mir::logging::Logger> const&,
300+ std::shared_ptr<mir::shell::HostLifecycleEventListener> const&)
301 {
302 mir::assert_entry_point_signature<mg::CreateHostPlatform>(&create_host_platform);
303 return mir::make_module_ptr<mge::Platform>(
304
305=== modified file 'src/platforms/mesa/server/kms/cursor.cpp'
306--- src/platforms/mesa/server/kms/cursor.cpp 2017-06-09 10:22:15 +0000
307+++ src/platforms/mesa/server/kms/cursor.cpp 2017-06-19 15:01:38 +0000
308@@ -216,17 +216,6 @@
309 write_buffer_data_locked(lg, buffer, &padded[0], padded_size);
310 }
311
312-void mgm::Cursor::show()
313-{
314- std::lock_guard<std::mutex> lg(guard);
315-
316- if (!visible)
317- {
318- visible = true;
319- place_cursor_at_locked(lg, current_position, ForceState);
320- }
321-}
322-
323 void mgm::Cursor::show(CursorImage const& cursor_image)
324 {
325 std::lock_guard<std::mutex> lg(guard);
326
327=== modified file 'src/platforms/mesa/server/kms/cursor.h'
328--- src/platforms/mesa/server/kms/cursor.h 2017-06-08 08:34:56 +0000
329+++ src/platforms/mesa/server/kms/cursor.h 2017-06-19 15:01:38 +0000
330@@ -74,7 +74,6 @@
331
332 ~Cursor() noexcept;
333
334- void show() override;
335 void show(CursorImage const& cursor_image) override;
336 void hide() override;
337
338
339=== modified file 'src/platforms/mesa/server/kms/platform_symbols.cpp'
340--- src/platforms/mesa/server/kms/platform_symbols.cpp 2017-06-09 15:10:57 +0000
341+++ src/platforms/mesa/server/kms/platform_symbols.cpp 2017-06-19 15:01:38 +0000
342@@ -106,7 +106,8 @@
343 std::shared_ptr<mo::Option> const& options,
344 std::shared_ptr<mir::EmergencyCleanupRegistry> const& emergency_cleanup_registry,
345 std::shared_ptr<mg::DisplayReport> const& report,
346- std::shared_ptr<mir::logging::Logger> const& /*logger*/)
347+ std::shared_ptr<mir::logging::Logger> const& /*logger*/,
348+ std::shared_ptr<mir::shell::HostLifecycleEventListener> const&)
349 {
350 mir::assert_entry_point_signature<mg::CreateHostPlatform>(&create_host_platform);
351 // ensure mesa finds the mesa mir-platform symbols
352
353=== modified file 'src/platforms/mesa/server/x11/graphics/graphics.cpp'
354--- src/platforms/mesa/server/x11/graphics/graphics.cpp 2017-06-09 11:24:39 +0000
355+++ src/platforms/mesa/server/x11/graphics/graphics.cpp 2017-06-19 15:01:38 +0000
356@@ -46,7 +46,8 @@
357 std::shared_ptr<mo::Option> const& options,
358 std::shared_ptr<mir::EmergencyCleanupRegistry> const&,
359 std::shared_ptr<mg::DisplayReport> const& report,
360- std::shared_ptr<mir::logging::Logger> const& /*logger*/)
361+ std::shared_ptr<mir::logging::Logger> const& /*logger*/,
362+ std::shared_ptr<mir::shell::HostLifecycleEventListener> const&)
363 {
364 mir::assert_entry_point_signature<mg::CreateHostPlatform>(&create_host_platform);
365 if (!x11_resources.get_conn())
366
367=== renamed directory 'src/server/graphics/nested' => 'src/platforms/mir'
368=== modified file 'src/platforms/mir/CMakeLists.txt'
369--- src/server/graphics/nested/CMakeLists.txt 2017-05-08 03:04:26 +0000
370+++ src/platforms/mir/CMakeLists.txt 2017-06-19 15:01:38 +0000
371@@ -1,7 +1,16 @@
372+add_definitions(-DMIR_SERVER_GRAPHICS_PLATFORM_VERSION="${MIR_SERVER_GRAPHICS_PLATFORM_VERSION}")
373+
374 include_directories(
375+ ${PROJECT_SOURCE_DIR}/include/client
376+ ${PROJECT_SOURCE_DIR}/include/platform
377 ${PROJECT_SOURCE_DIR}/include/renderers/gl
378 ${PROJECT_SOURCE_DIR}/include/platforms/mesa
379 ${PROJECT_SOURCE_DIR}/include/platforms/common
380+ ${PROJECT_SOURCE_DIR}/src/include/common # TODO platforms should not depend on private headers
381+ ${PROJECT_SOURCE_DIR}/src/include/platform # TODO platforms should not depend on private headers
382+ ${PROJECT_SOURCE_DIR}/src/include/client # TODO platforms should not depend on private headers
383+ ${PROJECT_SOURCE_DIR}/include/server # TODO platforms should not depend on server
384+ ${PROJECT_SOURCE_DIR}/src/include/server # TODO platforms should not depend on private headers
385 )
386
387 add_library(
388@@ -18,3 +27,35 @@
389 ipc_operations.cpp
390 host_buffer.cpp
391 )
392+
393+add_library(mirplatformgraphicsnested SHARED
394+ $<TARGET_OBJECTS:mirnestedgraphics>
395+ $<TARGET_OBJECTS:mirgl>
396+)
397+
398+target_link_libraries(
399+ mirplatformgraphicsnested
400+
401+ server_platform_common
402+ mirplatform
403+ mirclient
404+ ${EGL_LDFLAGS} ${EGL_LIBRARIES}
405+ ${GLESv2_LDFLAGS} ${GLESv2_LIBRARIES}
406+ ${Boost_PROGRAM_OPTIONS_LIBRARY}
407+)
408+
409+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/symbols.map.in
410+ ${CMAKE_CURRENT_BINARY_DIR}/symbols.map)
411+set(symbol_map ${CMAKE_CURRENT_BINARY_DIR}/symbols.map)
412+
413+set_target_properties(
414+ mirplatformgraphicsnested PROPERTIES
415+ OUTPUT_NAME server-mir
416+ LIBRARY_OUTPUT_DIRECTORY ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/server-modules
417+ PREFIX ""
418+ SUFFIX ".so.${MIR_SERVER_GRAPHICS_PLATFORM_ABI}"
419+ LINK_FLAGS "-Wl,--exclude-libs=ALL -Wl,--version-script,${symbol_map}"
420+ LINK_DEPENDS ${symbol_map}
421+)
422+
423+install(TARGETS mirplatformgraphicsnested LIBRARY DESTINATION ${MIR_SERVER_PLATFORM_PATH})
424
425=== modified file 'src/platforms/mir/cursor.cpp'
426--- src/server/graphics/nested/cursor.cpp 2017-05-08 03:04:26 +0000
427+++ src/platforms/mir/cursor.cpp 2017-06-19 15:01:38 +0000
428@@ -24,9 +24,8 @@
429 namespace mgn = mir::graphics::nested;
430 namespace geom = mir::geometry;
431
432-mgn::Cursor::Cursor(std::shared_ptr<HostConnection> const& host_connection, std::shared_ptr<mg::CursorImage> const& default_image)
433- : connection(host_connection),
434- default_image(default_image)
435+mgn::Cursor::Cursor(std::shared_ptr<HostConnection> const& host_connection)
436+ : connection(host_connection)
437 {
438 }
439
440@@ -43,11 +42,6 @@
441 connection->set_cursor_image(cursor_image);
442 }
443
444-void mgn::Cursor::show()
445-{
446- connection->set_cursor_image(*default_image);
447-}
448-
449 void mgn::Cursor::hide()
450 {
451 connection->hide_cursor();
452
453=== modified file 'src/platforms/mir/cursor.h'
454--- src/server/graphics/nested/cursor.h 2016-01-29 08:18:22 +0000
455+++ src/platforms/mir/cursor.h 2017-06-19 15:01:38 +0000
456@@ -31,18 +31,16 @@
457 class Cursor : public graphics::Cursor
458 {
459 public:
460- Cursor(std::shared_ptr<HostConnection> const& host_connection, std::shared_ptr<CursorImage> const& default_image);
461+ Cursor(std::shared_ptr<HostConnection> const& host_connection);
462 ~Cursor();
463
464 void show(CursorImage const& image) override;
465- void show() override;
466-
467+
468 void hide() override;
469
470 void move_to(geometry::Point position) override;
471 private:
472 std::shared_ptr<HostConnection> const connection;
473- std::shared_ptr<CursorImage> const default_image;
474 };
475 }
476 }
477
478=== modified file 'src/platforms/mir/display.cpp'
479--- src/server/graphics/nested/display.cpp 2017-05-31 17:56:19 +0000
480+++ src/platforms/mir/display.cpp 2017-06-19 15:01:38 +0000
481@@ -17,6 +17,7 @@
482 */
483
484 #include "display.h"
485+#include "cursor.h"
486 #include "nested_display_configuration.h"
487 #include "display_buffer.h"
488 #include "host_connection.h"
489@@ -365,8 +366,7 @@
490
491 auto mgn::Display::create_hardware_cursor() -> std::shared_ptr<mg::Cursor>
492 {
493- BOOST_THROW_EXCEPTION(std::logic_error("Initialization loop: we already need the Cursor when creating the Display"));
494- // So we can't do this: return std::make_shared<Cursor>(connection);
495+ return std::make_shared<Cursor>(connection);
496 }
497
498 std::unique_ptr<mg::VirtualOutput> mgn::Display::create_virtual_output(int /*width*/, int /*height*/)
499
500=== modified file 'src/platforms/mir/platform.cpp'
501--- src/server/graphics/nested/platform.cpp 2017-06-09 14:16:54 +0000
502+++ src/platforms/mir/platform.cpp 2017-06-19 15:01:38 +0000
503@@ -19,13 +19,24 @@
504 #include "platform.h"
505 #include "host_connection.h"
506 #include "display.h"
507+#include "mir_client_host_connection.h"
508 #include "buffer.h"
509 #include "native_buffer.h"
510 #include "ipc_operations.h"
511 #include "mir/shared_library.h"
512+#include "mir/module_deleter.h"
513+#include "mir/options/option.h"
514+#include "mir/options/configuration.h"
515+#include "mir/options/program_option.h"
516+#include "mir/options/default_configuration.h"
517 #include "mir/graphics/graphic_buffer_allocator.h"
518 #include "mir/graphics/display.h"
519 #include "mir/graphics/platform_ipc_operations.h"
520+#include "mir/input/platform.h"
521+#include "input_platform.h"
522+#include "mir/libname.h"
523+#include "mir/assert_module_entry_point.h"
524+#include "mir/abnormal_exit.h"
525 #include "mir/options/option.h"
526 #include "mir/options/configuration.h"
527 #include "mir/graphics/buffer_ipc_message.h"
528@@ -34,6 +45,7 @@
529 #include "mir/graphics/platform_authentication_wrapper.h"
530 #include "mir/renderer/gl/egl_platform.h"
531
532+namespace mi = mir::input;
533 namespace mg = mir::graphics;
534 namespace mgn = mir::graphics::nested;
535 namespace mo = mir::options;
536@@ -222,3 +234,125 @@
537 {
538 return display_platform->extensions();
539 }
540+
541+namespace
542+{
543+std::shared_ptr<mgn::MirClientHostConnection> global_conn = nullptr;
544+
545+mir::ModuleProperties const graphics_description = {
546+ "mir:mir",
547+ MIR_VERSION_MAJOR,
548+ MIR_VERSION_MINOR,
549+ MIR_VERSION_MICRO,
550+ mir::libname()
551+};
552+
553+mir::ModuleProperties const input_description = {
554+ "mir:mir-input",
555+ MIR_VERSION_MAJOR,
556+ MIR_VERSION_MINOR,
557+ MIR_VERSION_MICRO,
558+ mir::libname()
559+};
560+}
561+
562+mir::UniqueModulePtr<mg::Platform> create_host_platform(
563+ std::shared_ptr<mo::Option> const& options,
564+ std::shared_ptr<mir::EmergencyCleanupRegistry> const&,
565+ std::shared_ptr<mir::graphics::DisplayReport> const& display_report,
566+ std::shared_ptr<mir::logging::Logger> const&,
567+ std::shared_ptr<mir::shell::HostLifecycleEventListener> const& host_lifecycle_event_listener)
568+{
569+ mir::assert_entry_point_signature<mg::CreateHostPlatform>(&create_host_platform);
570+
571+ if (!options->is_set(mo::host_socket_opt))
572+ BOOST_THROW_EXCEPTION(mir::AbnormalExit(
573+ std::string("Exiting Mir! Reason: Nested Mir needs either $MIR_SOCKET or --") +
574+ mo::host_socket_opt));
575+
576+ auto host_socket = options->get<std::string>(mo::host_socket_opt);
577+
578+ std::string server_socket{"none"};
579+
580+ if (!options->is_set(mir::options::no_server_socket_opt))
581+ {
582+ server_socket = options->get<std::string>(mo::server_socket_opt);
583+
584+ if (server_socket == host_socket)
585+ BOOST_THROW_EXCEPTION(mir::AbnormalExit(
586+ "Exiting Mir! Reason: Nested Mir and Host Mir cannot use "
587+ "the same socket file to accept connections!"));
588+ }
589+
590+ auto const my_name = options->is_set(mo::name_opt) ?
591+ options->get<std::string>(mo::name_opt) :
592+ "nested-mir@:" + server_socket;
593+
594+ auto connection = std::make_shared<mgn::MirClientHostConnection>(
595+ host_socket,
596+ my_name,
597+ host_lifecycle_event_listener);
598+
599+ auto const platform_library = std::make_shared<mir::SharedLibrary>(connection->graphics_platform_library());
600+
601+ auto const buffer_platform = std::make_shared<mgn::NestedBufferPlatform>(
602+ platform_library, connection, display_report, options);
603+
604+ global_conn = connection;
605+ return mir::make_module_ptr<mgn::Platform>(
606+ buffer_platform,
607+ std::make_unique<mgn::NestedDisplayPlatform>(buffer_platform, connection, display_report, *options));
608+}
609+
610+void add_graphics_platform_options(boost::program_options::options_description&)
611+{
612+ mir::assert_entry_point_signature<mg::AddPlatformOptions>(&add_graphics_platform_options);
613+}
614+
615+mg::PlatformPriority probe_graphics_platform(mo::ProgramOption const& options)
616+{
617+ mir::assert_entry_point_signature<mg::PlatformProbe>(&probe_graphics_platform);
618+
619+ bool option_present = false;
620+ for (auto &s : options.unparsed_command_line())
621+ option_present |= (s.find(mo::host_socket_opt) != std::string::npos);
622+ option_present |= options.is_set(mo::host_socket_opt);
623+ option_present |= (nullptr != getenv("MIR_SERVER_HOST_SOCKET"));
624+
625+ if (option_present)
626+ return mg::PlatformPriority::requested;
627+ else
628+ return mg::PlatformPriority::unsupported;
629+}
630+
631+mir::ModuleProperties const* describe_graphics_module()
632+{
633+ mir::assert_entry_point_signature<mg::DescribeModule>(&describe_graphics_module);
634+ return &graphics_description;
635+}
636+
637+mi::PlatformPriority probe_input_platform(
638+ mo::Option const& options)
639+{
640+ mir::assert_entry_point_signature<mi::ProbePlatform>(&probe_input_platform);
641+ if (options.is_set("host-socket"))
642+ return mi::PlatformPriority::best;
643+ return mi::PlatformPriority::unsupported;
644+}
645+
646+mir::UniqueModulePtr<mi::Platform> create_input_platform(
647+ mo::Option const& /*options*/,
648+ std::shared_ptr<mir::EmergencyCleanupRegistry> const& /*emergency_cleanup_registry*/,
649+ std::shared_ptr<mi::InputDeviceRegistry> const& input_device_registry,
650+ std::shared_ptr<mi::InputReport> const& input_report)
651+{
652+ mir::assert_entry_point_signature<mi::CreatePlatform>(&create_input_platform);
653+ return mir::make_module_ptr<mgn::InputPlatform>(global_conn, input_device_registry, input_report);
654+}
655+
656+mir::ModuleProperties const* describe_input_module()
657+{
658+ mir::assert_entry_point_signature<mi::DescribeModule>(&describe_input_module);
659+ return &input_description;
660+}
661+
662
663=== added file 'src/platforms/mir/symbols.map.in'
664--- src/platforms/mir/symbols.map.in 1970-01-01 00:00:00 +0000
665+++ src/platforms/mir/symbols.map.in 2017-06-19 15:01:38 +0000
666@@ -0,0 +1,20 @@
667+@MIR_SERVER_GRAPHICS_PLATFORM_VERSION@ {
668+ global:
669+ add_graphics_platform_options;
670+ create_host_platform;
671+ create_guest_platform;
672+ probe_graphics_platform;
673+ describe_graphics_module;
674+ local:
675+ *;
676+};
677+
678+@MIR_SERVER_INPUT_PLATFORM_VERSION@ {
679+ global:
680+ add_input_platform_options;
681+ create_input_platform;
682+ probe_input_platform;
683+ describe_input_module;
684+ local:
685+ *;
686+};
687
688=== modified file 'src/server/CMakeLists.txt'
689--- src/server/CMakeLists.txt 2017-05-08 03:04:26 +0000
690+++ src/server/CMakeLists.txt 2017-06-19 15:01:38 +0000
691@@ -81,7 +81,6 @@
692 $<TARGET_OBJECTS:mirreport>
693 $<TARGET_OBJECTS:mirlogging>
694 $<TARGET_OBJECTS:mirnullreport>
695- $<TARGET_OBJECTS:mirnestedgraphics>
696 $<TARGET_OBJECTS:miroffscreengraphics>
697 $<TARGET_OBJECTS:mirthread>
698
699
700=== modified file 'src/server/graphics/CMakeLists.txt'
701--- src/server/graphics/CMakeLists.txt 2017-05-08 03:04:26 +0000
702+++ src/server/graphics/CMakeLists.txt 2017-06-19 15:01:38 +0000
703@@ -8,13 +8,10 @@
704
705 default_configuration.cpp
706 default_display_configuration_policy.cpp
707- gl_extensions_base.cpp
708- surfaceless_egl_context.cpp
709 software_cursor.cpp
710 ${PROJECT_SOURCE_DIR}/include/server/mir/graphics/display_configuration_observer.h
711 display_configuration_observer_multiplexer.cpp
712 display_configuration_observer_multiplexer.h
713 )
714
715-add_subdirectory(nested/)
716 add_subdirectory(offscreen/)
717
718=== modified file 'src/server/graphics/default_configuration.cpp'
719--- src/server/graphics/default_configuration.cpp 2017-05-31 17:56:19 +0000
720+++ src/server/graphics/default_configuration.cpp 2017-06-19 15:01:38 +0000
721@@ -22,16 +22,14 @@
722
723 #include "mir/graphics/default_display_configuration_policy.h"
724 #include "mir/graphics/graphic_buffer_allocator.h"
725-#include "nested/mir_client_host_connection.h"
726-#include "nested/cursor.h"
727-#include "nested/display.h"
728-#include "nested/platform.h"
729+#include "mir/renderer/gl/egl_platform.h"
730 #include "offscreen/display.h"
731 #include "software_cursor.h"
732
733 #include "mir/graphics/gl_config.h"
734 #include "mir/graphics/platform.h"
735 #include "mir/graphics/cursor.h"
736+#include "mir/graphics/display.h"
737 #include "mir/graphics/platform_probe.h"
738 #include "display_configuration_observer_multiplexer.h"
739
740@@ -52,7 +50,6 @@
741
742 namespace mg = mir::graphics;
743 namespace ml = mir::logging;
744-namespace mgn = mir::graphics::nested;
745
746 std::shared_ptr<mg::DisplayConfigurationPolicy>
747 mir::DefaultServerConfiguration::the_display_configuration_policy()
748@@ -81,21 +78,6 @@
749 std::stringstream error_report;
750 try
751 {
752- // if a host socket is set we should use the host graphics module to create a "guest" platform
753- if (the_options()->is_set(options::host_socket_opt))
754- {
755- auto const host_connection = the_host_connection();
756-
757- platform_library = std::make_shared<mir::SharedLibrary>(host_connection->graphics_platform_library());
758- auto buffer_platform = std::make_shared<mgn::NestedBufferPlatform>(
759- platform_library, host_connection, the_display_report(), the_options());
760- return std::make_shared<mgn::Platform>(
761- buffer_platform,
762- std::make_unique<mgn::NestedDisplayPlatform>(
763- buffer_platform, host_connection, the_display_report(), *the_options()));
764- }
765-
766- // fallback to standalone if host socket is unset
767 if (the_options()->is_set(options::platform_graphics_lib))
768 {
769 platform_library = std::make_shared<mir::SharedLibrary>(the_options()->get<std::string>(options::platform_graphics_lib));
770@@ -124,7 +106,12 @@
771 description->minor_version,
772 description->micro_version);
773
774- return create_host_platform(the_options(), the_emergency_cleanup(), the_display_report(), the_logger());
775+ return create_host_platform(
776+ the_options(),
777+ the_emergency_cleanup(),
778+ the_display_report(),
779+ the_logger(),
780+ the_host_lifecycle_event_listener());
781 }
782 catch(...)
783 {
784@@ -186,14 +173,7 @@
785
786 auto cursor_choice = the_options()->get<std::string>(options::cursor_opt);
787
788- if (the_options()->is_set(options::host_socket_opt))
789- {
790- mir::log_info("Using nested cursor");
791- primary_cursor = std::make_shared<mgn::Cursor>(
792- the_host_connection(),
793- the_default_cursor_image());
794- }
795- else if (cursor_choice != "software" &&
796+ if (cursor_choice != "software" &&
797 (primary_cursor = the_display()->create_hardware_cursor()))
798 {
799 mir::log_info("Using hardware cursor");
800@@ -217,51 +197,6 @@
801 return wrapped;
802 }
803
804-auto mir::DefaultServerConfiguration::the_host_connection()
805--> std::shared_ptr<graphics::nested::HostConnection>
806-{
807- return the_mir_client_host_connection();
808-}
809-
810-auto mir::DefaultServerConfiguration::the_mir_client_host_connection()
811--> std::shared_ptr<graphics::nested::MirClientHostConnection>
812-{
813- return host_connection(
814- [this]()
815- {
816- auto const options = the_options();
817-
818- if (!options->is_set(options::host_socket_opt))
819- BOOST_THROW_EXCEPTION(mir::AbnormalExit(
820- std::string("Exiting Mir! Reason: Nested Mir needs either $MIR_SOCKET or --") +
821- options::host_socket_opt));
822-
823- auto host_socket = options->get<std::string>(options::host_socket_opt);
824-
825- std::string server_socket{"none"};
826-
827- if (!the_options()->is_set(options::no_server_socket_opt))
828- {
829- server_socket = the_socket_file();
830-
831- if (server_socket == host_socket)
832- BOOST_THROW_EXCEPTION(mir::AbnormalExit(
833- "Exiting Mir! Reason: Nested Mir and Host Mir cannot use "
834- "the same socket file to accept connections!"));
835- }
836-
837- auto const my_name = options->is_set(options::name_opt) ?
838- options->get<std::string>(options::name_opt) :
839- "nested-mir@:" + server_socket;
840-
841- return std::make_shared<graphics::nested::MirClientHostConnection>(
842- host_socket,
843- my_name,
844- the_host_lifecycle_event_listener()
845- );
846- });
847-}
848-
849 std::shared_ptr<mg::GLConfig>
850 mir::DefaultServerConfiguration::the_gl_config()
851 {
852
853=== modified file 'src/server/graphics/software_cursor.cpp'
854--- src/server/graphics/software_cursor.cpp 2017-05-08 03:04:26 +0000
855+++ src/server/graphics/software_cursor.cpp 2017-06-19 15:01:38 +0000
856@@ -129,18 +129,6 @@
857 hide();
858 }
859
860-void mg::SoftwareCursor::show()
861-{
862- bool needs_scene_change = false;
863- {
864- std::lock_guard<std::mutex> lg{guard};
865- if (!visible)
866- visible = needs_scene_change = true;
867- }
868- if (needs_scene_change && renderable)
869- scene->add_input_visualization(renderable);
870-}
871-
872 void mg::SoftwareCursor::show(CursorImage const& cursor_image)
873 {
874 std::shared_ptr<detail::CursorRenderable> new_renderable;
875
876=== modified file 'src/server/graphics/software_cursor.h'
877--- src/server/graphics/software_cursor.h 2015-06-17 05:20:42 +0000
878+++ src/server/graphics/software_cursor.h 2017-06-19 15:01:38 +0000
879@@ -45,7 +45,6 @@
880 std::shared_ptr<input::Scene> const& scene);
881 ~SoftwareCursor();
882
883- void show() override;
884 void show(CursorImage const& cursor_image) override;
885 void hide() override;
886 void move_to(geometry::Point position) override;
887
888=== modified file 'src/server/input/default_configuration.cpp'
889--- src/server/input/default_configuration.cpp 2017-05-25 08:58:03 +0000
890+++ src/server/input/default_configuration.cpp 2017-06-19 15:01:38 +0000
891@@ -32,7 +32,6 @@
892 #include "surface_input_dispatcher.h"
893 #include "basic_seat.h"
894 #include "seat_observer_multiplexer.h"
895-#include "../graphics/nested/input_platform.h"
896
897 #include "mir/input/touch_visualizer.h"
898 #include "mir/input/input_probe.h"
899@@ -56,7 +55,6 @@
900 namespace mr = mir::report;
901 namespace ms = mir::scene;
902 namespace mg = mir::graphics;
903-namespace mgn = mg::nested;
904 namespace msh = mir::shell;
905 namespace md = mir::dispatch;
906
907@@ -200,16 +198,6 @@
908 {
909 return std::make_shared<mi::NullInputManager>();
910 }
911- else if (options->is_set(options::host_socket_opt))
912- {
913- auto const device_registry = the_input_device_registry();
914- auto const input_report = the_input_report();
915-
916- // TODO: move this into a nested graphics platform
917- auto platform = std::make_shared<mgn::InputPlatform>(the_host_connection(), device_registry, input_report);
918-
919- return std::make_shared<mi::DefaultInputManager>(the_input_reading_multiplexer(), std::move(platform));
920- }
921 else
922 {
923 auto const emergency_cleanup = the_emergency_cleanup();
924
925=== modified file 'src/server/symbols.map'
926--- src/server/symbols.map 2017-05-08 03:04:26 +0000
927+++ src/server/symbols.map 2017-06-19 15:01:38 +0000
928@@ -866,7 +866,6 @@
929 mir::DefaultServerConfiguration::the_gl_config*;
930 mir::DefaultServerConfiguration::the_global_event_sink*;
931 mir::DefaultServerConfiguration::the_graphics_platform*;
932- mir::DefaultServerConfiguration::the_host_connection*;
933 mir::DefaultServerConfiguration::the_host_lifecycle_event_listener*;
934 mir::DefaultServerConfiguration::the_input_configuration_changer*;
935 mir::DefaultServerConfiguration::the_input_device_hub*;
936
937=== modified file 'tests/acceptance-tests/test_nested_mir.cpp'
938--- tests/acceptance-tests/test_nested_mir.cpp 2017-05-08 03:04:26 +0000
939+++ tests/acceptance-tests/test_nested_mir.cpp 2017-06-19 15:01:38 +0000
940@@ -115,7 +115,8 @@
941
942 struct MockCursor : public mtd::StubCursor
943 {
944-MOCK_METHOD1(show, void(mg::CursorImage const&));
945+ MOCK_METHOD1(show, void(mg::CursorImage const&));
946+ MOCK_METHOD0(hide, void());
947 };
948
949 struct MockHostLifecycleEventListener : msh::HostLifecycleEventListener
950@@ -200,22 +201,13 @@
951 struct CursorWrapper : mg::Cursor
952 {
953 CursorWrapper(std::shared_ptr<mg::Cursor> const& wrapped) : wrapped{wrapped} {}
954- void show() override { if (!hidden) wrapped->show(); }
955- void show(mg::CursorImage const& cursor_image) override { if (!hidden) wrapped->show(cursor_image); }
956+ void show(mg::CursorImage const& cursor_image) override { wrapped->show(cursor_image); }
957 void hide() override { wrapped->hide(); }
958
959 void move_to(geom::Point position) override { wrapped->move_to(position); }
960
961- void set_hidden(bool hidden)
962- {
963- this->hidden = hidden;
964- if (hidden) hide();
965- else show();
966- }
967-
968 private:
969 std::shared_ptr<mg::Cursor> const wrapped;
970- bool hidden{false};
971 };
972
973 struct MockDisplayConfigurationPolicy : mg::DisplayConfigurationPolicy
974@@ -264,6 +256,7 @@
975
976 virtual ~NestedMirRunner()
977 {
978+ cursor_wrapper.reset();
979 stop_server();
980 }
981
982@@ -1051,9 +1044,9 @@
983 condition.wait_for(timeout);
984 Mock::VerifyAndClearExpectations(mock_cursor.get());
985
986- nested_mir.cursor_wrapper->set_hidden(true);
987+ EXPECT_CALL(*mock_cursor, hide()).Times(AtLeast(1));
988
989- EXPECT_CALL(*mock_cursor, show(_)).Times(0);
990+ nested_mir.cursor_wrapper->hide();
991
992 for (int i = 0; i != frames; ++i)
993 {
994
995=== modified file 'tests/include/mir/test/doubles/stub_host_connection.h'
996--- tests/include/mir/test/doubles/stub_host_connection.h 2017-06-09 14:16:54 +0000
997+++ tests/include/mir/test/doubles/stub_host_connection.h 2017-06-19 15:01:38 +0000
998@@ -19,12 +19,14 @@
999 #ifndef MIR_TEST_DOUBLES_STUB_HOST_CONNECTION_H_
1000 #define MIR_TEST_DOUBLES_STUB_HOST_CONNECTION_H_
1001
1002-#include "src/server/graphics/nested/host_connection.h"
1003-#include "src/server/graphics/nested/host_surface.h"
1004-#include "src/server/graphics/nested/host_stream.h"
1005-#include "src/server/graphics/nested/host_chain.h"
1006-#include "src/server/graphics/nested/host_surface_spec.h"
1007 #include "src/client/display_configuration.h"
1008+#include "src/platforms/mir/host_connection.h"
1009+#include "src/platforms/mir/host_surface.h"
1010+#include "src/platforms/mir/host_connection.h"
1011+#include "src/platforms/mir/host_surface.h"
1012+#include "src/platforms/mir/host_stream.h"
1013+#include "src/platforms/mir/host_chain.h"
1014+#include "src/platforms/mir/host_surface_spec.h"
1015 #include "src/include/client/mir/input/input_devices.h"
1016 #include "mir/graphics/platform_operation_message.h"
1017
1018
1019=== modified file 'tests/mir_test_framework/headless_nested_server_runner.cpp'
1020--- tests/mir_test_framework/headless_nested_server_runner.cpp 2017-05-08 03:04:26 +0000
1021+++ tests/mir_test_framework/headless_nested_server_runner.cpp 2017-06-19 15:01:38 +0000
1022@@ -25,7 +25,7 @@
1023 mtf::HeadlessNestedServerRunner::HeadlessNestedServerRunner(std::string const& connect_string) :
1024 passthrough_tracker(std::make_shared<mtf::PassthroughTracker>())
1025 {
1026- add_to_environment("MIR_SERVER_PLATFORM_GRAPHICS_LIB", mtf::server_platform("graphics-dummy.so").c_str());
1027+ add_to_environment("MIR_SERVER_PLATFORM_GRAPHICS_LIB", mtf::server_platform("server-mir.so.13").c_str());
1028 add_to_environment("MIR_SERVER_HOST_SOCKET", connect_string.c_str());
1029 server.override_the_display_buffer_compositor_factory([this]
1030 {
1031
1032=== modified file 'tests/mir_test_framework/platform_graphics_throw.cpp'
1033--- tests/mir_test_framework/platform_graphics_throw.cpp 2017-06-09 11:19:23 +0000
1034+++ tests/mir_test_framework/platform_graphics_throw.cpp 2017-06-19 15:01:38 +0000
1035@@ -55,7 +55,7 @@
1036 mir::SharedLibrary stub_platform_library{std::string(platform_path) + "/graphics-dummy.so"};
1037 auto create_stub_platform = stub_platform_library.load_function<mg::CreateHostPlatform>("create_host_platform");
1038
1039- stub_platform = create_stub_platform(nullptr, nullptr, nullptr, nullptr);
1040+ stub_platform = create_stub_platform(nullptr, nullptr, nullptr, nullptr, nullptr);
1041 }
1042
1043 mir::UniqueModulePtr<mg::GraphicBufferAllocator> create_buffer_allocator() override
1044@@ -170,7 +170,8 @@
1045 std::shared_ptr<mo::Option> const&,
1046 std::shared_ptr<mir::EmergencyCleanupRegistry> const&,
1047 std::shared_ptr<mg::DisplayReport> const&,
1048- std::shared_ptr<mir::logging::Logger> const&)
1049+ std::shared_ptr<mir::logging::Logger> const&,
1050+ std::shared_ptr<mir::shell::HostLifecycleEventListener> const&)
1051 {
1052 mir::assert_entry_point_signature<mg::CreateHostPlatform>(&create_host_platform);
1053 return mir::make_module_ptr<ExceptionThrowingPlatform>();
1054
1055=== modified file 'tests/mir_test_framework/stubbed_graphics_platform.cpp'
1056--- tests/mir_test_framework/stubbed_graphics_platform.cpp 2017-06-09 11:19:23 +0000
1057+++ tests/mir_test_framework/stubbed_graphics_platform.cpp 2017-06-19 15:01:38 +0000
1058@@ -357,7 +357,8 @@
1059 std::shared_ptr<mo::Option> const&,
1060 std::shared_ptr<mir::EmergencyCleanupRegistry> const&,
1061 std::shared_ptr<mg::DisplayReport> const&,
1062- std::shared_ptr<mir::logging::Logger> const&)
1063+ std::shared_ptr<mir::logging::Logger> const&,
1064+ std::shared_ptr<mir::shell::HostLifecycleEventListener> const&)
1065 {
1066 mir::assert_entry_point_signature<mg::CreateHostPlatform>(&create_host_platform);
1067 std::shared_ptr<mg::Platform> result{};
1068
1069=== modified file 'tests/unit-tests/graphics/test_software_cursor.cpp'
1070--- tests/unit-tests/graphics/test_software_cursor.cpp 2017-05-08 03:04:26 +0000
1071+++ tests/unit-tests/graphics/test_software_cursor.cpp 2017-06-19 15:01:38 +0000
1072@@ -199,25 +199,6 @@
1073 cursor.move_to({22,23});
1074 }
1075
1076-TEST_F(SoftwareCursor, multiple_shows_just_show)
1077-{
1078- using namespace testing;
1079-
1080- InSequence s;
1081- EXPECT_CALL(mock_input_scene, add_input_visualization(_));
1082-
1083- EXPECT_CALL(mock_input_scene, remove_input_visualization(_));
1084- EXPECT_CALL(mock_input_scene, add_input_visualization(_));
1085-
1086- EXPECT_CALL(mock_input_scene, remove_input_visualization(_)); // removal on destruction
1087-
1088- cursor.show(stub_cursor_image);
1089- cursor.hide();
1090- cursor.show();
1091- cursor.show();
1092-}
1093-
1094-
1095 TEST_F(SoftwareCursor, creates_renderable_with_filled_buffer)
1096 {
1097 using namespace testing;
1098
1099=== modified file 'tests/unit-tests/input/CMakeLists.txt'
1100--- tests/unit-tests/input/CMakeLists.txt 2017-05-08 03:04:26 +0000
1101+++ tests/unit-tests/input/CMakeLists.txt 2017-06-19 15:01:38 +0000
1102@@ -16,7 +16,6 @@
1103 ${CMAKE_CURRENT_SOURCE_DIR}/test_seat_input_device_tracker.cpp
1104 ${CMAKE_CURRENT_SOURCE_DIR}/test_key_repeat_dispatcher.cpp
1105 ${CMAKE_CURRENT_SOURCE_DIR}/test_validator.cpp
1106- ${CMAKE_CURRENT_SOURCE_DIR}/test_nested_input_platform.cpp
1107 )
1108
1109 list(APPEND UMOCK_UNIT_TEST_SOURCES
1110
1111=== modified file 'tests/unit-tests/platforms/mesa/kms/test_cursor.cpp'
1112--- tests/unit-tests/platforms/mesa/kms/test_cursor.cpp 2017-06-07 08:29:04 +0000
1113+++ tests/unit-tests/platforms/mesa/kms/test_cursor.cpp 2017-06-19 15:01:38 +0000
1114@@ -760,7 +760,7 @@
1115 output_container.verify_and_clear_expectations();
1116
1117 EXPECT_CALL(*output_container.outputs[0], set_cursor(_));
1118- cursor.show();
1119+ cursor.show(stub_image);
1120 }
1121
1122 TEST_F(MesaCursorTest, show_cursor_sets_cursor_with_hotspot)
1123
1124=== modified file 'tests/unit-tests/platforms/nested/CMakeLists.txt'
1125--- tests/unit-tests/platforms/nested/CMakeLists.txt 2017-05-08 03:04:26 +0000
1126+++ tests/unit-tests/platforms/nested/CMakeLists.txt 2017-06-19 15:01:38 +0000
1127@@ -5,11 +5,13 @@
1128 ${CMAKE_CURRENT_SOURCE_DIR}/test_nested_cursor.cpp
1129 ${CMAKE_CURRENT_SOURCE_DIR}/test_buffer.cpp
1130 ${CMAKE_CURRENT_SOURCE_DIR}/test_nested_display_buffer.cpp
1131+ ${CMAKE_CURRENT_SOURCE_DIR}/test_nested_input_platform.cpp
1132 ${CMAKE_CURRENT_SOURCE_DIR}/test_ipc_operations.cpp
1133 ${CMAKE_CURRENT_SOURCE_DIR}/test_host_buffer.cpp
1134 $<TARGET_OBJECTS:mir-test-doubles-udev>
1135 ${MIR_PLATFORM_OBJECTS}
1136 ${MIR_SERVER_OBJECTS}
1137+ $<TARGET_OBJECTS:mirnestedgraphics>
1138 )
1139
1140 target_link_libraries(
1141
1142=== modified file 'tests/unit-tests/platforms/nested/test_buffer.cpp'
1143--- tests/unit-tests/platforms/nested/test_buffer.cpp 2017-05-08 03:04:26 +0000
1144+++ tests/unit-tests/platforms/nested/test_buffer.cpp 2017-06-19 15:01:38 +0000
1145@@ -16,8 +16,11 @@
1146 * Authored by: Kevin DuBois <kevin.dubois@canonical.com>
1147 */
1148
1149-#include "src/server/graphics/nested/native_buffer.h"
1150-#include "src/server/graphics/nested/buffer.h"
1151+#include "src/platforms/mir/buffer.h"
1152+#include "src/platforms/mir/native_buffer.h"
1153+#include "src/platforms/mir/buffer.h"
1154+#include "src/platforms/mir/native_buffer.h"
1155+#include "src/platforms/mir/buffer.h"
1156 #include "src/client/buffer.h"
1157 #include "mir/graphics/buffer_properties.h"
1158 #include "mir/test/doubles/stub_host_connection.h"
1159
1160=== modified file 'tests/unit-tests/platforms/nested/test_host_buffer.cpp'
1161--- tests/unit-tests/platforms/nested/test_host_buffer.cpp 2017-05-08 03:04:26 +0000
1162+++ tests/unit-tests/platforms/nested/test_host_buffer.cpp 2017-06-19 15:01:38 +0000
1163@@ -16,7 +16,7 @@
1164 * Authored by: Kevin DuBois <kevin.dubois@canonical.com>
1165 */
1166
1167-#include "src/server/graphics/nested/host_buffer.h"
1168+#include "src/platforms/mir/host_buffer.h"
1169 #include "src/client/default_connection_configuration.h"
1170 #include "src/client/mir_connection.h"
1171 #include "src/client/buffer_factory.h"
1172
1173=== modified file 'tests/unit-tests/platforms/nested/test_ipc_operations.cpp'
1174--- tests/unit-tests/platforms/nested/test_ipc_operations.cpp 2017-05-08 03:04:26 +0000
1175+++ tests/unit-tests/platforms/nested/test_ipc_operations.cpp 2017-06-19 15:01:38 +0000
1176@@ -16,8 +16,8 @@
1177 * Authored by: Kevin DuBois <kevin.dubois@canonical.com>
1178 */
1179
1180-#include "src/server/graphics/nested/ipc_operations.h"
1181-#include "src/server/graphics/nested/native_buffer.h"
1182+#include "src/platforms/mir/ipc_operations.h"
1183+#include "src/platforms/mir/native_buffer.h"
1184 #include "mir/test/doubles/stub_buffer.h"
1185 #include "mir/test/doubles/mock_buffer_ipc_message.h"
1186 #include "mir/test/doubles/mock_platform_ipc_operations.h"
1187
1188=== modified file 'tests/unit-tests/platforms/nested/test_nested_cursor.cpp'
1189--- tests/unit-tests/platforms/nested/test_nested_cursor.cpp 2017-05-08 03:04:26 +0000
1190+++ tests/unit-tests/platforms/nested/test_nested_cursor.cpp 2017-06-19 15:01:38 +0000
1191@@ -16,7 +16,7 @@
1192 * Authored by: Robert Carr <robert.carr@canonical.com>
1193 */
1194
1195-#include "src/server/graphics/nested/cursor.h"
1196+#include "src/platforms/mir/cursor.h"
1197 #include "mir/graphics/cursor_image.h"
1198
1199 #include "mir/test/fake_shared.h"
1200@@ -63,8 +63,8 @@
1201 {
1202 EXPECT_CALL(*connection, set_cursor_image(CursorImageEquals(a_cursor_image.as_argb_8888()))).Times(1);
1203
1204- mgn::Cursor cursor(connection, mt::fake_shared(a_cursor_image));
1205- cursor.show();
1206+ mgn::Cursor cursor(connection);
1207+ cursor.show(a_cursor_image);
1208 }
1209
1210 TEST_F(NestedCursor, can_set_other_images)
1211@@ -72,7 +72,7 @@
1212 EXPECT_CALL(*connection, set_cursor_image(CursorImageEquals(a_cursor_image.as_argb_8888()))).Times(0);
1213 EXPECT_CALL(*connection, set_cursor_image(CursorImageEquals(another_cursor_image.as_argb_8888()))).Times(1);
1214
1215- mgn::Cursor cursor(connection, mt::fake_shared(a_cursor_image));
1216+ mgn::Cursor cursor(connection);
1217 cursor.show(another_cursor_image);
1218 }
1219
1220@@ -83,8 +83,8 @@
1221 EXPECT_CALL(*connection, hide_cursor()).Times(1);
1222 EXPECT_CALL(*connection, set_cursor_image(CursorImageEquals(another_cursor_image.as_argb_8888()))).Times(1);
1223
1224- mgn::Cursor cursor(connection, mt::fake_shared(a_cursor_image));
1225- cursor.show();
1226+ mgn::Cursor cursor(connection);
1227+ cursor.show(a_cursor_image);
1228 cursor.hide();
1229 cursor.show(another_cursor_image);
1230 }
1231
1232=== modified file 'tests/unit-tests/platforms/nested/test_nested_display.cpp'
1233--- tests/unit-tests/platforms/nested/test_nested_display.cpp 2017-06-09 14:16:54 +0000
1234+++ tests/unit-tests/platforms/nested/test_nested_display.cpp 2017-06-19 15:01:38 +0000
1235@@ -16,9 +16,9 @@
1236 * Authored by: Alexandros Frantzis <alexandros.frantzis@canonical.com>
1237 */
1238
1239-#include "src/server/graphics/nested/display.h"
1240-#include "src/server/graphics/nested/host_connection.h"
1241-#include "src/server/graphics/nested/host_surface.h"
1242+#include "src/platforms/mir/display.h"
1243+#include "src/platforms/mir/host_connection.h"
1244+#include "src/platforms/mir/host_surface.h"
1245 #include "src/server/report/null/display_report.h"
1246 #include "mir/graphics/default_display_configuration_policy.h"
1247 #include "src/server/input/null_input_dispatcher.h"
1248
1249=== modified file 'tests/unit-tests/platforms/nested/test_nested_display_buffer.cpp'
1250--- tests/unit-tests/platforms/nested/test_nested_display_buffer.cpp 2017-05-08 03:04:26 +0000
1251+++ tests/unit-tests/platforms/nested/test_nested_display_buffer.cpp 2017-06-19 15:01:38 +0000
1252@@ -16,11 +16,11 @@
1253 * Authored by: Alexandros Frantzis <alexandros.frantzis@canonical.com>
1254 */
1255
1256-#include "src/server/graphics/nested/display_buffer.h"
1257-#include "src/server/graphics/nested/native_buffer.h"
1258-#include "src/server/graphics/nested/host_stream.h"
1259-#include "src/server/graphics/nested/host_chain.h"
1260-#include "src/server/graphics/nested/host_surface_spec.h"
1261+#include "src/platforms/mir/display_buffer.h"
1262+#include "src/platforms/mir/native_buffer.h"
1263+#include "src/platforms/mir/host_stream.h"
1264+#include "src/platforms/mir/host_chain.h"
1265+#include "src/platforms/mir/host_surface_spec.h"
1266
1267 #include "mir/events/event_builders.h"
1268
1269
1270=== modified file 'tests/unit-tests/platforms/nested/test_nested_display_configuration.cpp'
1271--- tests/unit-tests/platforms/nested/test_nested_display_configuration.cpp 2017-05-25 08:58:03 +0000
1272+++ tests/unit-tests/platforms/nested/test_nested_display_configuration.cpp 2017-06-19 15:01:38 +0000
1273@@ -16,7 +16,7 @@
1274 * Authored by: Alan Griffiths <alan@octopull.co.uk>
1275 */
1276
1277-#include "src/server/graphics/nested/nested_display_configuration.h"
1278+#include "src/platforms/mir/nested_display_configuration.h"
1279 #include "mir_display_configuration_builder.h"
1280 #include "mir_toolkit/mir_display_configuration.h"
1281
1282
1283=== renamed file 'tests/unit-tests/input/test_nested_input_platform.cpp' => 'tests/unit-tests/platforms/nested/test_nested_input_platform.cpp'
1284--- tests/unit-tests/input/test_nested_input_platform.cpp 2017-05-08 03:04:26 +0000
1285+++ tests/unit-tests/platforms/nested/test_nested_input_platform.cpp 2017-06-19 15:01:38 +0000
1286@@ -16,7 +16,7 @@
1287 * Authored by: Andreas Pokorny <andreas.pokorny@canonical.com>
1288 */
1289
1290-#include "src/server/graphics/nested/input_platform.h"
1291+#include "src/platforms/mir/input_platform.h"
1292 #include "src/server/report/null_report_factory.h"
1293 #include "src/include/client/mir/input/input_devices.h"
1294 #include "src/server/input/default_event_builder.h"
1295
1296=== modified file 'tools/update_package_abis.sh'
1297--- tools/update_package_abis.sh 2017-05-08 03:04:26 +0000
1298+++ tools/update_package_abis.sh 2017-06-19 15:01:38 +0000
1299@@ -21,6 +21,7 @@
1300 mir-client-platform-mesa:MIR_CLIENT_PLATFORM_ABI \
1301 mir-platform-graphics-mesa-x:MIR_SERVER_GRAPHICS_PLATFORM_ABI \
1302 mir-platform-graphics-mesa-kms:MIR_SERVER_GRAPHICS_PLATFORM_ABI \
1303+ mir-platform-graphics-mir:MIR_SERVER_GRAPHICS_PLATFORM_ABI \
1304 mir-platform-input-evdev:MIR_SERVER_INPUT_PLATFORM_ABI"
1305
1306 package_name()

Subscribers

People subscribed via source and target branches