Mir

Merge lp:~alan-griffiths/mir/discussion-migrate-demo-shell into lp:mir

Proposed by Alan Griffiths
Status: Rejected
Rejected by: Alan Griffiths
Proposed branch: lp:~alan-griffiths/mir/discussion-migrate-demo-shell
Merge into: lp:mir
Prerequisite: lp:~alan-griffiths/mir/migrate-render_surfaces
Diff against target: 559 lines (+97/-244)
15 files modified
CMakeLists.txt (+0/-1)
examples/CMakeLists.txt (+2/-0)
examples/demo-shell/CMakeLists.txt (+4/-1)
examples/demo-shell/demo_shell.cpp (+53/-90)
include/server/mir/default_server_configuration.h (+2/-1)
include/server/mir/server.h (+26/-3)
playground/CMakeLists.txt (+0/-16)
playground/README (+0/-6)
playground/server_configuration.cpp (+0/-72)
playground/server_configuration.h (+0/-50)
server-ABI-sha1sums (+2/-2)
src/server/server.cpp (+3/-0)
src/server/symbols.map (+3/-0)
tests/unit-tests/examples/test_demo_compositor.cpp (+1/-1)
tests/unit-tests/examples/test_demo_renderer.cpp (+1/-1)
To merge this branch: bzr merge lp:~alan-griffiths/mir/discussion-migrate-demo-shell
Reviewer Review Type Date Requested Status
Daniel van Vugt Needs Fixing
Alan Griffiths Needs Information
PS Jenkins bot (community) continuous-integration Needs Fixing
Kevin DuBois (community) Disapprove
Review via email: mp+244152@code.launchpad.net

Commit message

examples: update the demo-shell example to use the mir::Server API

Description of the change

examples: update the demo-shell example to use the mir::Server API

This involves exposing stuff that had been "privatized" and this might not be the best way to expose the functionality needed. Hence I'd like some discussion about whether this is justified.

To post a comment you must log in.
Revision history for this message
Kevin DuBois (kdub) wrote :

Our downstreams have been able to get along without our utility classes (
gl_program, gl_texture, gl_primitive, gl_renderer, etc) to this point, and re-exposing them exposes a lot of ABI that has been hidden and is not used. These classes are more utility classes of the way we've used GLES internally than a recommendation/suggestion to others as to how they should use GLES.

I think its possible to transition the demo shell from playground to examples with a bit of more in-depth "surgery" to have it target reimplementing our already-exposed /interfaces/ instead of overriding different components of utility classes.

review: Disapprove
2139. By Alan Griffiths

merge lp:mir

2140. By Alan Griffiths

merge lp:~alan-griffiths/mir/migrate-render_surfaces

Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

I'm pretty sure playground/ can access a superset of what examples/ can. That's why it exists.

So there's no reason to republish all those headers just yet, is there?

review: Needs Fixing
Revision history for this message
Alan Griffiths (alan-griffiths) wrote :

Quoting the README:

    The Playground

    These are mir demos that excercise private in-flux mir functionality.
    As such functionality matures, related headers become public and the playground
    code may become an example of how to use such feature.

The reason for this MP is to drive a discussion of what is preventing users of our supported API doing what we do in the mir_demo_server_shell example.

As I see it the only real problem highlighted by this MP is that the DemoRenderer class that has been implemented using some of our private gl tools. That is I don't see that access to the_compositor_report() or the_input_scene() is a big deal.

So the question is: how do we serve our current and potential users better?

1. Provide an example of shell decorations etc that doesn't use Mir internals
2. Design a way for users to implement shell decorations that we're happy to publish
3. Ignore the issue

Using our private gl tools isn't the only implementation option and (as Kevin says) our existing downstreams haven't found a need for this approach. It would be good to have an example that is more like what we expect users to do.

review: Needs Information
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Definitely this migration is something that will have to happen in future. I was leaning toward keeping things as private as possible for as long as possible. That means I expected to keep much of this private (so we can freely change interfaces) until such time as some new shell developer asks us to expose parts. Putting things in the public API prematurely and then having to change them is a painful issue we keep encountering. So I'd prefer to keep as much as possible private for as long as possible to minimize the problem. We all share the goal of wanting releases in future that don't bump the server ABI, so letting it stabilize privately still feels like a good idea to me...

On a more practical note:
(1) Needs Fixing: mir_demo_server_shell now crashes immediately on startup.

review: Needs Fixing
Revision history for this message
Alan Griffiths (alan-griffiths) wrote :

OK, I didn't really think this would land in this form - I was more interested in highlighting the gaps between what we our supported API allows and what we believe reasonable Mir users would want to do.

Unmerged revisions

2140. By Alan Griffiths

merge lp:~alan-griffiths/mir/migrate-render_surfaces

2139. By Alan Griffiths

merge lp:mir

2138. By Alan Griffiths

merge lp:~alan-griffiths/mir/migrate-render_surfaces/

2137. By Alan Griffiths

Move demo-shell to examples

2136. By Alan Griffiths

Publish headers referenced by demo shell

2135. By Alan Griffiths

Tidy up demo code

2134. By Alan Griffiths

Delete dead code

2133. By Alan Griffiths

BFI migration of demo shell away from legacy API

2132. By Alan Griffiths

merge lp:~alan-griffiths/mir/migrate-render_surfaces

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'CMakeLists.txt'
2--- CMakeLists.txt 2014-12-05 03:26:03 +0000
3+++ CMakeLists.txt 2014-12-10 12:04:19 +0000
4@@ -191,7 +191,6 @@
5 add_subdirectory(benchmarks/)
6 add_subdirectory(tools/)
7 add_subdirectory(examples/)
8-add_subdirectory(playground/)
9 add_subdirectory(guides/)
10 add_subdirectory(cmake/)
11
12
13=== modified file 'examples/CMakeLists.txt'
14--- examples/CMakeLists.txt 2014-12-10 12:04:19 +0000
15+++ examples/CMakeLists.txt 2014-12-10 12:04:19 +0000
16@@ -193,3 +193,5 @@
17 install(TARGETS mir_demo_standalone_render_overlays
18 RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
19 )
20+
21+add_subdirectory(demo-shell/)
22
23=== renamed directory 'playground/demo-shell' => 'examples/demo-shell'
24=== modified file 'examples/demo-shell/CMakeLists.txt'
25--- playground/demo-shell/CMakeLists.txt 2014-12-09 17:26:28 +0000
26+++ examples/demo-shell/CMakeLists.txt 2014-12-10 12:04:19 +0000
27@@ -1,3 +1,7 @@
28+include_directories(
29+ ${PROJECT_SOURCE_DIR}/examples/
30+)
31+
32 add_library(demo-shell STATIC
33 demo_compositor.cpp
34 demo_renderer.cpp
35@@ -11,7 +15,6 @@
36 target_link_libraries(mir_demo_server_shell
37 demo-shell
38 mirserver
39- playgroundserverconfig
40 exampleserverconfig
41 )
42
43
44=== modified file 'examples/demo-shell/demo_shell.cpp'
45--- playground/demo-shell/demo_shell.cpp 2014-12-09 17:26:28 +0000
46+++ examples/demo-shell/demo_shell.cpp 2014-12-10 12:04:19 +0000
47@@ -21,10 +21,11 @@
48 #include "demo_compositor.h"
49 #include "window_manager.h"
50 #include "server_example_fullscreen_placement_strategy.h"
51-#include "../server_configuration.h"
52+#include "server_example_input_event_filter.h"
53+#include "server_example_display_configuration_policy.h"
54
55-#include "mir/options/default_configuration.h"
56-#include "mir/run_mir.h"
57+#include "mir/server.h"
58+#include "mir/options/option.h"
59 #include "mir/report_exception.h"
60 #include "mir/graphics/display.h"
61 #include "mir/input/composite_event_filter.h"
62@@ -48,6 +49,14 @@
63 {
64 namespace examples
65 {
66+class NestedLifecycleEventListener : public msh::HostLifecycleEventListener
67+{
68+public:
69+ virtual void lifecycle_event_occurred(MirLifecycleState state) override
70+ {
71+ printf("Lifecycle event occurred : state = %d\n", state);
72+ }
73+};
74
75 class DisplayBufferCompositorFactory : public mc::DisplayBufferCompositorFactory
76 {
77@@ -72,103 +81,57 @@
78 std::shared_ptr<mc::CompositorReport> const report;
79 };
80
81-class DemoServerConfiguration : public mir::examples::ServerConfiguration
82+auto make_window_manager_for(Server& server)
83+-> std::shared_ptr<mir::input::EventFilter>
84 {
85-public:
86- DemoServerConfiguration(int argc, char const* argv[],
87- std::initializer_list<std::shared_ptr<mi::EventFilter>> const& filter_list)
88- : ServerConfiguration([argc, argv]
89- {
90- auto result = std::make_shared<mo::DefaultConfiguration>(argc, argv);
91-
92- namespace po = boost::program_options;
93-
94- result->add_options()
95- ("fullscreen-surfaces", "Make all surfaces fullscreen");
96-
97- return result;
98- }()),
99- filter_list(filter_list)
100- {
101- }
102-
103-
104- std::shared_ptr<compositor::DisplayBufferCompositorFactory> the_display_buffer_compositor_factory() override
105- {
106- return display_buffer_compositor_factory(
107- [this]()
108- {
109- return std::make_shared<me::DisplayBufferCompositorFactory>(
110- the_gl_program_factory(),
111- the_compositor_report());
112- });
113- }
114-
115- std::shared_ptr<ms::PlacementStrategy> the_placement_strategy() override
116- {
117- return shell_placement_strategy(
118- [this]() -> std::shared_ptr<ms::PlacementStrategy>
119- {
120- if (the_options()->is_set("fullscreen-surfaces"))
121- return std::make_shared<me::FullscreenPlacementStrategy>(the_shell_display_layout());
122- else
123- return DefaultServerConfiguration::the_placement_strategy();
124- });
125- }
126-
127- std::shared_ptr<mi::CompositeEventFilter> the_composite_event_filter() override
128- {
129- auto composite_filter = ServerConfiguration::the_composite_event_filter();
130- for (auto const& filter : filter_list)
131- composite_filter->append(filter);
132-
133- return composite_filter;
134- }
135-
136- class NestedLifecycleEventListener : public msh::HostLifecycleEventListener
137- {
138- public:
139- virtual void lifecycle_event_occurred(MirLifecycleState state) override
140- {
141- printf("Lifecycle event occurred : state = %d\n", state);
142- }
143- };
144-
145- std::shared_ptr<msh::HostLifecycleEventListener> the_host_lifecycle_event_listener() override
146- {
147- return host_lifecycle_event_listener(
148- []()
149- {
150- return std::make_shared<NestedLifecycleEventListener>();
151- });
152- }
153-
154-private:
155- std::vector<std::shared_ptr<mi::EventFilter>> const filter_list;
156-};
157-
158+ auto const wm = std::make_shared<me::WindowManager>();
159+ // We use this strange two stage initialization to avoid a circular dependency between the EventFilters
160+ // and the SessionStore
161+ server.add_init_callback([&]
162+ {
163+ server.the_composite_event_filter()->append(wm);
164+
165+ wm->set_focus_controller(server.the_focus_controller());
166+ wm->set_display(server.the_display());
167+ wm->set_compositor(server.the_compositor());
168+ wm->set_input_scene(server.the_input_scene());
169+ });
170+
171+ return wm;
172+}
173 }
174 }
175
176 int main(int argc, char const* argv[])
177 try
178 {
179- auto wm = std::make_shared<me::WindowManager>();
180- me::DemoServerConfiguration config(argc, argv, {wm});
181-
182- mir::run_mir(config, [&config, &wm](mir::DisplayServer&)
183+ mir::Server server;
184+
185+ auto const quit_filter = me::make_quit_filter_for(server);
186+ auto const wm = me::make_window_manager_for(server);
187+
188+ me::add_display_configuration_options_to(server);
189+ me::add_fullscreen_option_to(server);
190+
191+ server.override_the_host_lifecycle_event_listener([]
192+ {
193+ return std::make_shared<me::NestedLifecycleEventListener>();
194+ });
195+
196+ server.override_the_display_buffer_compositor_factory([&]
197 {
198- // We use this strange two stage initialization to avoid a circular dependency between the EventFilters
199- // and the SessionStore
200- wm->set_focus_controller(config.the_focus_controller());
201- wm->set_display(config.the_display());
202- wm->set_compositor(config.the_compositor());
203- wm->set_input_scene(config.the_input_scene());
204+ return std::make_shared<me::DisplayBufferCompositorFactory>(
205+ server.the_gl_program_factory(),
206+ server.the_compositor_report());
207 });
208- return 0;
209+
210+ server.set_command_line(argc, argv);
211+ server.apply_settings();
212+ server.run();
213+ return server.exited_normally() ? EXIT_SUCCESS : EXIT_FAILURE;
214 }
215 catch (...)
216 {
217- mir::report_exception(std::cerr);
218- return 1;
219+ mir::report_exception();
220+ return EXIT_FAILURE;
221 }
222
223=== renamed file 'src/include/platform/mir/graphics/gl_primitive.h' => 'include/platform/mir/graphics/gl_primitive.h'
224=== renamed file 'src/include/platform/mir/graphics/gl_program.h' => 'include/platform/mir/graphics/gl_program.h'
225=== renamed file 'src/include/platform/mir/graphics/gl_program_factory.h' => 'include/platform/mir/graphics/gl_program_factory.h'
226=== renamed file 'src/include/platform/mir/graphics/gl_texture.h' => 'include/platform/mir/graphics/gl_texture.h'
227=== renamed file 'src/include/platform/mir/graphics/gl_texture_cache.h' => 'include/platform/mir/graphics/gl_texture_cache.h'
228=== renamed file 'src/include/server/mir/compositor/compositor_report.h' => 'include/server/mir/compositor/compositor_report.h'
229=== renamed file 'src/include/server/mir/compositor/destination_alpha.h' => 'include/server/mir/compositor/destination_alpha.h'
230=== renamed file 'src/include/server/mir/compositor/gl_renderer.h' => 'include/server/mir/compositor/gl_renderer.h'
231=== renamed file 'src/include/server/mir/compositor/recently_used_cache.h' => 'include/server/mir/compositor/recently_used_cache.h'
232=== renamed file 'src/include/server/mir/compositor/renderer.h' => 'include/server/mir/compositor/renderer.h'
233=== renamed file 'src/include/server/mir/compositor/renderer_factory.h' => 'include/server/mir/compositor/renderer_factory.h'
234=== modified file 'include/server/mir/default_server_configuration.h'
235--- include/server/mir/default_server_configuration.h 2014-12-10 12:04:19 +0000
236+++ include/server/mir/default_server_configuration.h 2014-12-10 12:04:19 +0000
237@@ -320,10 +320,11 @@
238 virtual std::shared_ptr<time::Clock> the_clock();
239 virtual std::shared_ptr<ServerActionQueue> the_server_action_queue();
240
241+ virtual std::shared_ptr<graphics::GLProgramFactory> the_gl_program_factory();
242+
243 protected:
244 std::shared_ptr<options::Option> the_options() const;
245
246- virtual std::shared_ptr<graphics::GLProgramFactory> the_gl_program_factory();
247 virtual std::shared_ptr<input::InputChannelFactory> the_input_channel_factory();
248 virtual std::shared_ptr<scene::MediatingDisplayChanger> the_mediating_display_changer();
249 virtual std::shared_ptr<frontend::ProtobufIpcFactory> new_ipc_factory(
250
251=== renamed file 'src/include/server/mir/input/input_channel_factory.h' => 'include/server/mir/input/input_channel_factory.h'
252=== renamed file 'src/include/server/mir/input/scene.h' => 'include/server/mir/input/scene.h'
253=== modified file 'include/server/mir/server.h'
254--- include/server/mir/server.h 2014-12-10 12:04:19 +0000
255+++ include/server/mir/server.h 2014-12-10 12:04:19 +0000
256@@ -27,10 +27,24 @@
257
258 namespace mir
259 {
260-namespace compositor { class Compositor; class DisplayBufferCompositorFactory; }
261+namespace compositor { class Compositor; class CompositorReport; class DisplayBufferCompositorFactory; }
262 namespace frontend { class SessionAuthorizer; class Session; class SessionMediatorReport; }
263-namespace graphics { class Platform; class Display; class GLConfig; class DisplayConfigurationPolicy; }
264-namespace input { class CompositeEventFilter; class InputDispatcher; class CursorListener; class TouchVisualizer; }
265+namespace graphics
266+{
267+class Platform;
268+class Display;
269+class GLConfig;
270+class GLProgramFactory;
271+class DisplayConfigurationPolicy;
272+}
273+namespace input
274+{
275+class CompositeEventFilter;
276+class CursorListener;
277+class InputDispatcher;
278+class Scene;
279+class TouchVisualizer;
280+}
281 namespace logging { class Logger; }
282 namespace options { class Option; }
283 namespace shell { class FocusController; class FocusSetter; class DisplayLayout; class HostLifecycleEventListener; }
284@@ -279,6 +293,9 @@
285 /// \return the composite event filter.
286 auto the_composite_event_filter() const -> std::shared_ptr<input::CompositeEventFilter>;
287
288+ /// \return the compositor report.
289+ auto the_compositor_report() const -> std::shared_ptr<compositor::CompositorReport>;
290+
291 /// \return the cursor listener.
292 auto the_cursor_listener() const -> std::shared_ptr<input::CursorListener>;
293
294@@ -291,9 +308,15 @@
295 /// \return the GL config.
296 auto the_gl_config() const -> std::shared_ptr<graphics::GLConfig>;
297
298+ /// \return the GL program factory.
299+ auto the_gl_program_factory() const -> std::shared_ptr<graphics::GLProgramFactory>;
300+
301 /// \return the graphics platform.
302 auto the_graphics_platform() const -> std::shared_ptr<graphics::Platform>;
303
304+ /// \return the input scene
305+ auto the_input_scene() const -> std::shared_ptr<input::Scene>;
306+
307 /// \return the main loop.
308 auto the_main_loop() const -> std::shared_ptr<MainLoop>;
309
310
311=== removed directory 'playground'
312=== removed file 'playground/CMakeLists.txt'
313--- playground/CMakeLists.txt 2014-12-10 12:04:19 +0000
314+++ playground/CMakeLists.txt 1970-01-01 00:00:00 +0000
315@@ -1,16 +0,0 @@
316-
317-include_directories(
318- ${PROJECT_SOURCE_DIR}/src/include/server
319- ${PROJECT_SOURCE_DIR}/src/include/platform
320- ${PROJECT_SOURCE_DIR}/src/include/common
321- ${PROJECT_SOURCE_DIR}/include/client
322- ${PROJECT_SOURCE_DIR}/include/server
323- ${PROJECT_SOURCE_DIR}/include/platform
324- ${PROJECT_SOURCE_DIR}/examples/
325-)
326-
327-add_library(playgroundserverconfig STATIC
328- server_configuration.cpp
329-)
330-
331-add_subdirectory(demo-shell/)
332
333=== removed file 'playground/README'
334--- playground/README 2014-09-10 01:45:14 +0000
335+++ playground/README 1970-01-01 00:00:00 +0000
336@@ -1,6 +0,0 @@
337-The Playground
338-
339-These are mir demos that excercise private in-flux mir functionality.
340-As such functionality matures, related headers become public and the playground
341-code may become an example of how to use such feature.
342-
343
344=== removed file 'playground/server_configuration.cpp'
345--- playground/server_configuration.cpp 2014-12-08 17:10:25 +0000
346+++ playground/server_configuration.cpp 1970-01-01 00:00:00 +0000
347@@ -1,72 +0,0 @@
348-/*
349- * Copyright © 2013-2014 Canonical Ltd.
350- *
351- * This program is free software: you can redistribute it and/or modify
352- * it under the terms of the GNU General Public License version 3 as
353- * published by the Free Software Foundation.
354- *
355- * This program is distributed in the hope that it will be useful,
356- * but WITHOUT ANY WARRANTY; without even the implied warranty of
357- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
358- * GNU General Public License for more details.
359- *
360- * You should have received a copy of the GNU General Public License
361- * along with this program. If not, see <http://www.gnu.org/licenses/>.
362- *
363- * Authored by: Alexandros Frantzis <alexandros.frantzis@canonical.com>
364- */
365-
366-#include "server_configuration.h"
367-#include "mir/options/default_configuration.h"
368-#include "mir/input/composite_event_filter.h"
369-#include "mir/main_loop.h"
370-
371-#include "server_example_display_configuration_policy.h"
372-#include "server_example_input_event_filter.h"
373-
374-namespace me = mir::examples;
375-namespace mg = mir::graphics;
376-
377-me::ServerConfiguration::ServerConfiguration(std::shared_ptr<options::DefaultConfiguration> const& configuration_options) :
378- DefaultServerConfiguration(configuration_options)
379-{
380- namespace po = boost::program_options;
381-
382- configuration_options->add_options()
383- (me::display_config_opt, po::value<std::string>()->default_value(me::clone_opt_val),
384- me::display_config_descr);
385-}
386-
387-me::ServerConfiguration::ServerConfiguration(int argc, char const** argv) :
388- ServerConfiguration(std::make_shared<options::DefaultConfiguration>(argc, argv))
389-{
390-}
391-
392-std::shared_ptr<mg::DisplayConfigurationPolicy>
393-me::ServerConfiguration::the_display_configuration_policy()
394-{
395- return display_configuration_policy(
396- [this]() -> std::shared_ptr<mg::DisplayConfigurationPolicy>
397- {
398- auto display_config = the_options()->get<std::string>(me::display_config_opt);
399-
400- if (display_config == me::sidebyside_opt_val)
401- return std::make_shared<SideBySideDisplayConfigurationPolicy>();
402- else if (display_config == me::single_opt_val)
403- return std::make_shared<SingleDisplayConfigurationPolicy>();
404- else
405- return DefaultServerConfiguration::the_display_configuration_policy();
406- });
407-}
408-
409-std::shared_ptr<mir::input::CompositeEventFilter>
410-me::ServerConfiguration::the_composite_event_filter()
411-{
412- if (!quit_filter)
413- quit_filter = std::make_shared<me::QuitFilter>([this] { the_main_loop()->stop(); });
414-
415- auto composite_filter = DefaultServerConfiguration::the_composite_event_filter();
416- composite_filter->append(quit_filter);
417-
418- return composite_filter;
419-}
420
421=== removed file 'playground/server_configuration.h'
422--- playground/server_configuration.h 2014-10-15 11:15:21 +0000
423+++ playground/server_configuration.h 1970-01-01 00:00:00 +0000
424@@ -1,50 +0,0 @@
425-/*
426- * Copyright © 2013-2014 Canonical Ltd.
427- *
428- * This program is free software: you can redistribute it and/or modify
429- * it under the terms of the GNU General Public License version 3 as
430- * published by the Free Software Foundation.
431- *
432- * This program is distributed in the hope that it will be useful,
433- * but WITHOUT ANY WARRANTY; without even the implied warranty of
434- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
435- * GNU General Public License for more details.
436- *
437- * You should have received a copy of the GNU General Public License
438- * along with this program. If not, see <http://www.gnu.org/licenses/>.
439- *
440- * Authored by: Alexandros Frantzis <alexandros.frantzis@canonical.com>
441- */
442-
443-#ifndef MIR_EXAMPLES_SERVER_CONFIGURATION_H_
444-#define MIR_EXAMPLES_SERVER_CONFIGURATION_H_
445-
446-#include "mir/default_server_configuration.h"
447-
448-namespace mir
449-{
450-namespace options
451-{
452-class DefaultConfiguration;
453-}
454-
455-namespace examples
456-{
457-
458-class ServerConfiguration : public DefaultServerConfiguration
459-{
460-public:
461- ServerConfiguration(int argc, char const** argv);
462- explicit ServerConfiguration(std::shared_ptr<options::DefaultConfiguration> const& configuration_options);
463-
464- std::shared_ptr<graphics::DisplayConfigurationPolicy> the_display_configuration_policy() override;
465- std::shared_ptr<input::CompositeEventFilter> the_composite_event_filter() override;
466-
467-private:
468- std::shared_ptr<input::EventFilter> quit_filter;
469-};
470-
471-}
472-}
473-
474-#endif /* MIR_EXAMPLES_SERVER_CONFIGURATION_H_ */
475
476=== modified file 'server-ABI-sha1sums'
477--- server-ABI-sha1sums 2014-12-10 12:04:19 +0000
478+++ server-ABI-sha1sums 2014-12-10 12:04:19 +0000
479@@ -55,7 +55,7 @@
480 d49eae4f986645b32e29ce2c1f99f524703ba3c0 include/server/mir/compositor/display_buffer_compositor.h
481 878ab5c4007d16dac213a3eb0105421d8ffad206 include/server/mir/compositor/scene_element.h
482 4fcf34e424128b87ddc76733594e32e09ebbd486 include/server/mir/compositor/scene.h
483-27a9e95846f83126b6aed4f910188c6d2491c47c include/server/mir/default_server_configuration.h
484+81572766d104d97c29d41d03657190b7af114525 include/server/mir/default_server_configuration.h
485 af1ff0714be973ac76d56006a2e5991f68cd1dec include/server/mir/display_server.h
486 a35c5495d8fd28fc0e375b17495fc5caab51b329 include/server/mir/emergency_cleanup.h
487 938de641cb0e01e1098b007b39b151a7dfe4adc1 include/server/mir/frontend/display_changer.h
488@@ -104,7 +104,7 @@
489 587e22d751656ce2d9536afdf5659276ff9bbc46 include/server/mir/scene/surface_observer.h
490 7ef3e99901168cda296d74d05a979f47bf9c3ff1 include/server/mir/server_action_queue.h
491 8d83a51c278b8b71866d2178d9b6387c1f91a7d0 include/server/mir/server_configuration.h
492-e56a255135af4099001b7e31f76530b40d3bd7fa include/server/mir/server.h
493+7861509c90830bd7127c74f83f92c1da77543eac include/server/mir/server.h
494 86098b500339bfccd07a9bed8298f75a68b18f5c include/server/mir/server_status_listener.h
495 860c04f32b60e680140148dc9dc2295de145b9c1 include/server/mir/shell/display_layout.h
496 6a2107b01feae13060d5c305804906e53c52e0be include/server/mir/shell/focus_controller.h
497
498=== modified file 'src/server/server.cpp'
499--- src/server/server.cpp 2014-12-10 12:04:19 +0000
500+++ src/server/server.cpp 2014-12-10 12:04:19 +0000
501@@ -67,10 +67,13 @@
502 #define FOREACH_ACCESSOR(MACRO)\
503 MACRO(the_compositor)\
504 MACRO(the_composite_event_filter)\
505+ MACRO(the_compositor_report)\
506 MACRO(the_display)\
507 MACRO(the_focus_controller)\
508 MACRO(the_gl_config)\
509+ MACRO(the_gl_program_factory)\
510 MACRO(the_graphics_platform)\
511+ MACRO(the_input_scene)\
512 MACRO(the_main_loop)\
513 MACRO(the_prompt_session_listener)\
514 MACRO(the_session_authorizer)\
515
516=== modified file 'src/server/symbols.map'
517--- src/server/symbols.map 2014-12-10 12:04:19 +0000
518+++ src/server/symbols.map 2014-12-10 12:04:19 +0000
519@@ -443,11 +443,14 @@
520 mir::Server::supported_pixel_formats*;
521 mir::Server::the_composite_event_filter*;
522 mir::Server::the_compositor*;
523+ mir::Server::the_compositor_report*;
524 mir::Server::the_cursor_listener*;
525 mir::Server::the_display*;
526 mir::Server::the_focus_controller*;
527 mir::Server::the_gl_config*;
528+ mir::Server::the_gl_program_factory*;
529 mir::Server::the_graphics_platform*;
530+ mir::Server::the_input_scene*;
531 mir::Server::the_main_loop*;
532 mir::Server::the_prompt_session_listener*;
533 mir::Server::the_prompt_session_manager*;
534
535=== modified file 'tests/unit-tests/examples/test_demo_compositor.cpp'
536--- tests/unit-tests/examples/test_demo_compositor.cpp 2014-12-05 03:26:03 +0000
537+++ tests/unit-tests/examples/test_demo_compositor.cpp 2014-12-10 12:04:19 +0000
538@@ -16,7 +16,7 @@
539 * Authored by: Alexandros Frantzis <alexandros.frantzis@canonical.com>
540 */
541
542-#include "playground/demo-shell/demo_compositor.h"
543+#include "examples/demo-shell/demo_compositor.h"
544
545 #include "mir/geometry/rectangle.h"
546 #include "mir/compositor/scene_element.h"
547
548=== modified file 'tests/unit-tests/examples/test_demo_renderer.cpp'
549--- tests/unit-tests/examples/test_demo_renderer.cpp 2014-12-05 03:26:03 +0000
550+++ tests/unit-tests/examples/test_demo_renderer.cpp 2014-12-10 12:04:19 +0000
551@@ -21,7 +21,7 @@
552 #include "mir_test_doubles/fake_renderable.h"
553 #include "mir_test_doubles/stub_gl_program_factory.h"
554 #include "mir_test_doubles/mock_gl.h"
555-#include "playground/demo-shell/demo_renderer.h"
556+#include "examples/demo-shell/demo_renderer.h"
557 #include <gtest/gtest.h>
558
559 namespace mtd = mir::test::doubles;

Subscribers

People subscribed via source and target branches