Merge lp:~mir-team/mir/fix-1372850 into lp:mir/ubuntu
- fix-1372850
- Merge into ubuntu
Status: | Superseded | ||||||||
---|---|---|---|---|---|---|---|---|---|
Proposed branch: | lp:~mir-team/mir/fix-1372850 | ||||||||
Merge into: | lp:mir/ubuntu | ||||||||
Diff against target: |
19527 lines (+11298/-2260) (has conflicts) 292 files modified
3rd_party/android-input/android/CMakeLists.txt (+2/-0) CMakeLists.txt (+56/-2) benchmarks/android-input/CMakeLists.txt (+1/-1) client-ABI-sha1sums (+9/-0) cmake/ABICheck.cmake (+93/-0) cmake/MirCommon.cmake (+36/-0) common-ABI-sha1sums (+21/-0) cross-compile-chroot.sh (+3/-1) debian/control (+45/-10) debian/copyright (+1/-1) debian/create_postinst_prerm_scripts.sh (+1/-1) debian/install_ld_so_conf.sh (+1/-1) debian/libmirclient8driver-android.install (+1/-1) debian/libmirclient8driver-mesa.install (+1/-1) debian/libmircommon2.install (+1/-1) debian/libmirplatform3.install (+4/-0) debian/libmirplatform3driver-android.install (+1/-1) debian/libmirplatform3driver-mesa.install (+1/-1) debian/rules (+5/-2) doc/dso_versioning_guide.md (+195/-0) examples/CMakeLists.txt (+12/-11) examples/basic_server_configuration.cpp (+0/-4) examples/demo_input_filter.cpp (+0/-2) examples/eglapp.c (+1/-16) examples/fingerpaint.c (+1/-0) examples/flicker.c (+0/-13) examples/multiwin.c (+1/-0) examples/pixel_format_selector.cpp (+9/-2) examples/progressbar.c (+1/-0) include/common/mir/geometry/rectangle.h (+1/-1) include/common/mir/geometry/rectangles.h (+5/-2) include/common/mir/geometry/size.h (+1/-1) include/common/mir/time/clock.h (+4/-3) include/platform/mir/graphics/display_configuration.h (+0/-1) include/platform/mir/graphics/platform.h (+3/-0) include/platform/mir/options/configuration.h (+7/-2) include/platform/mir/options/default_configuration.h (+2/-1) include/platform/mir/options/program_option.h (+1/-1) include/server/mir/default_server_configuration.h (+5/-2) include/server/mir/input/cursor_listener.h (+2/-2) include/server/mir/input/touch_visualizer.h (+65/-0) include/test/mir_test_framework/input_testing_client_configuration.h (+0/-69) platform-ABI-sha1sums (+42/-0) playground/CMakeLists.txt (+37/-0) playground/README (+6/-0) playground/demo-inprocess-surface-client/CMakeLists.txt (+1/-3) playground/demo-inprocess-surface-client/demo_inprocess_surface_client.cpp (+1/-1) playground/demo-shell/CMakeLists.txt (+5/-1) playground/demo-shell/demo_compositor.cpp (+113/-0) playground/demo-shell/demo_renderer.cpp (+11/-1) playground/demo-shell/demo_renderer.h (+24/-0) playground/demo-shell/demo_shell.cpp (+1/-1) playground/demo-shell/window_manager.cpp (+2/-2) playground/testdraw/mesa_graphics_region_factory.cpp (+1/-1) server-ABI-sha1sums (+101/-0) src/CMakeLists.txt (+1/-1) src/client/CMakeLists.txt (+9/-1) src/client/android/CMakeLists.txt (+5/-5) src/client/default_connection_configuration.cpp (+51/-14) src/client/default_connection_configuration.h (+9/-1) src/client/logging/perf_report.cpp (+53/-0) src/client/logging/perf_report.h (+48/-0) src/client/lttng/CMakeLists.txt (+1/-0) src/client/lttng/input_receiver_report_tp.h (+0/-14) src/client/lttng/rpc_report_tp.h (+0/-14) src/client/lttng/shared_library_prober_report.cpp (+50/-0) src/client/lttng/shared_library_prober_report.h (+55/-0) src/client/lttng/shared_library_prober_report_tp.h (+85/-0) src/client/mesa/CMakeLists.txt (+5/-5) src/client/mir_connection.cpp (+14/-0) src/client/mir_connection.h (+1/-0) src/client/mir_surface.cpp (+16/-0) src/client/mir_surface.h (+2/-0) src/client/perf_report.h (+47/-0) src/client/periodic_perf_report.cpp (+98/-0) src/client/periodic_perf_report.h (+64/-0) src/common/CMakeLists.txt (+8/-1) src/common/fd/CMakeLists.txt (+2/-1) src/common/fd/fd_socket_transmission.cpp (+72/-0) src/common/logging/CMakeLists.txt (+1/-0) src/common/logging/shared_library_prober_report.cpp (+58/-0) src/common/protobuf/mir_protobuf.proto (+6/-0) src/common/sharedlibrary/CMakeLists.txt (+1/-0) src/common/sharedlibrary/shared_library.cpp (+12/-0) src/common/sharedlibrary/shared_library_prober.cpp (+74/-0) src/common/symbols.map (+1010/-0) src/common/time/high_resolution_clock.cpp (+3/-3) src/include/common/mir/fd_socket_transmission.h (+28/-0) src/include/common/mir/geometry/displacement.h (+2/-2) src/include/common/mir/logging/null_shared_library_prober_report.h (+49/-0) src/include/common/mir/logging/shared_library_prober_report.h (+48/-0) src/include/common/mir/report/lttng/mir_tracepoint.h (+0/-17) src/include/common/mir/shared_library.h (+9/-0) src/include/common/mir/shared_library_prober.h (+36/-0) src/include/common/mir/shared_library_prober_report.h (+44/-0) src/include/common/mir/time/high_resolution_clock.h (+3/-3) src/include/platform/mir/graphics/buffer_writer.h (+44/-0) src/include/platform/mir/graphics/native_platform.h (+3/-0) src/include/server/mir/compositor/recently_used_cache.h (+1/-0) src/include/server/mir/compositor/scene_element.h (+4/-0) src/include/server/mir/frontend/session_mediator_report.h (+2/-0) src/include/server/mir/input/scene.h (+23/-8) src/include/server/mir/scene/legacy_scene_change_notification.h (+2/-0) src/include/server/mir/scene/observer.h (+4/-0) src/include/server/mir/thread/basic_thread_pool.h (+63/-0) src/platform/CMakeLists.txt (+19/-0) src/platform/graphics/android/CMakeLists.txt (+16/-7) src/platform/graphics/android/buffer_writer.cpp (+70/-0) src/platform/graphics/android/buffer_writer.h (+50/-0) src/platform/graphics/android/display.cpp (+23/-23) src/platform/graphics/android/display.h (+7/-7) src/platform/graphics/android/display_buffer.h (+1/-1) src/platform/graphics/android/display_configuration.cpp (+8/-8) src/platform/graphics/android/display_configuration.h (+8/-8) src/platform/graphics/android/display_resource_factory.h (+3/-2) src/platform/graphics/android/hwc_common_device.cpp (+10/-6) src/platform/graphics/android/hwc_common_device.h (+3/-3) src/platform/graphics/android/hwc_wrapper.h (+2/-1) src/platform/graphics/android/output_builder.cpp (+6/-3) src/platform/graphics/android/output_builder.h (+5/-1) src/platform/graphics/android/platform.cpp (+24/-18) src/platform/graphics/android/platform.h (+6/-5) src/platform/graphics/android/real_hwc_wrapper.cpp (+4/-2) src/platform/graphics/android/real_hwc_wrapper.h (+4/-1) src/platform/graphics/android/resource_factory.cpp (+3/-10) src/platform/graphics/android/resource_factory.h (+2/-7) src/platform/graphics/mesa/CMakeLists.txt (+10/-5) src/platform/graphics/mesa/buffer_allocator.cpp (+1/-1) src/platform/graphics/mesa/buffer_writer.cpp (+40/-0) src/platform/graphics/mesa/buffer_writer.h (+43/-0) src/platform/graphics/mesa/display_buffer.cpp (+3/-12) src/platform/graphics/mesa/native_platform.cpp (+5/-0) src/platform/graphics/mesa/native_platform.h (+1/-0) src/platform/graphics/mesa/platform.cpp (+6/-0) src/platform/graphics/mesa/platform.h (+1/-0) src/platform/graphics/mesa/shm_buffer.cpp (+13/-0) src/platform/graphics/mesa/shm_buffer.h (+2/-0) src/platform/options/default_configuration.cpp (+36/-3) src/platform/symbols.map (+363/-0) src/server/CMakeLists.txt (+45/-1) src/server/compositor/recently_used_cache.cpp (+3/-3) src/server/frontend/client_buffer_tracker.cpp (+42/-21) src/server/frontend/client_buffer_tracker.h (+13/-4) src/server/frontend/protobuf_message_processor.cpp (+4/-0) src/server/frontend/session_mediator.cpp (+32/-0) src/server/frontend/session_mediator.h (+6/-0) src/server/frontend/socket_messenger.cpp (+6/-44) src/server/frontend/socket_messenger.h (+1/-0) src/server/frontend/surface_tracker.cpp (+87/-0) src/server/frontend/surface_tracker.h (+77/-0) src/server/graphics/default_configuration.cpp (+10/-0) src/server/graphics/nested/nested_output.cpp (+1/-0) src/server/graphics/nested/nested_platform.cpp (+5/-0) src/server/graphics/nested/nested_platform.h (+1/-0) src/server/input/CMakeLists.txt (+1/-0) src/server/input/android/android_input_registrar.cpp (+4/-0) src/server/input/android/android_input_registrar.h (+1/-0) src/server/input/android/android_input_target_enumerator.cpp (+4/-4) src/server/input/android/android_input_target_enumerator.h (+3/-3) src/server/input/android/input_sender.cpp (+9/-5) src/server/input/android/input_sender.h (+1/-0) src/server/input/cursor_controller.cpp (+8/-3) src/server/input/cursor_controller.h (+3/-3) src/server/input/default_configuration.cpp (+27/-2) src/server/input/touchspot_controller.cpp (+175/-0) src/server/input/touchspot_controller.h (+77/-0) src/server/input/touchspot_image.c (+1034/-0) src/server/report/logging/session_mediator_report.cpp (+5/-0) src/server/report/logging/session_mediator_report.h (+2/-0) src/server/report/lttng/compositor_report_tp.h (+0/-2) src/server/report/lttng/connector_report_tp.h (+0/-2) src/server/report/lttng/display_report_tp.h (+0/-2) src/server/report/lttng/input_report_tp.h (+0/-2) src/server/report/lttng/lttng_utils.h (+0/-11) src/server/report/lttng/lttng_utils_pop.h (+0/-22) src/server/report/lttng/message_processor_report_tp.h (+0/-2) src/server/report/lttng/scene_report_tp.h (+0/-2) src/server/report/lttng/session_mediator_report.cpp (+1/-0) src/server/report/lttng/session_mediator_report.h (+1/-0) src/server/report/lttng/session_mediator_report_tp.h (+1/-2) src/server/report/null/session_mediator_report.cpp (+4/-0) src/server/report/null/session_mediator_report.h (+2/-0) src/server/scene/basic_surface.cpp (+0/-1) src/server/scene/default_configuration.cpp (+2/-2) src/server/scene/legacy_scene_change_notification.cpp (+5/-0) src/server/scene/surface_stack.cpp (+78/-0) src/server/scene/surface_stack.h (+16/-3) src/server/shell/default_focus_mechanism.cpp (+5/-3) src/server/symbols.map (+1068/-0) src/utils/ping.c (+1/-0) src/utils/screencast.cpp (+1/-0) tests/CMakeLists.txt (+5/-1) tests/acceptance-tests/CMakeLists.txt (+16/-3) tests/acceptance-tests/precompiled.hpp (+30/-0) tests/acceptance-tests/test_client_cursor_api.cpp (+274/-329) tests/acceptance-tests/test_client_input.cpp (+494/-390) tests/acceptance-tests/test_nested_mir.cpp (+10/-5) tests/acceptance-tests/test_protobuf.cpp (+7/-0) tests/acceptance-tests/test_server_disconnect.cpp (+58/-27) tests/acceptance-tests/test_symbols_required_by_mesa.cpp (+2/-2) tests/acceptance-tests/test_touchspot_visualization.cpp (+449/-222) tests/include/mir_test/auto_unblock_thread.h (+9/-0) tests/include/mir_test/fake_event_hub.h (+1/-1) tests/include/mir_test/test_protobuf_client.h (+6/-0) tests/include/mir_test_doubles/mock_egl.h (+2/-0) tests/include/mir_test_doubles/mock_frontend_surface.h (+21/-1) tests/include/mir_test_doubles/mock_gl.h (+1/-0) tests/include/mir_test_doubles/mock_hwc_device_wrapper.h (+1/-1) tests/include/mir_test_doubles/null_platform.h (+7/-2) tests/include/mir_test_doubles/stub_buffer.h (+14/-1) tests/include/mir_test_doubles/stub_gbm_native_buffer.h (+12/-4) tests/include/mir_test_doubles/stub_input_scene.h (+16/-5) tests/include/mir_test_doubles/stub_scene_element.h (+5/-0) tests/include/mir_test_doubles/stub_touch_visualizer.h (+95/-43) tests/include/mir_test_framework/declarative_placement_strategy.h (+2/-2) tests/include/mir_test_framework/display_server_test_fixture.h (+0/-1) tests/include/mir_test_framework/executable_path.h (+2/-0) tests/include/mir_test_framework/fake_event_hub_server_configuration.h (+64/-0) tests/include/mir_test_framework/testing_process_manager.h (+4/-0) tests/integration-tests/CMakeLists.txt (+12/-3) tests/integration-tests/client/test_client_render.cpp (+14/-2) tests/integration-tests/frontend/CMakeLists.txt (+1/-1) tests/integration-tests/frontend/test_session_mediator_report.cpp (+189/-134) tests/integration-tests/graphics/android/test_buffer_integration.cpp (+2/-2) tests/integration-tests/graphics/android/test_display_integration.cpp (+37/-22) tests/integration-tests/input/android/test_android_cursor_listener.cpp (+1/-1) tests/integration-tests/input/android/test_android_input_manager.cpp (+1/-1) tests/integration-tests/input/test_nested_input.cpp (+1/-1) tests/integration-tests/precompiled.hpp (+30/-0) tests/integration-tests/test_exchange_buffer.cpp (+182/-0) tests/mir_test/pipe.cpp (+4/-3) tests/mir_test/popen.cpp (+4/-5) tests/mir_test_doubles/fake_event_hub.cpp (+1/-0) tests/mir_test_doubles/mock_egl.cpp (+9/-0) tests/mir_test_doubles/mock_gl.cpp (+26/-7) tests/mir_test_doubles/test_protobuf_client.cpp (+18/-0) tests/mir_test_framework/CMakeLists.txt (+1/-1) tests/mir_test_framework/cross_process_sync.cpp (+17/-17) tests/mir_test_framework/declarative_placement_strategy.cpp (+2/-2) tests/mir_test_framework/display_server_test_fixture.cpp (+0/-6) tests/mir_test_framework/executable_path.cpp (+5/-0) tests/mir_test_framework/fake_event_hub_server_configuration.cpp (+64/-0) tests/mir_test_framework/input_testing_client_configuration.cpp (+0/-85) tests/mir_test_framework/process.cpp (+5/-3) tests/mir_test_framework/stubbed_server_configuration.cpp (+15/-1) tests/mir_test_framework/testing_process_manager.cpp (+0/-13) tests/mir_test_framework/using_stub_client_platform.cpp (+41/-0) tests/unit-tests/CMakeLists.txt (+52/-19) tests/unit-tests/client/CMakeLists.txt (+1/-0) tests/unit-tests/client/input/test_android_input_receiver.cpp (+1/-1) tests/unit-tests/client/input/test_android_input_receiver_thread.cpp (+2/-2) tests/unit-tests/client/test_client_mir_surface.cpp (+10/-0) tests/unit-tests/client/test_periodic_perf_report.cpp (+146/-0) tests/unit-tests/compositor/test_buffer_queue.cpp (+10/-8) tests/unit-tests/compositor/test_gl_texture_cache.cpp (+15/-0) tests/unit-tests/draw/test_draw_patterns.cpp (+1/-1) tests/unit-tests/examples/test_demo_compositor.cpp (+121/-0) tests/unit-tests/examples/test_demo_renderer.cpp (+64/-0) tests/unit-tests/frontend/test_client_buffer_tracker.cpp (+225/-75) tests/unit-tests/frontend/test_session_mediator.cpp (+422/-72) tests/unit-tests/graphics/android/CMakeLists.txt (+3/-3) tests/unit-tests/graphics/android/test_display.cpp (+19/-19) tests/unit-tests/graphics/android/test_display_buffer.cpp (+20/-21) tests/unit-tests/graphics/android/test_hwc_common_device.cpp (+34/-16) tests/unit-tests/graphics/android/test_hwc_wrapper.cpp (+13/-5) tests/unit-tests/graphics/android/test_output_builder.cpp (+11/-8) tests/unit-tests/graphics/android/test_platform.cpp (+4/-4) tests/unit-tests/graphics/android/test_resource_factory.cpp (+4/-10) tests/unit-tests/graphics/mesa/test_display.cpp (+4/-9) tests/unit-tests/graphics/mesa/test_display_buffer.cpp (+2/-9) tests/unit-tests/graphics/mesa/test_display_configuration.cpp (+2/-7) tests/unit-tests/graphics/mesa/test_display_multi_monitor.cpp (+2/-7) tests/unit-tests/graphics/mesa/test_shm_buffer.cpp (+1/-1) tests/unit-tests/graphics/nested/test_nested_platform.cpp (+5/-0) tests/unit-tests/graphics/offscreen/test_offscreen_display.cpp (+3/-8) tests/unit-tests/graphics/test_display.cpp (+2/-8) tests/unit-tests/input/CMakeLists.txt (+1/-0) tests/unit-tests/input/android/test_android_input_target_enumerator.cpp (+5/-4) tests/unit-tests/input/test_cursor_controller.cpp (+12/-11) tests/unit-tests/input/test_touchspot_controller.cpp (+246/-0) tests/unit-tests/precompiled.hpp (+30/-0) tests/unit-tests/scene/CMakeLists.txt (+0/-1) tests/unit-tests/scene/test_surface_stack.cpp (+141/-21) tests/unit-tests/shared_library_test.cpp (+63/-18) tests/unit-tests/shell/CMakeLists.txt (+1/-0) tests/unit-tests/shell/test_default_focus_mechanism.cpp (+23/-2) tests/unit-tests/test_shared_library_prober.cpp (+182/-0) tools/install_on_android.sh (+7/-0) tools/lib_descriptor.xml.skel (+20/-0) tools/process_doxygen_xml.py (+209/-0) tools/update-all-ABI-sha1sums.sh (+22/-0) tools/valgrind_suppressions_armhf (+8/-0) Text conflict in CMakeLists.txt Text conflict in client-ABI-sha1sums Text conflict in common-ABI-sha1sums Text conflict in debian/control Path conflict: debian/libmirplatform2.install / debian/libmirplatform3.install Text conflict in debian/libmirplatform3.install Text conflict in examples/CMakeLists.txt Path conflict: include/platform/mir/fatal.h / src/include/platform/mir/fatal.h Text conflict in include/platform/mir/options/configuration.h Text conflict in include/server/mir/input/touch_visualizer.h Text conflict in platform-ABI-sha1sums Text conflict in playground/demo-shell/demo_compositor.cpp Text conflict in playground/demo-shell/demo_renderer.cpp Text conflict in playground/demo-shell/demo_renderer.h Text conflict in server-ABI-sha1sums Text conflict in src/client/default_connection_configuration.cpp Text conflict in src/client/default_connection_configuration.h Text conflict in src/client/mir_connection.cpp Text conflict in src/common/CMakeLists.txt Text conflict in src/common/symbols.map Text conflict in src/platform/CMakeLists.txt Text conflict in src/platform/graphics/android/CMakeLists.txt Text conflict in src/platform/options/default_configuration.cpp Text conflict in src/platform/symbols.map Text conflict in src/server/CMakeLists.txt Text conflict in src/server/frontend/client_buffer_tracker.h Text conflict in src/server/frontend/surface_tracker.cpp Text conflict in src/server/frontend/surface_tracker.h Text conflict in src/server/input/default_configuration.cpp Text conflict in src/server/symbols.map Text conflict in tests/acceptance-tests/CMakeLists.txt Text conflict in tests/acceptance-tests/test_client_cursor_api.cpp Text conflict in tests/acceptance-tests/test_client_input.cpp Text conflict in tests/acceptance-tests/test_server_disconnect.cpp Text conflict in tests/acceptance-tests/test_touchspot_visualization.cpp Text conflict in tests/include/mir_test/auto_unblock_thread.h Text conflict in tests/include/mir_test_doubles/mock_frontend_surface.h Text conflict in tests/include/mir_test_doubles/stub_touch_visualizer.h Text conflict in tests/include/mir_test_framework/testing_process_manager.h Text conflict in tests/integration-tests/CMakeLists.txt Text conflict in tests/integration-tests/client/test_client_render.cpp Text conflict in tests/mir_test_doubles/mock_gl.cpp Text conflict in tests/mir_test_framework/using_stub_client_platform.cpp Text conflict in tests/unit-tests/CMakeLists.txt Text conflict in tests/unit-tests/client/test_client_mir_surface.cpp Text conflict in tests/unit-tests/examples/test_demo_compositor.cpp Text conflict in tests/unit-tests/examples/test_demo_renderer.cpp Text conflict in tests/unit-tests/frontend/test_client_buffer_tracker.cpp Text conflict in tests/unit-tests/frontend/test_session_mediator.cpp Text conflict in tests/unit-tests/scene/test_surface_stack.cpp Text conflict in tools/install_on_android.sh Text conflict in tools/process_doxygen_xml.py Path conflict: tools/process_doygen_xml.py / tools/process_doxygen_xml.py Text conflict in tools/update-all-ABI-sha1sums.sh |
||||||||
To merge this branch: | bzr merge lp:~mir-team/mir/fix-1372850 | ||||||||
Related bugs: |
|
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
PS Jenkins bot (community) | continuous-integration | Needs Fixing | |
Kevin DuBois (community) | Needs Resubmitting | ||
Review via email: mp+235679@code.launchpad.net |
This proposal has been superseded by a proposal from 2014-09-23.
Commit message
Ensure touchspots do not update the scene when disabled.
Description of the change
Ensure touchspots do not update the scene when disabled. I can't see what else could becausing 1372850 as this effectively makes the touchspot feature no op unless enabled.
It's alarming that scene updates could trigger a noticeable slowdown.
Robert Carr (robertcarr) wrote : | # |
Kevin DuBois (kdub) wrote : | # |
retarget to devel?
PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:1931
http://
Executed test runs:
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
Click here to trigger a rebuild:
http://
Preview Diff
1 | === modified file '3rd_party/android-input/android/CMakeLists.txt' |
2 | --- 3rd_party/android-input/android/CMakeLists.txt 2014-07-14 10:39:48 +0000 |
3 | +++ 3rd_party/android-input/android/CMakeLists.txt 2014-09-23 17:34:29 +0000 |
4 | @@ -7,7 +7,9 @@ |
5 | system/extras/ext4_utils |
6 | |
7 | ${PROJECT_SOURCE_DIR}/include/server |
8 | + ${PROJECT_SOURCE_DIR}/src/include/server |
9 | ${PROJECT_SOURCE_DIR}/include/platform |
10 | + ${PROJECT_SOURCE_DIR}/src/include/platform |
11 | ) |
12 | |
13 | add_definitions( |
14 | |
15 | === modified file 'CMakeLists.txt' |
16 | --- CMakeLists.txt 2014-09-16 08:33:51 +0000 |
17 | +++ CMakeLists.txt 2014-09-23 17:34:29 +0000 |
18 | @@ -27,10 +27,17 @@ |
19 | set(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/lib) |
20 | |
21 | set(MIR_VERSION_MAJOR 0) |
22 | +<<<<<<< TREE |
23 | set(MIR_VERSION_MINOR 7) # This should change at least with every MIRSERVER_ABI |
24 | set(MIR_VERSION_PATCH 3) |
25 | |
26 | set(MIR_VERSION ${MIR_VERSION_MAJOR}.${MIR_VERSION_MINOR}.${MIR_VERSION_PATCH}) |
27 | +======= |
28 | +set(MIR_VERSION_MINOR 8) # This should change at least with every MIRSERVER_ABI |
29 | +set(MIR_VERSION_PATCH 0) |
30 | +>>>>>>> MERGE-SOURCE |
31 | + |
32 | +set(MIR_VERSION ${MIR_VERSION_MAJOR}.${MIR_VERSION_MINOR}.${MIR_VERSION_PATCH}) |
33 | |
34 | set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake) |
35 | execute_process( |
36 | @@ -104,10 +111,14 @@ |
37 | |
38 | enable_testing() |
39 | |
40 | -include_directories(include/shared) |
41 | +include_directories(include/common src/include/common) |
42 | |
43 | # Check for boost |
44 | +<<<<<<< TREE |
45 | find_package(Boost 1.48.0 COMPONENTS date_time system program_options iostreams REQUIRED) |
46 | +======= |
47 | +find_package(Boost 1.48.0 COMPONENTS date_time system program_options iostreams filesystem REQUIRED) |
48 | +>>>>>>> MERGE-SOURCE |
49 | include_directories ( |
50 | ${Boost_INCLUDE_DIRS} |
51 | ) |
52 | @@ -190,9 +201,11 @@ |
53 | add_subdirectory(benchmarks/) |
54 | add_subdirectory(tools/) |
55 | add_subdirectory(examples/) |
56 | +add_subdirectory(playground/) |
57 | add_subdirectory(guides/) |
58 | add_subdirectory(cmake/) |
59 | |
60 | +<<<<<<< TREE |
61 | if (MIR_ENABLE_TESTS) |
62 | find_package(Gtest REQUIRED) |
63 | include_directories(${GMOCK_INCLUDE_DIR} ${GTEST_INCLUDE_DIR}) |
64 | @@ -226,6 +239,47 @@ |
65 | COMMAND sha1sum -c platform-ABI-sha1sums |
66 | ) |
67 | endif () |
68 | +======= |
69 | +if (MIR_ENABLE_TESTS) |
70 | + find_package(Gtest REQUIRED) |
71 | + include_directories(${GMOCK_INCLUDE_DIR} ${GTEST_INCLUDE_DIR}) |
72 | + add_subdirectory(tests/) |
73 | + |
74 | + # There's no nice way to format this. Thanks CMake. |
75 | + add_test(LGPL-required |
76 | + /bin/sh -c "! grep -rl 'GNU General' ${PROJECT_SOURCE_DIR}/src/client ${PROJECT_SOURCE_DIR}/include/client ${PROJECT_SOURCE_DIR}/src/common ${PROJECT_SOURCE_DIR}/include/common ${PROJECT_SOURCE_DIR}/src/include/common ${PROJECT_SOURCE_DIR}/src/platform ${PROJECT_SOURCE_DIR}/include/platform ${PROJECT_SOURCE_DIR}/src/include/platform" |
77 | + ) |
78 | + add_test(GPL-required |
79 | + /bin/sh -c "! grep -rl 'GNU Lesser' ${PROJECT_SOURCE_DIR}/src/server ${PROJECT_SOURCE_DIR}/include/server ${PROJECT_SOURCE_DIR}/src/include/server ${PROJECT_SOURCE_DIR}/tests ${PROJECT_SOURCE_DIR}/examples" |
80 | + ) |
81 | + |
82 | + add_test(NAME server-ABI-unchanged |
83 | + WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} |
84 | + COMMAND sha1sum -c server-ABI-sha1sums |
85 | + ) |
86 | + |
87 | + add_test(NAME client-ABI-unchanged |
88 | + WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} |
89 | + COMMAND sha1sum -c client-ABI-sha1sums |
90 | + ) |
91 | + |
92 | + add_test(NAME common-ABI-unchanged |
93 | + WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} |
94 | + COMMAND sha1sum -c common-ABI-sha1sums |
95 | + ) |
96 | + |
97 | + add_test(NAME platform-ABI-unchanged |
98 | + WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} |
99 | + COMMAND sha1sum -c platform-ABI-sha1sums |
100 | + ) |
101 | +endif () |
102 | +>>>>>>> MERGE-SOURCE |
103 | |
104 | enable_coverage_report(mirserver) |
105 | -include (cmake/Doxygen.cmake) |
106 | +<<<<<<< TREE |
107 | +include (cmake/Doxygen.cmake) |
108 | +======= |
109 | +include (cmake/Doxygen.cmake) |
110 | +include (cmake/ABICheck.cmake) |
111 | + |
112 | +>>>>>>> MERGE-SOURCE |
113 | |
114 | === modified file 'benchmarks/android-input/CMakeLists.txt' |
115 | --- benchmarks/android-input/CMakeLists.txt 2014-08-27 19:44:04 +0000 |
116 | +++ benchmarks/android-input/CMakeLists.txt 2014-09-23 17:34:29 +0000 |
117 | @@ -5,7 +5,7 @@ |
118 | ) |
119 | |
120 | include_directories( |
121 | - ${Mir_SOURCE_DIR}/include/test |
122 | + ${Mir_SOURCE_DIR}/tests/include |
123 | ${Mir_SOURCE_DIR}/include/platform |
124 | ) |
125 | |
126 | |
127 | === modified file 'client-ABI-sha1sums' |
128 | --- client-ABI-sha1sums 2014-08-05 14:01:56 +0000 |
129 | +++ client-ABI-sha1sums 2014-09-23 17:34:29 +0000 |
130 | @@ -8,9 +8,18 @@ |
131 | 21d07e655e85eeec8a3523e1c6f9c2252176ec01 include/client/mir_toolkit/mir_screencast.h |
132 | 8609754db3be20e11e43858dd2c36b5bd480d5ec include/client/mir_toolkit/mir_surface.h |
133 | b141c4d79802ad626d969249c0004744e5c2a525 include/client/mir_toolkit/mir_wait.h |
134 | +<<<<<<< TREE |
135 | 9907751d046e4aea81881cf19e5df52c7a6a813e include/shared/mir_toolkit/client_types.h |
136 | 183d9e5e6cfe48b3d9145a28541dd4202ff6137b include/shared/mir_toolkit/common.h |
137 | fce4c1a9e0d037244f7e9e96ea2d8eaab4fc404c include/shared/mir_toolkit/cursors.h |
138 | bdaceadd56e41d2cb708f7c4da97acf84dfc75b7 include/shared/mir_toolkit/event.h |
139 | 99ef5f3bf548508fae24c60f74be1dea018a6e8c include/shared/mir_toolkit/mesa/native_display.h |
140 | 101017c17714a57db57d79b7b5e7df40a3568236 include/shared/mir_toolkit/mir_native_buffer.h |
141 | +======= |
142 | +9907751d046e4aea81881cf19e5df52c7a6a813e include/common/mir_toolkit/client_types.h |
143 | +183d9e5e6cfe48b3d9145a28541dd4202ff6137b include/common/mir_toolkit/common.h |
144 | +fce4c1a9e0d037244f7e9e96ea2d8eaab4fc404c include/common/mir_toolkit/cursors.h |
145 | +bdaceadd56e41d2cb708f7c4da97acf84dfc75b7 include/common/mir_toolkit/event.h |
146 | +99ef5f3bf548508fae24c60f74be1dea018a6e8c include/common/mir_toolkit/mesa/native_display.h |
147 | +101017c17714a57db57d79b7b5e7df40a3568236 include/common/mir_toolkit/mir_native_buffer.h |
148 | +>>>>>>> MERGE-SOURCE |
149 | |
150 | === added file 'cmake/ABICheck.cmake' |
151 | --- cmake/ABICheck.cmake 1970-01-01 00:00:00 +0000 |
152 | +++ cmake/ABICheck.cmake 2014-09-23 17:34:29 +0000 |
153 | @@ -0,0 +1,93 @@ |
154 | +cmake_minimum_required (VERSION 2.6) |
155 | + |
156 | +execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpmachine OUTPUT_VARIABLE ABI_CHECK_TARGET_MACH OUTPUT_STRIP_TRAILING_WHITESPACE) |
157 | +set(REL_ABI_DUMPS_DIR $ENV{REL_ABI_DUMPS_DIR}) |
158 | +if ("${REL_ABI_DUMPS_DIR}" STREQUAL "") |
159 | + set(REL_ABI_DUMPS_DIR ${CMAKE_BINARY_DIR}/abi_dumps) |
160 | +endif() |
161 | + |
162 | +set(ABI_DUMPS_DIR_PREFIX "abi_dumps/${ABI_CHECK_TARGET_MACH}") |
163 | + |
164 | +function(get_value_for_arg alist name output) |
165 | + list(FIND alist ${name} idx) |
166 | + if (idx GREATER -1) |
167 | + math(EXPR idx "${idx} + 1") |
168 | + list(GET alist ${idx} tmp_out) |
169 | + set(${output} "${tmp_out}" PARENT_SCOPE) |
170 | + endif() |
171 | +endfunction() |
172 | + |
173 | +function(get_includes libname output) |
174 | + get_property(lib_includes TARGET ${libname} PROPERTY INCLUDE_DIRECTORIES) |
175 | + list(REMOVE_DUPLICATES lib_includes) |
176 | + string(REPLACE ";" "\n " tmp_out "${lib_includes}") |
177 | + set(${output} "${tmp_out}" PARENT_SCOPE) |
178 | +endfunction() |
179 | + |
180 | +function(make_lib_descriptor name) |
181 | + set(libname "mir${name}") |
182 | + |
183 | + list(FIND ARGN "INCLUDE_PRIVATE" include_private) |
184 | + if (include_private GREATER -1) |
185 | + set(private_headers "${CMAKE_SOURCE_DIR}/src/include/${name}") |
186 | + endif() |
187 | + |
188 | + set(LIB_DESC_HEADERS "${CMAKE_SOURCE_DIR}/include/${name} |
189 | + ${private_headers}" |
190 | + ) |
191 | + |
192 | + get_property(LIB_DESC_LIBS TARGET ${libname} PROPERTY LOCATION) |
193 | + |
194 | + get_includes(${libname} LIB_DESC_INCLUDE_PATHS) |
195 | + set(LIB_DESC_GCC_OPTS "${CMAKE_CXX_FLAGS}") |
196 | + |
197 | + get_value_for_arg("${ARGN}" "EXCLUDE_HEADERS" LIB_DESC_SKIP_HEADERS) |
198 | + |
199 | + configure_file(${CMAKE_SOURCE_DIR}/tools/lib_descriptor.xml.skel ${libname}_desc.xml) |
200 | +endfunction() |
201 | + |
202 | +#These headers are not part of the libmircommon interface |
203 | +set(android-platform-headers "${CMAKE_SOURCE_DIR}/src/include/common/mir/graphics/android") |
204 | + |
205 | +make_lib_descriptor(client) |
206 | +make_lib_descriptor(server) |
207 | +make_lib_descriptor(common INCLUDE_PRIVATE EXCLUDE_HEADERS ${android-platform-headers}) |
208 | +make_lib_descriptor(platform INCLUDE_PRIVATE) |
209 | + |
210 | +macro(_add_custom_abi_dump_command libname version) |
211 | + set(ABI_DUMP_NAME ${ABI_DUMPS_DIR_PREFIX}/${libname}_${version}.abi.tar.gz) |
212 | + add_custom_command(OUTPUT ${ABI_DUMP_NAME} |
213 | + COMMAND abi-compliance-checker -gcc-path ${CMAKE_C_COMPILER} -l ${libname} -v1 ${version} -dump-path ${ABI_DUMP_NAME} -dump-abi ${libname}_desc.xml |
214 | + DEPENDS ${libname} |
215 | + ) |
216 | +endmacro(_add_custom_abi_dump_command) |
217 | + |
218 | +macro(_define_abi_dump_for libname) |
219 | + _add_custom_abi_dump_command(${libname} next) |
220 | + add_custom_target(abi-dump-${libname} DEPENDS ${ABI_DUMP_NAME}) |
221 | + _add_custom_abi_dump_command(${libname} base) |
222 | + add_custom_target(abi-dump-base-${libname} DEPENDS ${ABI_DUMP_NAME}) |
223 | +endmacro(_define_abi_dump_for) |
224 | + |
225 | +macro(_define_abi_check_for libname) |
226 | + set(OLD_ABI_DUMP "${REL_ABI_DUMPS_DIR}/${ABI_CHECK_TARGET_MACH}/${libname}_base.abi.tar.gz") |
227 | + set(NEW_ABI_DUMP ${ABI_DUMPS_DIR_PREFIX}/${libname}_next.abi.tar.gz) |
228 | + add_custom_target(abi-check-${libname} |
229 | + COMMAND abi-compliance-checker -l ${libname} -old "${OLD_ABI_DUMP}" -new "${NEW_ABI_DUMP}" -check-implementation |
230 | + DEPENDS abi-dump-${libname} |
231 | + ) |
232 | +endmacro(_define_abi_check_for) |
233 | + |
234 | +set(the_libs mirserver mirclient mircommon mirplatform) |
235 | + |
236 | +foreach(libname ${the_libs}) |
237 | + _define_abi_dump_for(${libname}) |
238 | + _define_abi_check_for(${libname}) |
239 | + list(APPEND abi-dump-list abi-dump-${libname}) |
240 | + list(APPEND abi-dump-base-list abi-dump-base-${libname}) |
241 | + list(APPEND abi-check-list abi-check-${libname}) |
242 | +endforeach(libname) |
243 | + |
244 | +add_custom_target(abi-dump DEPENDS ${abi-dump-list}) |
245 | +add_custom_target(abi-dump-base DEPENDS ${abi-dump-base-list}) |
246 | +add_custom_target(abi-check DEPENDS ${abi-check-list}) |
247 | |
248 | === modified file 'cmake/MirCommon.cmake' |
249 | --- cmake/MirCommon.cmake 2014-08-26 14:59:57 +0000 |
250 | +++ cmake/MirCommon.cmake 2014-09-23 17:34:29 +0000 |
251 | @@ -16,6 +16,12 @@ |
252 | OFF |
253 | ) |
254 | |
255 | +option( |
256 | + MIR_USE_PRECOMPILED_HEADERS |
257 | + "Use precompiled headers" |
258 | + ON |
259 | +) |
260 | + |
261 | if(ENABLE_MEMCHECK_OPTION) |
262 | find_program( |
263 | VALGRIND_EXECUTABLE |
264 | @@ -117,3 +123,33 @@ |
265 | endif() |
266 | endif() |
267 | endfunction() |
268 | + |
269 | +function (mir_precompiled_header TARGET HEADER) |
270 | + if (MIR_USE_PRECOMPILED_HEADERS) |
271 | + get_property(TARGET_COMPILE_FLAGS TARGET ${TARGET} PROPERTY COMPILE_FLAGS) |
272 | + get_property(TARGET_INCLUDE_DIRECTORIES TARGET ${TARGET} PROPERTY INCLUDE_DIRECTORIES) |
273 | + foreach(dir ${TARGET_INCLUDE_DIRECTORIES}) |
274 | + if (${dir} MATCHES "usr/include") |
275 | + set(TARGET_INCLUDE_DIRECTORIES_STRING "${TARGET_INCLUDE_DIRECTORIES_STRING} -isystem ${dir}") |
276 | + else() |
277 | + set(TARGET_INCLUDE_DIRECTORIES_STRING "${TARGET_INCLUDE_DIRECTORIES_STRING} -I${dir}") |
278 | + endif() |
279 | + endforeach() |
280 | + |
281 | + separate_arguments( |
282 | + PCH_CXX_FLAGS UNIX_COMMAND |
283 | + "${CMAKE_CXX_FLAGS} ${TARGET_COMPILE_FLAGS} ${TARGET_INCLUDE_DIRECTORIES_STRING}" |
284 | + ) |
285 | + |
286 | + add_custom_command( |
287 | + OUTPUT ${TARGET}_precompiled.hpp.gch |
288 | + DEPENDS ${HEADER} |
289 | + COMMAND ${CMAKE_CXX_COMPILER} ${PCH_CXX_FLAGS} -x c++-header -c ${HEADER} -o ${CMAKE_CURRENT_BINARY_DIR}/${TARGET}_precompiled.hpp.gch |
290 | + ) |
291 | + |
292 | + set_property(TARGET ${TARGET} APPEND_STRING PROPERTY COMPILE_FLAGS " -include ${CMAKE_CURRENT_BINARY_DIR}/${TARGET}_precompiled.hpp -Winvalid-pch ") |
293 | + |
294 | + add_custom_target(${TARGET}_pch DEPENDS ${TARGET}_precompiled.hpp.gch) |
295 | + add_dependencies(${TARGET} ${TARGET}_pch) |
296 | + endif() |
297 | +endfunction() |
298 | |
299 | === modified file 'common-ABI-sha1sums' |
300 | --- common-ABI-sha1sums 2014-08-27 19:35:36 +0000 |
301 | +++ common-ABI-sha1sums 2014-09-23 17:34:29 +0000 |
302 | @@ -1,3 +1,4 @@ |
303 | +<<<<<<< TREE |
304 | 6ad1f35928df9ffd917fbf17cbcdd533a8b5b27d include/shared/mir/basic_observers.h |
305 | 3329ada91412ded2f127aee9a92f065e57b81cb2 include/shared/mir/cached_ptr.h |
306 | 691278e8b89265fa7f11db78dc8a9b530cef6e99 include/shared/mir/default_configuration.h |
307 | @@ -43,3 +44,23 @@ |
308 | 101017c17714a57db57d79b7b5e7df40a3568236 include/shared/mir_toolkit/mir_native_buffer.h |
309 | 9f646fa12eaca5fc3b7a8fde6208673c071c8ef3 include/shared/mir/udev/wrapper.h |
310 | 9fd77ab693cc4c9a200e44804f5493733528a674 include/shared/mir/variable_length_array.h |
311 | +======= |
312 | +3329ada91412ded2f127aee9a92f065e57b81cb2 include/common/mir/cached_ptr.h |
313 | +82ff9499ef62739379616e02164dc98f9914c329 include/common/mir/fd.h |
314 | +b399dc08514751c86e23824612a52378dd9b1e23 include/common/mir/geometry/dimensions.h |
315 | +d954464ef2d20c2876db68c94512a443186da09b include/common/mir/geometry/point.h |
316 | +dc7c62d3916eec025e8e7deaf57e06077ce38928 include/common/mir/geometry/rectangle.h |
317 | +5161774957e3ca4f5fa4e7db025d0978d2bbef06 include/common/mir/geometry/rectangles.h |
318 | +42646c2367b9821e3aa71feff6e31cf50526acaa include/common/mir/geometry/size.h |
319 | +e1be9faee8b844ca2ce617f8fd82c9ee08d56bed include/common/mir/graphics/native_buffer.h |
320 | +dcf8b8982f138bdde39a241825c610e955cd5e33 include/common/mir/input/input_platform.h |
321 | +208cd6aed5ef5f8f39b3eb86604e4133cb840485 include/common/mir/input/input_receiver_thread.h |
322 | +be7d58c9fde2ce91cc66dd6144b76e08b536266b include/common/mir/int_wrapper.h |
323 | +48015c67ddc4998ed5a2e8bb04ff3a4bfdd6a613 include/common/mir/time/clock.h |
324 | +9907751d046e4aea81881cf19e5df52c7a6a813e include/common/mir_toolkit/client_types.h |
325 | +183d9e5e6cfe48b3d9145a28541dd4202ff6137b include/common/mir_toolkit/common.h |
326 | +fce4c1a9e0d037244f7e9e96ea2d8eaab4fc404c include/common/mir_toolkit/cursors.h |
327 | +bdaceadd56e41d2cb708f7c4da97acf84dfc75b7 include/common/mir_toolkit/event.h |
328 | +99ef5f3bf548508fae24c60f74be1dea018a6e8c include/common/mir_toolkit/mesa/native_display.h |
329 | +101017c17714a57db57d79b7b5e7df40a3568236 include/common/mir_toolkit/mir_native_buffer.h |
330 | +>>>>>>> MERGE-SOURCE |
331 | |
332 | === modified file 'cross-compile-chroot.sh' |
333 | --- cross-compile-chroot.sh 2014-03-26 05:48:59 +0000 |
334 | +++ cross-compile-chroot.sh 2014-09-23 17:34:29 +0000 |
335 | @@ -24,9 +24,11 @@ |
336 | case $OPTNAME in |
337 | c ) |
338 | clean_build_dir ${BUILD_DIR} |
339 | + shift |
340 | ;; |
341 | u ) |
342 | _do_update_chroot=1 |
343 | + shift |
344 | ;; |
345 | h ) |
346 | usage |
347 | @@ -78,6 +80,6 @@ |
348 | -DMIR_PLATFORM=android\;mesa \ |
349 | .. |
350 | |
351 | - make -j${NUM_JOBS} |
352 | + make -j${NUM_JOBS} $@ |
353 | |
354 | popd > /dev/null |
355 | |
356 | === modified file 'debian/control' |
357 | --- debian/control 2014-09-18 06:04:10 +0000 |
358 | +++ debian/control 2014-09-23 17:34:29 +0000 |
359 | @@ -18,7 +18,12 @@ |
360 | libboost-date-time-dev, |
361 | libboost-program-options-dev, |
362 | libboost-system-dev, |
363 | - libboost-iostreams-dev, |
364 | +<<<<<<< TREE |
365 | + libboost-iostreams-dev, |
366 | +======= |
367 | + libboost-iostreams-dev, |
368 | + libboost-filesystem-dev, |
369 | +>>>>>>> MERGE-SOURCE |
370 | protobuf-compiler, |
371 | libdrm-dev, |
372 | libegl1-mesa-dev, |
373 | @@ -51,15 +56,23 @@ |
374 | Pre-Depends: ${misc:Pre-Depends} |
375 | Depends: ${misc:Depends}, |
376 | ${shlibs:Depends}, |
377 | +<<<<<<< TREE |
378 | libmirplatformgraphics-mesa (= ${binary:Version}) | |
379 | libmirplatformgraphics-android (= ${binary:Version}), |
380 | +======= |
381 | + libmirplatform3driver-mesa | libmirplatform3driver-android, |
382 | +>>>>>>> MERGE-SOURCE |
383 | Description: Display server for Ubuntu - server library |
384 | Mir is a display server running on linux systems, with a focus on efficiency, |
385 | robust operation and a well-defined driver model. |
386 | . |
387 | Contains the shared library needed by server applications for Mir. |
388 | |
389 | +<<<<<<< TREE |
390 | Package: libmirplatform2 |
391 | +======= |
392 | +Package: libmirplatform3 |
393 | +>>>>>>> MERGE-SOURCE |
394 | Section: libs |
395 | Architecture: i386 amd64 armhf arm64 |
396 | Multi-Arch: same |
397 | @@ -73,7 +86,7 @@ |
398 | Contains the shared libraries required for the Mir server to interact with |
399 | the underlying hardware platform. |
400 | |
401 | -Package: libmirplatformgraphics-mesa |
402 | +Package: libmirplatform3driver-mesa |
403 | Section: libs |
404 | Architecture: i386 amd64 armhf arm64 |
405 | Multi-Arch: same |
406 | @@ -87,7 +100,7 @@ |
407 | Contains the shared libraries required for the Mir server to interact with |
408 | the hardware platform using the Mesa drivers. |
409 | |
410 | -Package: libmirplatformgraphics-android |
411 | +Package: libmirplatform3driver-android |
412 | Section: libs |
413 | Architecture: i386 amd64 armhf |
414 | Multi-Arch: same |
415 | @@ -106,8 +119,13 @@ |
416 | Architecture: i386 amd64 armhf arm64 |
417 | Multi-Arch: same |
418 | Pre-Depends: ${misc:Pre-Depends} |
419 | +<<<<<<< TREE |
420 | Depends: libmircommon1 (= ${binary:Version}), |
421 | libprotobuf-dev (>= 2.4.1), |
422 | +======= |
423 | +Depends: libmircommon2 (= ${binary:Version}), |
424 | + libprotobuf-dev (>= 2.4.1), |
425 | +>>>>>>> MERGE-SOURCE |
426 | ${misc:Depends}, |
427 | Breaks: mircommon-dev (<< 0.6) |
428 | Replaces: mircommon-dev (<< 0.6) |
429 | @@ -117,6 +135,7 @@ |
430 | . |
431 | Contains header files required for server and/or client development. |
432 | |
433 | +<<<<<<< TREE |
434 | Package: libmirplatform-dev |
435 | Section: libdevel |
436 | Architecture: i386 amd64 armhf arm64 |
437 | @@ -134,6 +153,25 @@ |
438 | . |
439 | Contains header files required for hardware/driver support development. |
440 | |
441 | +======= |
442 | +Package: libmirplatform-dev |
443 | +Section: libdevel |
444 | +Architecture: i386 amd64 armhf arm64 |
445 | +Multi-Arch: same |
446 | +Pre-Depends: ${misc:Pre-Depends} |
447 | +Depends: libmirplatform3 (= ${binary:Version}), |
448 | + libmircommon-dev, |
449 | + libboost-program-options-dev, |
450 | + ${misc:Depends}, |
451 | +Breaks: libmirplatform (<< 0.6) |
452 | +Replaces: libmirplatform (<< 0.6) |
453 | +Description: Display server for Ubuntu - development headers |
454 | + Mir is a display server running on linux systems, with a focus on efficiency, |
455 | + robust operation and a well-defined driver model. |
456 | + . |
457 | + Contains header files required for hardware/driver support development. |
458 | + |
459 | +>>>>>>> MERGE-SOURCE |
460 | Package: libmirserver-dev |
461 | Section: libdevel |
462 | Architecture: i386 amd64 armhf arm64 |
463 | @@ -157,8 +195,7 @@ |
464 | Pre-Depends: ${misc:Pre-Depends} |
465 | Depends: ${misc:Depends}, |
466 | ${shlibs:Depends}, |
467 | - libmirclientplatform-mesa (= ${binary:Version}) | |
468 | - libmirclientplatform-android (= ${binary:Version}), |
469 | + libmirclient8driver-mesa | libmirclient8driver-android, |
470 | Description: Display server for Ubuntu - client library |
471 | Mir is a display server running on linux systems, with a focus on efficiency, |
472 | robust operation and a well-defined driver model. |
473 | @@ -180,14 +217,13 @@ |
474 | . |
475 | Contains header files required to develop against Mir. |
476 | |
477 | -Package: libmirclientplatform-mesa |
478 | +Package: libmirclient8driver-mesa |
479 | Section: libs |
480 | Architecture: i386 amd64 armhf arm64 |
481 | Multi-Arch: same |
482 | Pre-Depends: ${misc:Pre-Depends} |
483 | Depends: ${misc:Depends}, |
484 | ${shlibs:Depends} |
485 | -Replaces: libmirclientplatform |
486 | Description: Display server for Ubuntu - client platform library for Mesa |
487 | Mir is a display server running on linux systems, with a focus on efficiency, |
488 | robust operation and a well-defined driver model. |
489 | @@ -195,14 +231,13 @@ |
490 | Contains the shared libraries required for the Mir clients to interact with |
491 | the underlying hardware platform using the Mesa drivers. |
492 | |
493 | -Package: libmirclientplatform-android |
494 | +Package: libmirclient8driver-android |
495 | Section: libs |
496 | Architecture: i386 amd64 armhf |
497 | Multi-Arch: same |
498 | Pre-Depends: ${misc:Pre-Depends} |
499 | Depends: ${misc:Depends}, |
500 | ${shlibs:Depends} |
501 | -Replaces: libmirclientplatform |
502 | Description: Display server for Ubuntu - client platform library for Android |
503 | Mir is a display server running on linux systems, with a focus on efficiency, |
504 | robust operation and a well-defined driver model. |
505 | @@ -250,7 +285,7 @@ |
506 | . |
507 | Contains a tool for stress testing the Mir display server |
508 | |
509 | -Package: libmircommon1 |
510 | +Package: libmircommon2 |
511 | Section: libs |
512 | Architecture: i386 amd64 armhf arm64 |
513 | Multi-Arch: same |
514 | |
515 | === modified file 'debian/copyright' |
516 | --- debian/copyright 2013-08-28 03:41:48 +0000 |
517 | +++ debian/copyright 2014-09-23 17:34:29 +0000 |
518 | @@ -50,7 +50,7 @@ |
519 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
520 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
521 | |
522 | -Files: include/client/* include/shared/* src/client/* src/shared/* 3rd_party/android-deps/std/* |
523 | +Files: include/client/* include/common/* src/client/* src/common/* 3rd_party/android-deps/std/* |
524 | Copyright: 2012-2013, Canonical Ltd. |
525 | License: LGPL-3 |
526 | This program is free software: you can redistribute it and/or modify |
527 | |
528 | === modified file 'debian/create_postinst_prerm_scripts.sh' |
529 | --- debian/create_postinst_prerm_scripts.sh 2014-04-15 15:02:05 +0000 |
530 | +++ debian/create_postinst_prerm_scripts.sh 2014-09-23 17:34:29 +0000 |
531 | @@ -6,7 +6,7 @@ |
532 | deb_host_arch=$1 |
533 | deb_host_multiarch=$2 |
534 | |
535 | -mir_platform_types="platformgraphics clientplatform" |
536 | +mir_platform_types="${PLATFORM_DRIVER} ${CLIENT_DRIVER}" |
537 | case $deb_host_arch in |
538 | arm64) |
539 | mir_platforms="mesa" |
540 | |
541 | === modified file 'debian/install_ld_so_conf.sh' |
542 | --- debian/install_ld_so_conf.sh 2014-04-15 15:02:05 +0000 |
543 | +++ debian/install_ld_so_conf.sh 2014-09-23 17:34:29 +0000 |
544 | @@ -5,7 +5,7 @@ |
545 | DEB_HOST_ARCH=$1 |
546 | DEB_HOST_MULTIARCH=$2 |
547 | |
548 | -mir_platform_types="platformgraphics clientplatform" |
549 | +mir_platform_types="${PLATFORM_DRIVER} ${CLIENT_DRIVER}" |
550 | case $DEB_HOST_ARCH in |
551 | arm64) |
552 | mir_platforms="mesa" |
553 | |
554 | === renamed file 'debian/libmirclientplatform-android.install' => 'debian/libmirclient8driver-android.install' |
555 | --- debian/libmirclientplatform-android.install 2014-02-14 08:43:47 +0000 |
556 | +++ debian/libmirclient8driver-android.install 2014-09-23 17:34:29 +0000 |
557 | @@ -1,1 +1,1 @@ |
558 | -usr/lib/*/mir/clientplatform/android/* |
559 | +usr/lib/*/mir/client*driver/android/* |
560 | |
561 | === renamed file 'debian/libmirclientplatform-mesa.install' => 'debian/libmirclient8driver-mesa.install' |
562 | --- debian/libmirclientplatform-mesa.install 2014-02-14 08:43:47 +0000 |
563 | +++ debian/libmirclient8driver-mesa.install 2014-09-23 17:34:29 +0000 |
564 | @@ -1,1 +1,1 @@ |
565 | -usr/lib/*/mir/clientplatform/mesa/* |
566 | +usr/lib/*/mir/client*driver/mesa/* |
567 | |
568 | === renamed file 'debian/libmircommon1.install' => 'debian/libmircommon2.install' |
569 | --- debian/libmircommon1.install 2014-08-26 14:59:57 +0000 |
570 | +++ debian/libmircommon2.install 2014-09-23 17:34:29 +0000 |
571 | @@ -1,1 +1,1 @@ |
572 | -usr/lib/*/libmircommon.so.1 |
573 | +usr/lib/*/libmircommon.so.2 |
574 | |
575 | === renamed file 'debian/libmirplatform2.install' => 'debian/libmirplatform3.install' |
576 | --- debian/libmirplatform2.install 2014-08-26 14:41:22 +0000 |
577 | +++ debian/libmirplatform3.install 2014-09-23 17:34:29 +0000 |
578 | @@ -1,1 +1,5 @@ |
579 | +<<<<<<< TREE |
580 | usr/lib/*/libmirplatform.so.2 |
581 | +======= |
582 | +usr/lib/*/libmirplatform.so.3 |
583 | +>>>>>>> MERGE-SOURCE |
584 | |
585 | === renamed file 'debian/libmirplatformgraphics-android.install' => 'debian/libmirplatform3driver-android.install' |
586 | --- debian/libmirplatformgraphics-android.install 2014-02-14 08:43:47 +0000 |
587 | +++ debian/libmirplatform3driver-android.install 2014-09-23 17:34:29 +0000 |
588 | @@ -1,1 +1,1 @@ |
589 | -usr/lib/*/mir/platformgraphics/android/* |
590 | +usr/lib/*/mir/platform*driver/android/* |
591 | |
592 | === renamed file 'debian/libmirplatformgraphics-mesa.install' => 'debian/libmirplatform3driver-mesa.install' |
593 | --- debian/libmirplatformgraphics-mesa.install 2014-02-14 08:43:47 +0000 |
594 | +++ debian/libmirplatform3driver-mesa.install 2014-09-23 17:34:29 +0000 |
595 | @@ -1,1 +1,1 @@ |
596 | -usr/lib/*/mir/platformgraphics/mesa/* |
597 | +usr/lib/*/mir/platform*driver/mesa/* |
598 | |
599 | === modified file 'debian/rules' |
600 | --- debian/rules 2014-08-27 19:34:09 +0000 |
601 | +++ debian/rules 2014-09-23 17:34:29 +0000 |
602 | @@ -13,6 +13,9 @@ |
603 | export CC=$(DEB_HOST_GNU_TYPE)-gcc-4.9 |
604 | export CXX=$(DEB_HOST_GNU_TYPE)-g++-4.9 |
605 | |
606 | +export PLATFORM_DRIVER = platform3driver |
607 | +export CLIENT_DRIVER = client8driver |
608 | + |
609 | %: |
610 | dh $@ --parallel --fail-missing |
611 | |
612 | @@ -49,8 +52,8 @@ |
613 | |
614 | override_dh_install: |
615 | dh_install --fail-missing \ |
616 | - -Xusr/lib/$(DEB_HOST_MULTIARCH)/libmirplatformgraphics.so \ |
617 | - -Xusr/lib/$(DEB_HOST_MULTIARCH)/libmirclientplatform.so |
618 | + -Xusr/lib/$(DEB_HOST_MULTIARCH)/libmir$(PLATFORM_DRIVER).so \ |
619 | + -Xusr/lib/$(DEB_HOST_MULTIARCH)/libmir$(CLIENT_DRIVER).so |
620 | sh debian/install_ld_so_conf.sh $(DEB_HOST_ARCH) $(DEB_HOST_MULTIARCH) |
621 | |
622 | override_dh_installdeb: |
623 | |
624 | === added file 'doc/dso_versioning_guide.md' |
625 | --- doc/dso_versioning_guide.md 1970-01-01 00:00:00 +0000 |
626 | +++ doc/dso_versioning_guide.md 2014-09-23 17:34:29 +0000 |
627 | @@ -0,0 +1,195 @@ |
628 | +A brief guide for versioning symbols in the Mir DSOs |
629 | +==================================================== |
630 | + |
631 | +So, what do I have to do? |
632 | +------------------------- |
633 | + |
634 | +There are more detailed descriptions below, but as a general rule: |
635 | + |
636 | + - If you add a new symbol, add it to a _new_ dotted-decimal version stanza, |
637 | + like `MIR_CLIENT_8.1`, `MIR_CLIENT_8.2`, etc. |
638 | + - If you change the behaviour or signature of a symbol and not change SONAME, |
639 | + see "Change symbols without breaking ABI" below |
640 | + - If you change SONAME, collect all previous symbol version stanzas into a |
641 | + single labelled with the new SOVER. For example, remove the `MIR_CLIENT_8`, |
642 | + `MIR_CLIENT_8.1`, and `MIR_CLIENT_8.2` stanzas and consolidate their |
643 | + contents into a single new `MIR_CLIENT_9` stanza. |
644 | + |
645 | +Can I have some details? |
646 | +------------------------ |
647 | + |
648 | +Sure. |
649 | + |
650 | +Mir is a set of libraries, one C++ library for writing display- |
651 | +server/compositor/shells and one C library for writing clients (or, more |
652 | +usually, toolkits for clients) that use a Mir display-server for output. Mir |
653 | +also has internal dynamic libraries for platform support - drivers - and may in |
654 | +future allow the same with extensions to the core functionality. As such, the |
655 | +ABI of these interfaces is important to keep in mind. |
656 | + |
657 | +Mir uses the ELF symbol versioning support. This provides three advantages: |
658 | + |
659 | + - Consumers of the Mir libraries can know at load time rather than symbol |
660 | + resolution time whether the library exposes all the symbols they expect. |
661 | + - We can drop or change the behaviour of symbols without breaking ABI by |
662 | + exposing multiple different implementations under different versions, and |
663 | + - We can (modulo protobuf singletons in our current implementation, and with |
664 | + some care) safely load multiple different versions of Mir libraries into the |
665 | + same process. |
666 | + |
667 | +When should I bump SONAME? |
668 | +-------------------------- |
669 | + |
670 | +There are varying standards for when to bump SONAME. In Mir we choose to bump |
671 | +the SONAME of a library whenever we make a change that could cause a binary |
672 | +linked to the library to fail _as long as_ the binary is using only public |
673 | +interfaces and (where applicable) relying on documented behaviour. In general, |
674 | +changes that make an interface work as described by its documentation will not |
675 | +result in SONAME bumps. |
676 | + |
677 | +With that explanation, you _should_ bump SONAME when: |
678 | + |
679 | + - You remove a public symbol from a library |
680 | + - You change the signature of a public symbol _without_ retaining the previous |
681 | + signature exposed under the old versioning. |
682 | + - You change the behaviour of a public symbol _without_ retaining the previous |
683 | + behaviour exposed with the old versioning. |
684 | + |
685 | +If you are changing the behaviour of an interface, think about whether it's easy |
686 | +to maintain the old interface in parallel. If it is, you should consider |
687 | +providing both under different versions. This should become easier over time as |
688 | +the Mir ABI becomes more stable and also more valuable over time as the Mir |
689 | +libraries become more widely used. |
690 | + |
691 | +Load-time version detection |
692 | +--------------------------- |
693 | + |
694 | +When using versioned symbols the linker adds an extra, special symbol containing |
695 | +the version(s) exported from the library. Consumers of the library resolve this |
696 | +on library load. For example: |
697 | + |
698 | + $ objdump -C -T lib/libmirclient.so |
699 | + … |
700 | + 00000000002a2080 w DO .data.rel.ro 0000000000000080 MIR_CLIENT_8 vtable for mir::client::DefaultConnectionConfiguration |
701 | + 0000000000000000 g DO *ABS* 0000000000000000 MIR_CLIENT_8 MIR_CLIENT_8 |
702 | + 0000000000030ed2 g DF .text 0000000000000098 MIR_CLIENT_8 mir::client::DefaultConnectionConfiguration::the_rpc_report() |
703 | + … |
704 | + |
705 | +This shows the special `MIR_CLIENT_8` symbol of the current libmirclient, along |
706 | +with a versioned symbol in the read-only data segment (the vtable for |
707 | +`mir::client::DefaultConnectionConfiguration`) and a versioned symbol in the |
708 | +text segment (the implementation of |
709 | +`mir::client::DefaultConnectionConfiguration::the_rpc_report()`). If a client |
710 | +needed a symbol versioned with `MIR_CLIENT_9`, it would try to resolve this at |
711 | +load time and fail, rather than failing when the symbol was first referenced - |
712 | +possibly much later, and more confusingly. |
713 | + |
714 | +### So what do I have to do to make this work? |
715 | + |
716 | +When you add new symbols, add them to a new `version` block in the relevant |
717 | +`symbols.map` file, like so: |
718 | + |
719 | + MIR_CLIENT_8 { |
720 | + global: |
721 | + mir_connect_sync; |
722 | + ... |
723 | + /* Other symbols go here */ |
724 | + }; |
725 | + |
726 | + MIR_CLIENT_8.1 { |
727 | + global: |
728 | + mir_connect_new_symbol; |
729 | + local: |
730 | + *; |
731 | + } MIR_CLIENT_8; |
732 | + |
733 | +Note that the script is read top to bottom; wildcards are greedily bound when |
734 | +first encountered, so to avoid surprises you should only have a wildcard in the |
735 | +final stanza. |
736 | + |
737 | +Change symbols without breaking ABI |
738 | +----------------------------------- |
739 | + |
740 | +ELF DSOs can have multiple implementations for the same symbol with different |
741 | +versions. This means that you can change the signature or behaviour of a symbol |
742 | +without breaking dependants that use the old behaviour. While there can be as |
743 | +many different implementations with different versions as you want, there can |
744 | +only be one default implementation - this is what the linker will resolve to |
745 | +when building a dependant project. |
746 | + |
747 | +Binding different implementations to the versioned symbol is done with `__asm__` |
748 | +directives in the relevant source file(s). The default implementation is |
749 | +specified with `symbol_name@@VERSION`; other versions are specified with |
750 | +`symbol_name@VERSION`. |
751 | + |
752 | +Note that this does _not_ require a change in SONAME. Binaries that have been |
753 | +linked against the old library will continue to work and resolve to the old |
754 | +implementation. Binaries linked against the new library will resolve to the new |
755 | +(default) implementation. |
756 | + |
757 | +### So, what do I have to do to make this work? |
758 | +For example, if you wanted to change the signature of |
759 | +`mir_connection_create_surface` to take a new parameter: |
760 | + |
761 | +`mir_connection_api.cpp`: |
762 | + |
763 | + __asm__(".symver old_mir_connection_create_surface,mir_connection_create_surface@MIR_CLIENT_8"); |
764 | + |
765 | + MirWaitHandle* old_mir_connection_create_surface(...) |
766 | + /* The old implementation */ |
767 | + |
768 | + /* The @@ specifies that this is the default version */ |
769 | + __asm__(".symver mir_connection_create_surface,mir_connection_create_surface@@@MIR_CLIENT_8.1"); |
770 | + MirWaitHandle* mir_connection_create_surface(...) |
771 | + /* The new implementation */ |
772 | + |
773 | +`symbols.map`: |
774 | + |
775 | + MIR_CLIENT_8 { |
776 | + global: |
777 | + ... |
778 | + mir_connection_create_surface; |
779 | + ... |
780 | + }; |
781 | + |
782 | + MIR_CLIENT_8.1 { |
783 | + global: |
784 | + ... |
785 | + mir_connection_create_surface; |
786 | + ... |
787 | + local: |
788 | + *; |
789 | + } MIR_CLIENT_8; |
790 | + |
791 | +Safely load multiple versions of a library into the same address space |
792 | +---------------------------------------------------------------------- |
793 | + |
794 | +This benefit is currently theoretical, as there seems to be a Protobuf singleton |
795 | +that aborts if we try this. But should that be resolved, it's theoretically |
796 | +possible and of some benefit... |
797 | + |
798 | +This situation will come about - the Qtmir plugin links to libmirclient and also |
799 | +libEGL, and libEGL will link to libmirclient itself. There is no guarantee that |
800 | +Qtmir and libEGL will link to the same SONAME, and so a process can end up |
801 | +trying to load both `libmirclient.so.8` and `libmirclient.so.9` into its address |
802 | +space. Without symbol versioning this is potentially broken - there's no |
803 | +mechanism for libEGL to only resolve symbols from `libmirclient.so.8` and Qtmir |
804 | +to only resolve symbols from `libmirclient.so.9`, so in cases where symbols have |
805 | +changed use of those symbols will break. |
806 | + |
807 | +By versioning the symbols we ensure that code always gets exactly the symbol |
808 | +implementation it expects, even when multiple library versions are loaded. |
809 | + |
810 | +### So, what do I have to do to make this work? |
811 | + |
812 | +Ensure that different implementations of a symbol have different versions. |
813 | + |
814 | +Additionally there's the complication of passing objects between different |
815 | +versions. For the moment, we can not bother trying to make this work. |
816 | + |
817 | + |
818 | +See also: |
819 | +--------- |
820 | +[Binutils manual](https://sourceware.org/binutils/docs/ld/VERSION.html) |
821 | + |
822 | +[Former glibc maintainer's DSO guide](http://www.akkadia.org/drepper/dsohowto.pdf) |
823 | |
824 | === modified file 'examples/CMakeLists.txt' |
825 | --- examples/CMakeLists.txt 2014-08-08 17:04:36 +0000 |
826 | +++ examples/CMakeLists.txt 2014-09-23 17:34:29 +0000 |
827 | @@ -1,12 +1,14 @@ |
828 | |
829 | -#its a bit troubling that these need to be included for demo_input_filter |
830 | -include_directories(${MIR_3RD_PARTY_INCLUDE_DIRECTORIES}) |
831 | -include_directories(${MIR_ANDROID_INCLUDE_DIRECTORIES}) |
832 | set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c99 -Wall -fno-strict-aliasing -Wextra") |
833 | |
834 | add_library(eglapp STATIC |
835 | eglapp.c |
836 | ) |
837 | + |
838 | +add_library(exampleserverconfig STATIC |
839 | + server_configuration.cpp |
840 | +) |
841 | + |
842 | target_link_libraries(eglapp |
843 | mirclient |
844 | ${EGL_LIBRARIES} |
845 | @@ -121,6 +123,7 @@ |
846 | ${Boost_LIBRARIES} |
847 | ) |
848 | |
849 | +<<<<<<< TREE |
850 | add_executable(mir_demo_standalone_render_overlays |
851 | render_overlays.cpp |
852 | ) |
853 | @@ -143,13 +146,15 @@ |
854 | ${Boost_LIBRARIES} |
855 | ) |
856 | |
857 | +======= |
858 | +>>>>>>> MERGE-SOURCE |
859 | add_executable(mir_demo_standalone_input_filter |
860 | demo_input_filter.cpp |
861 | - server_configuration.cpp |
862 | ) |
863 | |
864 | target_link_libraries(mir_demo_standalone_input_filter |
865 | mirserver |
866 | + exampleserverconfig |
867 | ) |
868 | |
869 | set (INSTALL_DEMOS |
870 | @@ -159,6 +164,7 @@ |
871 | mir_demo_client_eglflash |
872 | mir_demo_client_egltriangle |
873 | mir_demo_client_eglplasma |
874 | + mir_demo_client_eglcounter |
875 | mir_demo_client_fingerpaint |
876 | mir_demo_client_multiwin |
877 | mir_demo_client_display_config |
878 | @@ -166,23 +172,18 @@ |
879 | mir_demo_client_prompt_session |
880 | mir_demo_standalone_input_filter |
881 | mir_demo_standalone_render_to_fb |
882 | - mir_demo_standalone_render_surfaces |
883 | ) |
884 | |
885 | -add_subdirectory(demo-inprocess-surface-client) |
886 | -add_subdirectory(demo-shell) |
887 | -add_subdirectory(testdraw) |
888 | - |
889 | install(TARGETS ${INSTALL_DEMOS} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) |
890 | |
891 | add_executable(mir_demo_server_basic |
892 | basic_server.cpp |
893 | basic_server_configuration.cpp |
894 | - server_configuration.cpp |
895 | ) |
896 | |
897 | target_link_libraries(mir_demo_server_basic |
898 | mirserver |
899 | + exampleserverconfig |
900 | ${Boost_LIBRARIES} |
901 | ) |
902 | |
903 | @@ -201,11 +202,11 @@ |
904 | translucent_server_configuration.cpp |
905 | pixel_format_selector.cpp |
906 | basic_server_configuration.cpp |
907 | - server_configuration.cpp |
908 | ) |
909 | |
910 | target_link_libraries(mir_demo_server_translucent |
911 | mirserver |
912 | + exampleserverconfig |
913 | ${Boost_LIBRARIES} |
914 | ) |
915 | |
916 | |
917 | === modified file 'examples/basic_server_configuration.cpp' |
918 | --- examples/basic_server_configuration.cpp 2014-03-06 06:05:17 +0000 |
919 | +++ examples/basic_server_configuration.cpp 2014-09-23 17:34:29 +0000 |
920 | @@ -20,7 +20,6 @@ |
921 | #include "mir/options/default_configuration.h" |
922 | |
923 | #include "mir/abnormal_exit.h" |
924 | -#include "mir/frontend/connector.h" |
925 | #include "mir/options/option.h" |
926 | |
927 | #include <cstdlib> |
928 | @@ -54,9 +53,6 @@ |
929 | { |
930 | if (the_options()->is_set(launch_child_opt)) |
931 | { |
932 | - char buffer[128] = {0}; |
933 | - sprintf(buffer, "fd://%d", the_connector()->client_socket_fd()); |
934 | - setenv("MIR_SOCKET", buffer, 1); |
935 | auto ignore = std::system((the_options()->get<std::string>(launch_child_opt) + "&").c_str()); |
936 | (void)ignore; |
937 | } |
938 | |
939 | === modified file 'examples/demo_input_filter.cpp' |
940 | --- examples/demo_input_filter.cpp 2014-03-06 06:05:17 +0000 |
941 | +++ examples/demo_input_filter.cpp 2014-09-23 17:34:29 +0000 |
942 | @@ -84,7 +84,6 @@ |
943 | } |
944 | |
945 | |
946 | -#include <std/MirLog.h> |
947 | void my_write_to_log(int /*prio*/, char const* buffer) |
948 | { |
949 | printf("%s\n", buffer); |
950 | @@ -94,7 +93,6 @@ |
951 | try |
952 | { |
953 | DemoServerConfiguration config(argc, argv); |
954 | - mir::write_to_log = my_write_to_log; |
955 | |
956 | mir::run_mir(config, [](mir::DisplayServer&) {/* empty init */}); |
957 | return 0; |
958 | |
959 | === modified file 'examples/eglapp.c' |
960 | --- examples/eglapp.c 2014-07-08 16:27:24 +0000 |
961 | +++ examples/eglapp.c 2014-09-23 17:34:29 +0000 |
962 | @@ -70,12 +70,6 @@ |
963 | |
964 | void mir_eglapp_swap_buffers(void) |
965 | { |
966 | - static time_t lasttime = 0; |
967 | - static int lastcount = 0; |
968 | - static int count = 0; |
969 | - time_t now = time(NULL); |
970 | - time_t dtime; |
971 | - int dcount; |
972 | EGLint width, height; |
973 | |
974 | if (!running) |
975 | @@ -83,16 +77,6 @@ |
976 | |
977 | eglSwapBuffers(egldisplay, eglsurface); |
978 | |
979 | - count++; |
980 | - dcount = count - lastcount; |
981 | - dtime = now - lasttime; |
982 | - if (dtime) |
983 | - { |
984 | - printf("%d FPS\n", dcount); |
985 | - lasttime = now; |
986 | - lastcount = count; |
987 | - } |
988 | - |
989 | /* |
990 | * Querying the surface (actually the current buffer) dimensions here is |
991 | * the only truly safe way to be sure that the dimensions we think we |
992 | @@ -404,6 +388,7 @@ |
993 | |
994 | signal(SIGINT, shutdown); |
995 | signal(SIGTERM, shutdown); |
996 | + signal(SIGHUP, shutdown); |
997 | |
998 | *width = surfaceparm.width; |
999 | *height = surfaceparm.height; |
1000 | |
1001 | === modified file 'examples/fingerpaint.c' |
1002 | --- examples/fingerpaint.c 2014-07-21 03:35:31 +0000 |
1003 | +++ examples/fingerpaint.c 2014-09-23 17:34:29 +0000 |
1004 | @@ -403,6 +403,7 @@ |
1005 | { |
1006 | signal(SIGINT, shutdown); |
1007 | signal(SIGTERM, shutdown); |
1008 | + signal(SIGHUP, shutdown); |
1009 | |
1010 | clear_region(&canvas, &background); |
1011 | redraw(surf, &canvas); |
1012 | |
1013 | === modified file 'examples/flicker.c' |
1014 | --- examples/flicker.c 2014-03-06 06:05:17 +0000 |
1015 | +++ examples/flicker.c 2014-09-23 17:34:29 +0000 |
1016 | @@ -156,10 +156,6 @@ |
1017 | uint32_t pattern[2] = {0}; |
1018 | fill_pattern(pattern, pixel_format); |
1019 | |
1020 | - time_t lasttime = 0; |
1021 | - int lastcount = 0; |
1022 | - int count = 0; |
1023 | - |
1024 | MirGraphicsRegion graphics_region; |
1025 | int i=0; |
1026 | while (1) |
1027 | @@ -168,15 +164,6 @@ |
1028 | i++; |
1029 | render_pattern(&graphics_region, pattern[i & 1]); |
1030 | mir_surface_swap_buffers_sync(surface); |
1031 | - |
1032 | - count++; |
1033 | - time_t now = time(NULL); |
1034 | - if (now != lasttime) |
1035 | - { |
1036 | - printf("%d FPS\n", count - lastcount); |
1037 | - lasttime = now; |
1038 | - lastcount = count; |
1039 | - } |
1040 | } |
1041 | |
1042 | mir_surface_release_sync(surface); |
1043 | |
1044 | === modified file 'examples/multiwin.c' |
1045 | --- examples/multiwin.c 2014-07-11 03:33:03 +0000 |
1046 | +++ examples/multiwin.c 2014-09-23 17:34:29 +0000 |
1047 | @@ -218,6 +218,7 @@ |
1048 | |
1049 | signal(SIGINT, shutdown); |
1050 | signal(SIGTERM, shutdown); |
1051 | + signal(SIGHUP, shutdown); |
1052 | |
1053 | while (running) |
1054 | { |
1055 | |
1056 | === modified file 'examples/pixel_format_selector.cpp' |
1057 | --- examples/pixel_format_selector.cpp 2014-03-26 05:48:59 +0000 |
1058 | +++ examples/pixel_format_selector.cpp 2014-09-23 17:34:29 +0000 |
1059 | @@ -19,11 +19,18 @@ |
1060 | #include "pixel_format_selector.h" |
1061 | |
1062 | #include "mir/graphics/display_configuration.h" |
1063 | -#include "mir/graphics/pixel_format_utils.h" |
1064 | |
1065 | #include <stdexcept> |
1066 | #include <algorithm> |
1067 | |
1068 | +namespace |
1069 | +{ |
1070 | +bool contains_alpha(MirPixelFormat format) |
1071 | +{ |
1072 | + return (format == mir_pixel_format_abgr_8888 || |
1073 | + format == mir_pixel_format_argb_8888); |
1074 | +} |
1075 | +} |
1076 | |
1077 | namespace mir |
1078 | { |
1079 | @@ -48,7 +55,7 @@ |
1080 | conf_output.pixel_formats.end(), |
1081 | [&](MirPixelFormat format) -> bool |
1082 | { |
1083 | - return graphics::contains_alpha(format) == with_alpha; |
1084 | + return contains_alpha(format) == with_alpha; |
1085 | } |
1086 | ); |
1087 | |
1088 | |
1089 | === modified file 'examples/progressbar.c' |
1090 | --- examples/progressbar.c 2014-03-06 06:05:17 +0000 |
1091 | +++ examples/progressbar.c 2014-09-23 17:34:29 +0000 |
1092 | @@ -268,6 +268,7 @@ |
1093 | |
1094 | signal(SIGINT, shutdown); |
1095 | signal(SIGTERM, shutdown); |
1096 | + signal(SIGHUP, shutdown); |
1097 | |
1098 | while (running) |
1099 | { |
1100 | |
1101 | === renamed directory 'include/shared' => 'include/common' |
1102 | === modified file 'include/common/mir/geometry/rectangle.h' |
1103 | --- include/shared/mir/geometry/rectangle.h 2014-07-21 03:35:31 +0000 |
1104 | +++ include/common/mir/geometry/rectangle.h 2014-09-23 17:34:29 +0000 |
1105 | @@ -20,7 +20,7 @@ |
1106 | #ifndef MIR_GEOMETRY_RECTANGLE_H_ |
1107 | #define MIR_GEOMETRY_RECTANGLE_H_ |
1108 | |
1109 | -#include "point.h" |
1110 | +#include "mir/geometry/point.h" |
1111 | #include "size.h" |
1112 | |
1113 | #include <iosfwd> |
1114 | |
1115 | === modified file 'include/common/mir/geometry/rectangles.h' |
1116 | --- include/shared/mir/geometry/rectangles.h 2013-08-28 03:41:48 +0000 |
1117 | +++ include/common/mir/geometry/rectangles.h 2014-09-23 17:34:29 +0000 |
1118 | @@ -14,13 +14,16 @@ |
1119 | * along with this program. If not, see <http://www.gnu.org/licenses/>. |
1120 | * |
1121 | * Authored by: Alexandros Frantzis <alexandros.frantzis@canonical.com> |
1122 | + * |
1123 | + * XXX This header is only used externally in one location in QtMir. It could |
1124 | + * possibly be made private with only minor changes. |
1125 | */ |
1126 | |
1127 | #ifndef MIR_GEOMETRY_RECTANGLES_H_ |
1128 | #define MIR_GEOMETRY_RECTANGLES_H_ |
1129 | |
1130 | -#include "point.h" |
1131 | -#include "rectangle.h" |
1132 | +#include "mir/geometry/point.h" |
1133 | +#include "mir/geometry/rectangle.h" |
1134 | |
1135 | #include <vector> |
1136 | #include <initializer_list> |
1137 | |
1138 | === modified file 'include/common/mir/geometry/size.h' |
1139 | --- include/shared/mir/geometry/size.h 2014-03-06 06:05:17 +0000 |
1140 | +++ include/common/mir/geometry/size.h 2014-09-23 17:34:29 +0000 |
1141 | @@ -19,7 +19,7 @@ |
1142 | #ifndef MIR_GEOMETRY_SIZE_H_ |
1143 | #define MIR_GEOMETRY_SIZE_H_ |
1144 | |
1145 | -#include "dimensions.h" |
1146 | +#include "mir/geometry/dimensions.h" |
1147 | #include <iosfwd> |
1148 | |
1149 | namespace mir |
1150 | |
1151 | === added directory 'include/common/mir/time' |
1152 | === renamed file 'include/server/mir/time/clock.h' => 'include/common/mir/time/clock.h' |
1153 | --- include/server/mir/time/clock.h 2014-03-06 06:05:17 +0000 |
1154 | +++ include/common/mir/time/clock.h 2014-09-23 17:34:29 +0000 |
1155 | @@ -2,15 +2,15 @@ |
1156 | * Copyright © 2012 Canonical Ltd. |
1157 | * |
1158 | * This program is free software: you can redistribute it and/or modify it |
1159 | - * under the terms of the GNU General Public License version 3, |
1160 | + * under the terms of the GNU Lesser General Public License version 3, |
1161 | * as published by the Free Software Foundation. |
1162 | * |
1163 | * This program is distributed in the hope that it will be useful, |
1164 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
1165 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
1166 | - * GNU General Public License for more details. |
1167 | + * GNU Lesser General Public License for more details. |
1168 | * |
1169 | - * You should have received a copy of the GNU General Public License |
1170 | + * You should have received a copy of the GNU Lesser General Public License |
1171 | * along with this program. If not, see <http://www.gnu.org/licenses/>. |
1172 | * |
1173 | * Authored by: Thomas Voss <thomas.voss@canonical.com> |
1174 | @@ -27,6 +27,7 @@ |
1175 | { |
1176 | |
1177 | typedef std::chrono::high_resolution_clock::time_point Timestamp; |
1178 | +typedef std::chrono::high_resolution_clock::duration Duration; |
1179 | |
1180 | class Clock |
1181 | { |
1182 | |
1183 | === modified file 'include/platform/mir/graphics/display_configuration.h' |
1184 | --- include/platform/mir/graphics/display_configuration.h 2014-06-02 17:07:02 +0000 |
1185 | +++ include/platform/mir/graphics/display_configuration.h 2014-09-23 17:34:29 +0000 |
1186 | @@ -23,7 +23,6 @@ |
1187 | #include "mir/geometry/size.h" |
1188 | #include "mir/geometry/rectangle.h" |
1189 | #include "mir/geometry/point.h" |
1190 | -#include "mir/graphics/pixel_format_utils.h" |
1191 | #include "mir_toolkit/common.h" |
1192 | |
1193 | #include <functional> |
1194 | |
1195 | === modified file 'include/platform/mir/graphics/platform.h' |
1196 | --- include/platform/mir/graphics/platform.h 2014-06-19 15:44:20 +0000 |
1197 | +++ include/platform/mir/graphics/platform.h 2014-09-23 17:34:29 +0000 |
1198 | @@ -53,6 +53,7 @@ |
1199 | class GraphicBufferAllocator; |
1200 | class GLConfig; |
1201 | class GLProgramFactory; |
1202 | +class BufferWriter; |
1203 | |
1204 | enum class BufferIpcMsgType |
1205 | { |
1206 | @@ -86,6 +87,8 @@ |
1207 | |
1208 | virtual std::shared_ptr<GraphicBufferAllocator> create_buffer_allocator( |
1209 | std::shared_ptr<BufferInitializer> const& buffer_initializer) = 0; |
1210 | + |
1211 | + virtual std::shared_ptr<BufferWriter> make_buffer_writer() = 0; |
1212 | |
1213 | /** |
1214 | * Creates the display subsystem. |
1215 | |
1216 | === modified file 'include/platform/mir/options/configuration.h' |
1217 | --- include/platform/mir/options/configuration.h 2014-08-08 17:06:49 +0000 |
1218 | +++ include/platform/mir/options/configuration.h 2014-09-23 17:34:29 +0000 |
1219 | @@ -19,7 +19,7 @@ |
1220 | #ifndef MIR_OPTIONS_CONFIGURATION_H_ |
1221 | #define MIR_OPTIONS_CONFIGURATION_H_ |
1222 | |
1223 | -#include "mir/options/program_option.h" |
1224 | +#include "mir/options/option.h" |
1225 | |
1226 | #include <memory> |
1227 | |
1228 | @@ -41,7 +41,12 @@ |
1229 | extern char const* const input_report_opt; |
1230 | extern char const* const host_socket_opt; |
1231 | extern char const* const frontend_threads_opt; |
1232 | -extern char const* const fatal_abort_opt; |
1233 | +<<<<<<< TREE |
1234 | +extern char const* const fatal_abort_opt; |
1235 | +======= |
1236 | +extern char const* const touchspots_opt; |
1237 | +extern char const* const fatal_abort_opt; |
1238 | +>>>>>>> MERGE-SOURCE |
1239 | |
1240 | extern char const* const name_opt; |
1241 | extern char const* const offscreen_opt; |
1242 | |
1243 | === modified file 'include/platform/mir/options/default_configuration.h' |
1244 | --- include/platform/mir/options/default_configuration.h 2014-08-08 17:03:03 +0000 |
1245 | +++ include/platform/mir/options/default_configuration.h 2014-09-23 17:34:29 +0000 |
1246 | @@ -20,7 +20,8 @@ |
1247 | #define MIR_OPTIONS_DEFAULT_CONFIGURATION_H_ |
1248 | |
1249 | #include "mir/options/configuration.h" |
1250 | - |
1251 | +#include "mir/options/program_option.h" |
1252 | +#include <boost/program_options/options_description.hpp> |
1253 | |
1254 | namespace mir |
1255 | { |
1256 | |
1257 | === modified file 'include/platform/mir/options/program_option.h' |
1258 | --- include/platform/mir/options/program_option.h 2014-08-08 17:03:03 +0000 |
1259 | +++ include/platform/mir/options/program_option.h 2014-09-23 17:34:29 +0000 |
1260 | @@ -20,7 +20,7 @@ |
1261 | #ifndef MIR_OPTIONS_PROGRAM_OPTION_H_ |
1262 | #define MIR_OPTIONS_PROGRAM_OPTION_H_ |
1263 | |
1264 | -#include "option.h" |
1265 | +#include "mir/options/option.h" |
1266 | |
1267 | #include <boost/program_options/variables_map.hpp> |
1268 | #include <boost/program_options/options_description.hpp> |
1269 | |
1270 | === removed directory 'include/platform/mir/udev' |
1271 | === modified file 'include/server/mir/default_server_configuration.h' |
1272 | --- include/server/mir/default_server_configuration.h 2014-08-08 17:06:49 +0000 |
1273 | +++ include/server/mir/default_server_configuration.h 2014-09-23 17:34:29 +0000 |
1274 | @@ -105,6 +105,7 @@ |
1275 | class BufferInitializer; |
1276 | class DisplayReport; |
1277 | class GraphicBufferAllocator; |
1278 | +class BufferWriter; |
1279 | class Cursor; |
1280 | class CursorImage; |
1281 | class GLConfig; |
1282 | @@ -114,7 +115,7 @@ |
1283 | namespace input |
1284 | { |
1285 | class InputReport; |
1286 | -class InputTargets; |
1287 | +class Scene; |
1288 | class InputManager; |
1289 | class CompositeEventFilter; |
1290 | class InputChannelFactory; |
1291 | @@ -214,6 +215,7 @@ |
1292 | * dependencies of compositor on the rest of the Mir |
1293 | * @{ */ |
1294 | virtual std::shared_ptr<graphics::GraphicBufferAllocator> the_buffer_allocator(); |
1295 | + virtual std::shared_ptr<graphics::BufferWriter> the_buffer_writer(); |
1296 | virtual std::shared_ptr<compositor::Scene> the_scene(); |
1297 | virtual std::shared_ptr<compositor::FrameDroppingPolicyFactory> the_frame_dropping_policy_factory(); |
1298 | /** @} */ |
1299 | @@ -291,7 +293,7 @@ |
1300 | virtual std::shared_ptr<input::InputReport> the_input_report(); |
1301 | virtual std::shared_ptr<input::CompositeEventFilter> the_composite_event_filter(); |
1302 | virtual std::shared_ptr<shell::InputTargeter> the_input_targeter(); |
1303 | - virtual std::shared_ptr<input::InputTargets> the_input_targets(); |
1304 | + virtual std::shared_ptr<input::Scene> the_input_scene(); |
1305 | virtual std::shared_ptr<input::CursorListener> the_cursor_listener(); |
1306 | virtual std::shared_ptr<input::TouchVisualizer> the_touch_visualizer(); |
1307 | virtual std::shared_ptr<input::InputRegion> the_input_region(); |
1308 | @@ -359,6 +361,7 @@ |
1309 | CachedPtr<graphics::NativePlatform> graphics_native_platform; |
1310 | CachedPtr<graphics::BufferInitializer> buffer_initializer; |
1311 | CachedPtr<graphics::GraphicBufferAllocator> buffer_allocator; |
1312 | + CachedPtr<graphics::BufferWriter> buffer_writer; |
1313 | CachedPtr<graphics::Display> display; |
1314 | CachedPtr<graphics::Cursor> cursor; |
1315 | CachedPtr<graphics::CursorImage> default_cursor_image; |
1316 | |
1317 | === removed directory 'include/server/mir/graphics' |
1318 | === removed directory 'include/server/mir/input/android' |
1319 | === modified file 'include/server/mir/input/cursor_listener.h' |
1320 | --- include/server/mir/input/cursor_listener.h 2013-04-30 20:44:31 +0000 |
1321 | +++ include/server/mir/input/cursor_listener.h 2014-09-23 17:34:29 +0000 |
1322 | @@ -35,8 +35,8 @@ |
1323 | |
1324 | protected: |
1325 | CursorListener() = default; |
1326 | - CursorListener(const CursorListener&) = delete; |
1327 | - CursorListener& operator=(const CursorListener&) = delete; |
1328 | + CursorListener(CursorListener const&) = delete; |
1329 | + CursorListener& operator=(CursorListener const&) = delete; |
1330 | }; |
1331 | |
1332 | } |
1333 | |
1334 | === modified file 'include/server/mir/input/touch_visualizer.h' |
1335 | --- include/server/mir/input/touch_visualizer.h 2014-08-08 17:01:17 +0000 |
1336 | +++ include/server/mir/input/touch_visualizer.h 2014-09-23 17:34:29 +0000 |
1337 | @@ -1,3 +1,4 @@ |
1338 | +<<<<<<< TREE |
1339 | /* |
1340 | * Copyright © 2014 Canonical Ltd. |
1341 | * |
1342 | @@ -56,3 +57,67 @@ |
1343 | } |
1344 | |
1345 | #endif // MIR_INPUT_TOUCH_VISUALIZER_H_ |
1346 | +======= |
1347 | +/* |
1348 | + * Copyright © 2014 Canonical Ltd. |
1349 | + * |
1350 | + * This program is free software: you can redistribute it and/or modify it |
1351 | + * under the terms of the GNU General Public License version 3, |
1352 | + * as published by the Free Software Foundation. |
1353 | + * |
1354 | + * This program is distributed in the hope that it will be useful, |
1355 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of |
1356 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
1357 | + * GNU General Public License for more details. |
1358 | + * |
1359 | + * You should have received a copy of the GNU General Public License |
1360 | + * along with this program. If not, see <http://www.gnu.org/licenses/>. |
1361 | + * |
1362 | + * Authored by: Robert Carr <robert.carr@canonical.com> |
1363 | + */ |
1364 | + |
1365 | +#ifndef MIR_INPUT_TOUCH_VISUALIZER_H_ |
1366 | +#define MIR_INPUT_TOUCH_VISUALIZER_H_ |
1367 | + |
1368 | +#include "mir/geometry/point.h" |
1369 | + |
1370 | +#include <vector> |
1371 | + |
1372 | +namespace mir |
1373 | +{ |
1374 | +namespace input |
1375 | +{ |
1376 | + |
1377 | +/// An interface for listening to a low level stream of touches, in order to provide |
1378 | +// a "spot" style visualization. |
1379 | +class TouchVisualizer |
1380 | +{ |
1381 | +public: |
1382 | + virtual ~TouchVisualizer() = default; |
1383 | + |
1384 | + struct Spot |
1385 | + { |
1386 | + geometry::Point touch_location; |
1387 | + |
1388 | + // If pressure is zero, the touch-point can be interpreted as a hover. |
1389 | + float pressure; |
1390 | + }; |
1391 | + |
1392 | + // Toggle visualization of touches |
1393 | + virtual void enable() = 0; |
1394 | + virtual void disable() = 0; |
1395 | + |
1396 | + // Visualize a given set of touches statelessly. |
1397 | + virtual void visualize_touches(std::vector<Spot> const& touches) = 0; |
1398 | + |
1399 | +protected: |
1400 | + TouchVisualizer() = default; |
1401 | + TouchVisualizer(const TouchVisualizer&) = delete; |
1402 | + TouchVisualizer& operator=(const TouchVisualizer&) = delete; |
1403 | +}; |
1404 | + |
1405 | +} |
1406 | +} |
1407 | + |
1408 | +#endif // MIR_INPUT_TOUCH_VISUALIZER_H_ |
1409 | +>>>>>>> MERGE-SOURCE |
1410 | |
1411 | === removed directory 'include/server/mir/logging' |
1412 | === removed directory 'include/server/mir/report' |
1413 | === removed directory 'include/server/mir/report/logging' |
1414 | === removed directory 'include/shared/mir/frontend' |
1415 | === removed directory 'include/shared/mir/graphics/android' |
1416 | === removed directory 'include/shared/mir/input/android' |
1417 | === removed directory 'include/shared/mir/logging' |
1418 | === removed directory 'include/shared/mir/protobuf' |
1419 | === removed directory 'include/shared/mir/raii' |
1420 | === removed directory 'include/shared/mir/report' |
1421 | === removed directory 'include/shared/mir/report/lttng' |
1422 | === removed directory 'include/shared/mir/udev' |
1423 | === removed file 'include/test/mir_test_framework/input_testing_client_configuration.h' |
1424 | --- include/test/mir_test_framework/input_testing_client_configuration.h 2014-05-27 10:35:07 +0000 |
1425 | +++ include/test/mir_test_framework/input_testing_client_configuration.h 1970-01-01 00:00:00 +0000 |
1426 | @@ -1,69 +0,0 @@ |
1427 | -/* |
1428 | - * Copyright © 2013 Canonical Ltd. |
1429 | - * |
1430 | - * This program is free software: you can redistribute it and/or modify it |
1431 | - * under the terms of the GNU General Public License version 3, |
1432 | - * as published by the Free Software Foundation. |
1433 | - * |
1434 | - * This program is distributed in the hope that it will be useful, |
1435 | - * but WITHOUT ANY WARRANTY; without even the implied warranty of |
1436 | - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
1437 | - * GNU General Public License for more details. |
1438 | - * |
1439 | - * You should have received a copy of the GNU General Public License |
1440 | - * along with this program. If not, see <http://www.gnu.org/licenses/>. |
1441 | - * |
1442 | - * Authored by: Robert Carr <robert.carr@canonical.com>n |
1443 | - */ |
1444 | - |
1445 | -#ifndef MIR_TEST_FRAMEWORK_INPUT_TESTING_CLIENT_CONFIGURATION |
1446 | -#define MIR_TEST_FRAMEWORK_INPUT_TESTING_CLIENT_CONFIGURATION |
1447 | - |
1448 | -#include "mir_test_framework/testing_client_configuration.h" |
1449 | -#include "mir_test/barrier.h" |
1450 | - |
1451 | -#include <mir_toolkit/event.h> |
1452 | - |
1453 | -#include <gmock/gmock.h> |
1454 | - |
1455 | -#include <string> |
1456 | - |
1457 | -namespace mir { namespace test { class WaitCondition; } } |
1458 | -namespace mir_test_framework |
1459 | -{ |
1460 | - |
1461 | -/// A fixture to be used with InputTestingServerConfiguration for input acceptance testing scenarios. |
1462 | -/// By default, the client will connect and a surface will be created. |
1463 | -/// The framework ensures the server will not send events before client is ready through CrossProcessSync. |
1464 | -class InputTestingClientConfiguration : public TestingClientConfiguration |
1465 | -{ |
1466 | -public: |
1467 | - InputTestingClientConfiguration(std::string const& client_name, mir::test::Barrier& input_cb_setup_fence); |
1468 | - virtual ~InputTestingClientConfiguration() = default; |
1469 | - |
1470 | - void exec(); |
1471 | - |
1472 | - struct MockInputHandler |
1473 | - { |
1474 | - MOCK_METHOD1(handle_input, void(MirEvent const*)); |
1475 | - }; |
1476 | - // This function will be called at an appropriate time for input expectations to be set. |
1477 | - // on handler. It is expected that mt::WakeUp(all_events_received) will be triggered by |
1478 | - // the last expectation, as this is what triggers the verification of the Mock and |
1479 | - // termination of the testing client. |
1480 | - virtual void expect_input(MockInputHandler &handler, mir::test::WaitCondition& all_events_received) = 0; |
1481 | - |
1482 | - // This fixture is intended to be used with InputTestingServer |
1483 | - // which allows for setting surface sizes as part of the |
1484 | - // input-testing shell. |
1485 | - static int const surface_width = 100; |
1486 | - static int const surface_height = 100; |
1487 | - |
1488 | - std::string connect_string; |
1489 | -private: |
1490 | - std::string const client_name; |
1491 | - mir::test::Barrier& input_cb_setup_fence; |
1492 | -}; |
1493 | - |
1494 | -} |
1495 | -#endif /* MIR_TEST_FRAMEWORK_INPUT_TESTING_CLIENT_CONFIGURATION */ |
1496 | |
1497 | === modified file 'platform-ABI-sha1sums' |
1498 | --- platform-ABI-sha1sums 2014-08-27 19:35:36 +0000 |
1499 | +++ platform-ABI-sha1sums 2014-09-23 17:34:29 +0000 |
1500 | @@ -1,3 +1,4 @@ |
1501 | +<<<<<<< TREE |
1502 | 871e609c0fed0d566ddbaaa8ac2d7cd5c06dd09a include/platform/mir/abnormal_exit.h |
1503 | 498d728ea1052cb6cadb9de7828ae48eb5a201df include/platform/mir/emergency_cleanup_registry.h |
1504 | 8f47feb6d983aa5c9ebd58e9d1524361c9f5e651 include/platform/mir/fatal.h |
1505 | @@ -87,3 +88,44 @@ |
1506 | 101017c17714a57db57d79b7b5e7df40a3568236 include/shared/mir_toolkit/mir_native_buffer.h |
1507 | 9f646fa12eaca5fc3b7a8fde6208673c071c8ef3 include/shared/mir/udev/wrapper.h |
1508 | 9fd77ab693cc4c9a200e44804f5493733528a674 include/shared/mir/variable_length_array.h |
1509 | +======= |
1510 | +3329ada91412ded2f127aee9a92f065e57b81cb2 include/common/mir/cached_ptr.h |
1511 | +82ff9499ef62739379616e02164dc98f9914c329 include/common/mir/fd.h |
1512 | +b399dc08514751c86e23824612a52378dd9b1e23 include/common/mir/geometry/dimensions.h |
1513 | +d954464ef2d20c2876db68c94512a443186da09b include/common/mir/geometry/point.h |
1514 | +dc7c62d3916eec025e8e7deaf57e06077ce38928 include/common/mir/geometry/rectangle.h |
1515 | +5161774957e3ca4f5fa4e7db025d0978d2bbef06 include/common/mir/geometry/rectangles.h |
1516 | +42646c2367b9821e3aa71feff6e31cf50526acaa include/common/mir/geometry/size.h |
1517 | +e1be9faee8b844ca2ce617f8fd82c9ee08d56bed include/common/mir/graphics/native_buffer.h |
1518 | +dcf8b8982f138bdde39a241825c610e955cd5e33 include/common/mir/input/input_platform.h |
1519 | +208cd6aed5ef5f8f39b3eb86604e4133cb840485 include/common/mir/input/input_receiver_thread.h |
1520 | +be7d58c9fde2ce91cc66dd6144b76e08b536266b include/common/mir/int_wrapper.h |
1521 | +48015c67ddc4998ed5a2e8bb04ff3a4bfdd6a613 include/common/mir/time/clock.h |
1522 | +9907751d046e4aea81881cf19e5df52c7a6a813e include/common/mir_toolkit/client_types.h |
1523 | +183d9e5e6cfe48b3d9145a28541dd4202ff6137b include/common/mir_toolkit/common.h |
1524 | +fce4c1a9e0d037244f7e9e96ea2d8eaab4fc404c include/common/mir_toolkit/cursors.h |
1525 | +bdaceadd56e41d2cb708f7c4da97acf84dfc75b7 include/common/mir_toolkit/event.h |
1526 | +99ef5f3bf548508fae24c60f74be1dea018a6e8c include/common/mir_toolkit/mesa/native_display.h |
1527 | +101017c17714a57db57d79b7b5e7df40a3568236 include/common/mir_toolkit/mir_native_buffer.h |
1528 | +871e609c0fed0d566ddbaaa8ac2d7cd5c06dd09a include/platform/mir/abnormal_exit.h |
1529 | +e9e97ba2db4c6aeb269630547bf5a558da17d896 include/platform/mir/graphics/basic_platform.h |
1530 | +54328767ca330ba166160a486bd0688406ab0222 include/platform/mir/graphics/buffer.h |
1531 | +5875f13f5b029a4b5291e9baec3ae434b72be27c include/platform/mir/graphics/buffer_id.h |
1532 | +748f5c2aab11189aa02c4a89ab900561548e7304 include/platform/mir/graphics/buffer_properties.h |
1533 | +986f5d0d8ea2c6a42cc320f468e682f81fec46ae include/platform/mir/graphics/display_buffer.h |
1534 | +f53a0020b8f1bd4a941a201eb26271cffee0a7dd include/platform/mir/graphics/display_configuration.h |
1535 | +6fe08da318c920b0d20ea8b8f560f5ac7ed389fe include/platform/mir/graphics/display_configuration_policy.h |
1536 | +41ea906d208b761e3d5d5056095de9de2d4ffa17 include/platform/mir/graphics/display.h |
1537 | +815405c5aee8000bc18c1c9480bac620a451b416 include/platform/mir/graphics/event_handler_register.h |
1538 | +5dc095474ef3e294c0aa4008e9ed997bdb21d34c include/platform/mir/graphics/gl_config.h |
1539 | +d0442a5d5d88a4be6e3e1f99e433c1c43a86bfce include/platform/mir/graphics/gl_context.h |
1540 | +979d2c1ac723ccef538d9a378228a02b0f173bd7 include/platform/mir/graphics/graphic_buffer_allocator.h |
1541 | +f90a35371e236a6cfec8e9a8474dbb3305c7621e include/platform/mir/graphics/internal_client.h |
1542 | +c9730cac4a3a101f9706ec6f444958abe047fd88 include/platform/mir/graphics/internal_surface.h |
1543 | +c775727ea15fd8affa5b4dc9cd226d782e436001 include/platform/mir/graphics/platform.h |
1544 | +15f201741a465de33e55ffc1ea775b507a5be950 include/platform/mir/graphics/renderable.h |
1545 | +f5746dab3336266cfd410ce4e4d01333df6e5b99 include/platform/mir/options/configuration.h |
1546 | +47007c783c174f8e94d332c4b13c6b01358b48fb include/platform/mir/options/default_configuration.h |
1547 | +b45f14082c4f8b29efaa1b13de795dcb29deb738 include/platform/mir/options/option.h |
1548 | +3c37cc31e8b290b89c311d82f02e07d342766451 include/platform/mir/options/program_option.h |
1549 | +>>>>>>> MERGE-SOURCE |
1550 | |
1551 | === added directory 'playground' |
1552 | === added file 'playground/CMakeLists.txt' |
1553 | --- playground/CMakeLists.txt 1970-01-01 00:00:00 +0000 |
1554 | +++ playground/CMakeLists.txt 2014-09-23 17:34:29 +0000 |
1555 | @@ -0,0 +1,37 @@ |
1556 | + |
1557 | +include_directories( |
1558 | + ${PROJECT_SOURCE_DIR}/src/include/server |
1559 | + ${PROJECT_SOURCE_DIR}/src/include/platform |
1560 | + ${PROJECT_SOURCE_DIR}/include/client |
1561 | + ${PROJECT_SOURCE_DIR}/include/server |
1562 | + ${PROJECT_SOURCE_DIR}/include/platform |
1563 | + ${PROJECT_SOURCE_DIR}/examples/ |
1564 | +) |
1565 | + |
1566 | +set(RENDER_SURFACES_SOURCES |
1567 | + render_surfaces.cpp |
1568 | + buffer_render_target.cpp |
1569 | + image_renderer.cpp |
1570 | +) |
1571 | +add_executable(mir_demo_standalone_render_surfaces ${RENDER_SURFACES_SOURCES}) |
1572 | +target_link_libraries(mir_demo_standalone_render_surfaces |
1573 | + mirserver |
1574 | + exampleserverconfig |
1575 | + ${Boost_LIBRARIES} |
1576 | +) |
1577 | + |
1578 | +install(TARGETS mir_demo_standalone_render_surfaces RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) |
1579 | + |
1580 | +add_executable(mir_demo_standalone_render_overlays |
1581 | + render_overlays.cpp |
1582 | +) |
1583 | + |
1584 | +target_link_libraries(mir_demo_standalone_render_overlays |
1585 | + mirserver |
1586 | + mirtestdraw |
1587 | + mircommon |
1588 | +) |
1589 | + |
1590 | +add_subdirectory(testdraw/) |
1591 | +add_subdirectory(demo-shell/) |
1592 | +add_subdirectory(demo-inprocess-surface-client/) |
1593 | \ No newline at end of file |
1594 | |
1595 | === added file 'playground/README' |
1596 | --- playground/README 1970-01-01 00:00:00 +0000 |
1597 | +++ playground/README 2014-09-23 17:34:29 +0000 |
1598 | @@ -0,0 +1,6 @@ |
1599 | +The Playground |
1600 | + |
1601 | +These are mir demos that excercise private in-flux mir functionality. |
1602 | +As such functionality matures, related headers become public and the playground |
1603 | +code may become an example of how to use such feature. |
1604 | + |
1605 | |
1606 | === renamed file 'examples/buffer_render_target.cpp' => 'playground/buffer_render_target.cpp' |
1607 | === renamed file 'examples/buffer_render_target.h' => 'playground/buffer_render_target.h' |
1608 | === renamed directory 'examples/demo-inprocess-surface-client' => 'playground/demo-inprocess-surface-client' |
1609 | === modified file 'playground/demo-inprocess-surface-client/CMakeLists.txt' |
1610 | --- examples/demo-inprocess-surface-client/CMakeLists.txt 2013-08-28 03:41:48 +0000 |
1611 | +++ playground/demo-inprocess-surface-client/CMakeLists.txt 2014-09-23 17:34:29 +0000 |
1612 | @@ -1,14 +1,12 @@ |
1613 | -include_directories(..) |
1614 | - |
1615 | add_executable(mir_demo_standalone_inprocess_egl |
1616 | demo_inprocess_surface_client.cpp |
1617 | inprocess_egl_client.cpp |
1618 | example_egl_helper.cpp |
1619 | - ../server_configuration.cpp |
1620 | ) |
1621 | |
1622 | target_link_libraries(mir_demo_standalone_inprocess_egl |
1623 | mirserver |
1624 | mirdraw |
1625 | + exampleserverconfig |
1626 | ) |
1627 | # TODO Install this demo? |
1628 | |
1629 | === modified file 'playground/demo-inprocess-surface-client/demo_inprocess_surface_client.cpp' |
1630 | --- examples/demo-inprocess-surface-client/demo_inprocess_surface_client.cpp 2014-03-06 06:05:17 +0000 |
1631 | +++ playground/demo-inprocess-surface-client/demo_inprocess_surface_client.cpp 2014-09-23 17:34:29 +0000 |
1632 | @@ -19,7 +19,7 @@ |
1633 | #include "inprocess_egl_client.h" |
1634 | |
1635 | #include "mir/run_mir.h" |
1636 | -#include "../server_configuration.h" |
1637 | +#include "server_configuration.h" |
1638 | |
1639 | #include "mir/report_exception.h" |
1640 | |
1641 | |
1642 | === renamed directory 'examples/demo-shell' => 'playground/demo-shell' |
1643 | === modified file 'playground/demo-shell/CMakeLists.txt' |
1644 | --- examples/demo-shell/CMakeLists.txt 2014-08-26 14:39:46 +0000 |
1645 | +++ playground/demo-shell/CMakeLists.txt 2014-09-23 17:34:29 +0000 |
1646 | @@ -3,7 +3,10 @@ |
1647 | demo_renderer.cpp |
1648 | fullscreen_placement_strategy.cpp |
1649 | window_manager.cpp |
1650 | - ../server_configuration.cpp |
1651 | +) |
1652 | + |
1653 | +add_executable(mir_demo_server_shell |
1654 | + demo_shell.cpp |
1655 | ) |
1656 | |
1657 | add_executable(mir_demo_server_shell |
1658 | @@ -13,6 +16,7 @@ |
1659 | target_link_libraries(mir_demo_server_shell |
1660 | demo-shell |
1661 | mirserver |
1662 | + exampleserverconfig |
1663 | ) |
1664 | |
1665 | install(TARGETS mir_demo_server_shell RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) |
1666 | |
1667 | === modified file 'playground/demo-shell/demo_compositor.cpp' |
1668 | --- examples/demo-shell/demo_compositor.cpp 2014-08-29 13:16:11 +0000 |
1669 | +++ playground/demo-shell/demo_compositor.cpp 2014-09-23 17:34:29 +0000 |
1670 | @@ -1,3 +1,4 @@ |
1671 | +<<<<<<< TREE |
1672 | /* |
1673 | * Copyright © 2014 Canonical Ltd. |
1674 | * |
1675 | @@ -103,3 +104,115 @@ |
1676 | report->finished_frame(false, this); |
1677 | } |
1678 | } |
1679 | +======= |
1680 | +/* |
1681 | + * Copyright © 2014 Canonical Ltd. |
1682 | + * |
1683 | + * This program is free software: you can redistribute it and/or modify |
1684 | + * it under the terms of the GNU General Public License version 3 as |
1685 | + * published by the Free Software Foundation. |
1686 | + * |
1687 | + * This program is distributed in the hope that it will be useful, |
1688 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of |
1689 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
1690 | + * GNU General Public License for more details. |
1691 | + * |
1692 | + * You should have received a copy of the GNU General Public License |
1693 | + * along with this program. If not, see <http://www.gnu.org/licenses/>. |
1694 | + * |
1695 | + * Authored by: Kevin DuBois <kevin.dubois@canonical.com> |
1696 | + */ |
1697 | + |
1698 | +#include "mir/graphics/display_buffer.h" |
1699 | +#include "mir/compositor/compositor_report.h" |
1700 | +#include "mir/compositor/scene.h" |
1701 | +#include "mir/compositor/scene_element.h" |
1702 | +#include "mir/compositor/destination_alpha.h" |
1703 | +#include "demo_compositor.h" |
1704 | + |
1705 | +namespace me = mir::examples; |
1706 | +namespace mg = mir::graphics; |
1707 | +namespace mc = mir::compositor; |
1708 | +namespace geom = mir::geometry; |
1709 | + |
1710 | +namespace |
1711 | +{ |
1712 | +mc::DestinationAlpha destination_alpha(mg::DisplayBuffer const& db) |
1713 | +{ |
1714 | + return db.uses_alpha() ? mc::DestinationAlpha::generate_from_source : mc::DestinationAlpha::opaque; |
1715 | +} |
1716 | +} |
1717 | + |
1718 | +me::DemoCompositor::DemoCompositor( |
1719 | + mg::DisplayBuffer& display_buffer, |
1720 | + std::shared_ptr<mc::Scene> const& scene, |
1721 | + mg::GLProgramFactory const& factory, |
1722 | + std::shared_ptr<mc::CompositorReport> const& report) : |
1723 | + display_buffer(display_buffer), |
1724 | + scene(scene), |
1725 | + report(report), |
1726 | + renderer( |
1727 | + factory, |
1728 | + display_buffer.view_area(), |
1729 | + destination_alpha(display_buffer), |
1730 | + 30.0f, //titlebar_height |
1731 | + 80.0f) //shadow_radius |
1732 | +{ |
1733 | + scene->register_compositor(this); |
1734 | +} |
1735 | + |
1736 | +me::DemoCompositor::~DemoCompositor() |
1737 | +{ |
1738 | + scene->unregister_compositor(this); |
1739 | +} |
1740 | + |
1741 | +void me::DemoCompositor::composite() |
1742 | +{ |
1743 | + report->began_frame(this); |
1744 | + //a simple filtering out of renderables that shouldn't be drawn |
1745 | + //the elements should be notified if they are rendered or not |
1746 | + bool nonrenderlist_elements{false}; |
1747 | + mg::RenderableList renderable_list; |
1748 | + std::unordered_set<mg::Renderable::ID> decoration_skip_list; |
1749 | + |
1750 | + auto elements = scene->scene_elements_for(this); |
1751 | + for(auto const& it : elements) |
1752 | + { |
1753 | + auto const& renderable = it->renderable(); |
1754 | + auto const& view_area = display_buffer.view_area(); |
1755 | + auto embellished = renderer.would_embellish(*renderable, view_area); |
1756 | + auto any_part_drawn = (view_area.overlaps(renderable->screen_position()) || embellished); |
1757 | + |
1758 | + if (!it->is_a_surface()) |
1759 | + decoration_skip_list.insert(renderable->id()); |
1760 | + if (renderable->visible() && any_part_drawn) |
1761 | + { |
1762 | + renderable_list.push_back(renderable); |
1763 | + it->rendered_in(this); |
1764 | + } |
1765 | + else |
1766 | + { |
1767 | + it->occluded_in(this); |
1768 | + } |
1769 | + nonrenderlist_elements |= embellished; |
1770 | + } |
1771 | + |
1772 | + if (!nonrenderlist_elements && |
1773 | + display_buffer.post_renderables_if_optimizable(renderable_list)) |
1774 | + { |
1775 | + renderer.suspend(); |
1776 | + report->finished_frame(true, this); |
1777 | + } |
1778 | + else |
1779 | + { |
1780 | + display_buffer.make_current(); |
1781 | + |
1782 | + renderer.set_rotation(display_buffer.orientation()); |
1783 | + renderer.begin(std::move(decoration_skip_list)); |
1784 | + renderer.render(renderable_list); |
1785 | + display_buffer.post_update(); |
1786 | + renderer.end(); |
1787 | + report->finished_frame(false, this); |
1788 | + } |
1789 | +} |
1790 | +>>>>>>> MERGE-SOURCE |
1791 | |
1792 | === modified file 'playground/demo-shell/demo_renderer.cpp' |
1793 | --- examples/demo-shell/demo_renderer.cpp 2014-08-26 14:48:55 +0000 |
1794 | +++ playground/demo-shell/demo_renderer.cpp 2014-09-23 17:34:29 +0000 |
1795 | @@ -171,7 +171,7 @@ |
1796 | glDeleteTextures(1, &titlebar_corner_tex); |
1797 | } |
1798 | |
1799 | -void DemoRenderer::begin() const |
1800 | +void DemoRenderer::begin(std::unordered_set<graphics::Renderable::ID> decoration_skip_list_) const |
1801 | { |
1802 | bool const opaque = destination_alpha() == compositor::DestinationAlpha::opaque; |
1803 | if (opaque) |
1804 | @@ -184,14 +184,24 @@ |
1805 | |
1806 | if (opaque) |
1807 | glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_FALSE); |
1808 | + |
1809 | + decoration_skip_list = decoration_skip_list_; |
1810 | } |
1811 | |
1812 | void DemoRenderer::tessellate(std::vector<graphics::GLPrimitive>& primitives, |
1813 | graphics::Renderable const& renderable) const |
1814 | { |
1815 | GLRenderer::tessellate(primitives, renderable); |
1816 | +<<<<<<< TREE |
1817 | tessellate_shadow(primitives, renderable, shadow_radius); |
1818 | tessellate_frame(primitives, renderable, titlebar_height); |
1819 | +======= |
1820 | + if (decoration_skip_list.find(renderable.id()) == decoration_skip_list.end()) |
1821 | + { |
1822 | + tessellate_shadow(primitives, renderable, shadow_radius); |
1823 | + tessellate_frame(primitives, renderable, titlebar_height); |
1824 | + } |
1825 | +>>>>>>> MERGE-SOURCE |
1826 | } |
1827 | |
1828 | void DemoRenderer::tessellate_shadow(std::vector<graphics::GLPrimitive>& primitives, |
1829 | |
1830 | === modified file 'playground/demo-shell/demo_renderer.h' |
1831 | --- examples/demo-shell/demo_renderer.h 2014-08-26 14:39:46 +0000 |
1832 | +++ playground/demo-shell/demo_renderer.h 2014-09-23 17:34:29 +0000 |
1833 | @@ -21,6 +21,8 @@ |
1834 | |
1835 | #include "mir/compositor/gl_renderer.h" |
1836 | |
1837 | +#include <unordered_set> |
1838 | + |
1839 | namespace mir |
1840 | { |
1841 | namespace examples |
1842 | @@ -37,6 +39,7 @@ |
1843 | float const shadow_radius); |
1844 | ~DemoRenderer(); |
1845 | |
1846 | +<<<<<<< TREE |
1847 | void begin() const override; |
1848 | void tessellate( |
1849 | std::vector<graphics::GLPrimitive>& primitives, |
1850 | @@ -52,6 +55,25 @@ |
1851 | bool would_embellish( |
1852 | graphics::Renderable const& renderable, |
1853 | geometry::Rectangle const&) const; |
1854 | +======= |
1855 | + void begin() const override { GLRenderer::begin(); } |
1856 | + void begin(std::unordered_set<graphics::Renderable::ID> renderables_not_to_decorate) const; |
1857 | + |
1858 | + void tessellate( |
1859 | + std::vector<graphics::GLPrimitive>& primitives, |
1860 | + graphics::Renderable const& renderable) const override; |
1861 | + void tessellate_shadow( |
1862 | + std::vector<graphics::GLPrimitive>& primitives, |
1863 | + graphics::Renderable const& renderable, |
1864 | + float radius) const; |
1865 | + void tessellate_frame( |
1866 | + std::vector<graphics::GLPrimitive>& primitives, |
1867 | + graphics::Renderable const& renderable, |
1868 | + float titlebar_height) const; |
1869 | + bool would_embellish( |
1870 | + graphics::Renderable const& renderable, |
1871 | + geometry::Rectangle const&) const; |
1872 | +>>>>>>> MERGE-SOURCE |
1873 | |
1874 | private: |
1875 | float const titlebar_height; |
1876 | @@ -59,6 +81,8 @@ |
1877 | float const corner_radius; |
1878 | GLuint shadow_corner_tex; |
1879 | GLuint titlebar_corner_tex; |
1880 | + |
1881 | + mutable std::unordered_set<graphics::Renderable::ID> decoration_skip_list; |
1882 | }; |
1883 | |
1884 | } // namespace examples |
1885 | |
1886 | === modified file 'playground/demo-shell/demo_shell.cpp' |
1887 | --- examples/demo-shell/demo_shell.cpp 2014-07-23 20:59:29 +0000 |
1888 | +++ playground/demo-shell/demo_shell.cpp 2014-09-23 17:34:29 +0000 |
1889 | @@ -21,7 +21,7 @@ |
1890 | #include "demo_compositor.h" |
1891 | #include "window_manager.h" |
1892 | #include "fullscreen_placement_strategy.h" |
1893 | -#include "../server_configuration.h" |
1894 | +#include "server_configuration.h" |
1895 | |
1896 | #include "mir/options/default_configuration.h" |
1897 | #include "mir/run_mir.h" |
1898 | |
1899 | === modified file 'playground/demo-shell/window_manager.cpp' |
1900 | --- examples/demo-shell/window_manager.cpp 2014-07-21 03:35:31 +0000 |
1901 | +++ playground/demo-shell/window_manager.cpp 2014-09-23 17:34:29 +0000 |
1902 | @@ -27,7 +27,6 @@ |
1903 | #include "mir/compositor/compositor.h" |
1904 | |
1905 | #include <linux/input.h> |
1906 | -#include <android/keycodes.h> // TODO remove this dependency |
1907 | |
1908 | #include <cassert> |
1909 | #include <cstdlib> |
1910 | @@ -124,6 +123,7 @@ |
1911 | assert(compositor); |
1912 | |
1913 | bool handled = false; |
1914 | + static int const ANDROID_KEYCODE_POWER = 26; |
1915 | |
1916 | if (event.key.type == mir_event_type_key && |
1917 | event.key.action == mir_key_action_down) |
1918 | @@ -136,7 +136,7 @@ |
1919 | } |
1920 | else if ((event.key.modifiers & mir_key_modifier_alt && |
1921 | event.key.scan_code == KEY_P) || |
1922 | - (event.key.key_code == AKEYCODE_POWER)) |
1923 | + (event.key.key_code == ANDROID_KEYCODE_POWER)) |
1924 | { |
1925 | compositor->stop(); |
1926 | auto conf = display->configuration(); |
1927 | |
1928 | === renamed file 'examples/image_renderer.cpp' => 'playground/image_renderer.cpp' |
1929 | === renamed file 'examples/image_renderer.h' => 'playground/image_renderer.h' |
1930 | === renamed file 'examples/render_overlays.cpp' => 'playground/render_overlays.cpp' |
1931 | === renamed file 'examples/render_surfaces.cpp' => 'playground/render_surfaces.cpp' |
1932 | === renamed directory 'examples/testdraw' => 'playground/testdraw' |
1933 | === modified file 'playground/testdraw/mesa_graphics_region_factory.cpp' |
1934 | --- examples/testdraw/mesa_graphics_region_factory.cpp 2014-07-22 13:42:01 +0000 |
1935 | +++ playground/testdraw/mesa_graphics_region_factory.cpp 2014-09-23 17:34:29 +0000 |
1936 | @@ -16,7 +16,7 @@ |
1937 | * Authored by: Kevin DuBois <kevin.dubois@canonical.com> |
1938 | */ |
1939 | |
1940 | -#include "examples/testdraw/graphics_region_factory.h" |
1941 | +#include "graphics_region_factory.h" |
1942 | #include <boost/throw_exception.hpp> |
1943 | #include <stdexcept> |
1944 | |
1945 | |
1946 | === modified file 'server-ABI-sha1sums' |
1947 | --- server-ABI-sha1sums 2014-08-27 19:35:36 +0000 |
1948 | +++ server-ABI-sha1sums 2014-09-23 17:34:29 +0000 |
1949 | @@ -1,3 +1,4 @@ |
1950 | +<<<<<<< TREE |
1951 | 871e609c0fed0d566ddbaaa8ac2d7cd5c06dd09a include/platform/mir/abnormal_exit.h |
1952 | 498d728ea1052cb6cadb9de7828ae48eb5a201df include/platform/mir/emergency_cleanup_registry.h |
1953 | 8f47feb6d983aa5c9ebd58e9d1524361c9f5e651 include/platform/mir/fatal.h |
1954 | @@ -70,20 +71,78 @@ |
1955 | d21356fe32066c1d6146730c198683d1ad5786bd include/server/mir/frontend/connector_report.h |
1956 | 938de641cb0e01e1098b007b39b151a7dfe4adc1 include/server/mir/frontend/display_changer.h |
1957 | 46b9a4c7794c29b4bd7822671f9626fc8fc33333 include/server/mir/frontend/event_sink.h |
1958 | +======= |
1959 | +3329ada91412ded2f127aee9a92f065e57b81cb2 include/common/mir/cached_ptr.h |
1960 | +82ff9499ef62739379616e02164dc98f9914c329 include/common/mir/fd.h |
1961 | +b399dc08514751c86e23824612a52378dd9b1e23 include/common/mir/geometry/dimensions.h |
1962 | +d954464ef2d20c2876db68c94512a443186da09b include/common/mir/geometry/point.h |
1963 | +dc7c62d3916eec025e8e7deaf57e06077ce38928 include/common/mir/geometry/rectangle.h |
1964 | +5161774957e3ca4f5fa4e7db025d0978d2bbef06 include/common/mir/geometry/rectangles.h |
1965 | +42646c2367b9821e3aa71feff6e31cf50526acaa include/common/mir/geometry/size.h |
1966 | +e1be9faee8b844ca2ce617f8fd82c9ee08d56bed include/common/mir/graphics/native_buffer.h |
1967 | +dcf8b8982f138bdde39a241825c610e955cd5e33 include/common/mir/input/input_platform.h |
1968 | +208cd6aed5ef5f8f39b3eb86604e4133cb840485 include/common/mir/input/input_receiver_thread.h |
1969 | +be7d58c9fde2ce91cc66dd6144b76e08b536266b include/common/mir/int_wrapper.h |
1970 | +48015c67ddc4998ed5a2e8bb04ff3a4bfdd6a613 include/common/mir/time/clock.h |
1971 | +9907751d046e4aea81881cf19e5df52c7a6a813e include/common/mir_toolkit/client_types.h |
1972 | +183d9e5e6cfe48b3d9145a28541dd4202ff6137b include/common/mir_toolkit/common.h |
1973 | +fce4c1a9e0d037244f7e9e96ea2d8eaab4fc404c include/common/mir_toolkit/cursors.h |
1974 | +bdaceadd56e41d2cb708f7c4da97acf84dfc75b7 include/common/mir_toolkit/event.h |
1975 | +99ef5f3bf548508fae24c60f74be1dea018a6e8c include/common/mir_toolkit/mesa/native_display.h |
1976 | +101017c17714a57db57d79b7b5e7df40a3568236 include/common/mir_toolkit/mir_native_buffer.h |
1977 | +871e609c0fed0d566ddbaaa8ac2d7cd5c06dd09a include/platform/mir/abnormal_exit.h |
1978 | +e9e97ba2db4c6aeb269630547bf5a558da17d896 include/platform/mir/graphics/basic_platform.h |
1979 | +54328767ca330ba166160a486bd0688406ab0222 include/platform/mir/graphics/buffer.h |
1980 | +5875f13f5b029a4b5291e9baec3ae434b72be27c include/platform/mir/graphics/buffer_id.h |
1981 | +748f5c2aab11189aa02c4a89ab900561548e7304 include/platform/mir/graphics/buffer_properties.h |
1982 | +986f5d0d8ea2c6a42cc320f468e682f81fec46ae include/platform/mir/graphics/display_buffer.h |
1983 | +f53a0020b8f1bd4a941a201eb26271cffee0a7dd include/platform/mir/graphics/display_configuration.h |
1984 | +6fe08da318c920b0d20ea8b8f560f5ac7ed389fe include/platform/mir/graphics/display_configuration_policy.h |
1985 | +41ea906d208b761e3d5d5056095de9de2d4ffa17 include/platform/mir/graphics/display.h |
1986 | +815405c5aee8000bc18c1c9480bac620a451b416 include/platform/mir/graphics/event_handler_register.h |
1987 | +5dc095474ef3e294c0aa4008e9ed997bdb21d34c include/platform/mir/graphics/gl_config.h |
1988 | +d0442a5d5d88a4be6e3e1f99e433c1c43a86bfce include/platform/mir/graphics/gl_context.h |
1989 | +979d2c1ac723ccef538d9a378228a02b0f173bd7 include/platform/mir/graphics/graphic_buffer_allocator.h |
1990 | +f90a35371e236a6cfec8e9a8474dbb3305c7621e include/platform/mir/graphics/internal_client.h |
1991 | +c9730cac4a3a101f9706ec6f444958abe047fd88 include/platform/mir/graphics/internal_surface.h |
1992 | +c775727ea15fd8affa5b4dc9cd226d782e436001 include/platform/mir/graphics/platform.h |
1993 | +15f201741a465de33e55ffc1ea775b507a5be950 include/platform/mir/graphics/renderable.h |
1994 | +f5746dab3336266cfd410ce4e4d01333df6e5b99 include/platform/mir/options/configuration.h |
1995 | +47007c783c174f8e94d332c4b13c6b01358b48fb include/platform/mir/options/default_configuration.h |
1996 | +b45f14082c4f8b29efaa1b13de795dcb29deb738 include/platform/mir/options/option.h |
1997 | +3c37cc31e8b290b89c311d82f02e07d342766451 include/platform/mir/options/program_option.h |
1998 | +f4030e400baf8baa9c38e7c6ec6b4a5ad7134aeb include/server/mir/compositor/compositor.h |
1999 | +ef0b6f26fb40a72e4a4744e4d9c4bd044142de47 include/server/mir/default_server_configuration.h |
2000 | +af1ff0714be973ac76d56006a2e5991f68cd1dec include/server/mir/display_server.h |
2001 | +65db331f1c0e956eced5c9fc73a2b2122dbc8dc7 include/server/mir/frontend/connection_creator.h |
2002 | +e6e92642301fc9bb85e1d38087a5dd84e5d30fd7 include/server/mir/frontend/connections.h |
2003 | +>>>>>>> MERGE-SOURCE |
2004 | bdb89184f400bb04625db5835d38576f99f52684 include/server/mir/frontend/fd_sets.h |
2005 | +<<<<<<< TREE |
2006 | 4f1303065e300d26acb148c3dd9f7183dc3c4443 include/server/mir/frontend/message_processor.h |
2007 | e43a044d70ad48fd41d74a176223e3e75b9b53b8 include/server/mir/frontend/message_processor_report.h |
2008 | +======= |
2009 | +4f1303065e300d26acb148c3dd9f7183dc3c4443 include/server/mir/frontend/message_processor.h |
2010 | +>>>>>>> MERGE-SOURCE |
2011 | 59d6703def2a0ff840e5eb75390a5af76fd93f58 include/server/mir/frontend/prompt_session.h |
2012 | cb1f73934d150f21e60d4d8de3f15918d993dd98 include/server/mir/frontend/protobuf_connection_creator.h |
2013 | 7fc88a2e39f6b87ecbd89a264612138e8fcfb10a include/server/mir/frontend/protobuf_message_sender.h |
2014 | fae0008af826abbc4b4324d49e9c03d43b08765a include/server/mir/frontend/screencast.h |
2015 | b729a7710c37d9f1fba56a6f8e8eae1c2559f57a include/server/mir/frontend/session_authorizer.h |
2016 | +<<<<<<< TREE |
2017 | 34ce482df448fd2fc5f0c4ae5ac8b7fecbd228c9 include/server/mir/frontend/session_credentials.h |
2018 | e5ea465ed7e05f0e1d6a837d0d6b3a04c2d7fc19 include/server/mir/frontend/session.h |
2019 | 0452fd9e7ccf081baf7635d8f699de47c52372ea include/server/mir/frontend/session_mediator_report.h |
2020 | 68468aa2298c4e2cdc1bbb7cb5f250a914ae16c9 include/server/mir/frontend/shell.h |
2021 | f67b9788943a4b9121b3891dfbe979d57922ea78 include/server/mir/frontend/surface.h |
2022 | +======= |
2023 | +34ce482df448fd2fc5f0c4ae5ac8b7fecbd228c9 include/server/mir/frontend/session_credentials.h |
2024 | +e5ea465ed7e05f0e1d6a837d0d6b3a04c2d7fc19 include/server/mir/frontend/session.h |
2025 | +68468aa2298c4e2cdc1bbb7cb5f250a914ae16c9 include/server/mir/frontend/shell.h |
2026 | +f67b9788943a4b9121b3891dfbe979d57922ea78 include/server/mir/frontend/surface.h |
2027 | +>>>>>>> MERGE-SOURCE |
2028 | 618b43a84cce0ad671ed68fe2ba796fbc7b79e31 include/server/mir/frontend/surface_id.h |
2029 | +<<<<<<< TREE |
2030 | 5aa4c4db5468d9b9fe8e98a64444538aadd6e17b include/server/mir/frontend/template_protobuf_message_processor.h |
2031 | ba79552edce545fafc9a4f401411c44d0cb3b2cf include/server/mir/graphics/gl_extensions_base.h |
2032 | 2489a0e7922b6c7abe383726a30e17edbee51048 include/server/mir/graphics/surfaceless_egl_context.h |
2033 | @@ -196,3 +255,45 @@ |
2034 | 101017c17714a57db57d79b7b5e7df40a3568236 include/shared/mir_toolkit/mir_native_buffer.h |
2035 | 9f646fa12eaca5fc3b7a8fde6208673c071c8ef3 include/shared/mir/udev/wrapper.h |
2036 | 9fd77ab693cc4c9a200e44804f5493733528a674 include/shared/mir/variable_length_array.h |
2037 | +======= |
2038 | +5aa4c4db5468d9b9fe8e98a64444538aadd6e17b include/server/mir/frontend/template_protobuf_message_processor.h |
2039 | +f95c2bddf13d15993ef5d6a0ad7b9106ae550b87 include/server/mir/input/composite_event_filter.h |
2040 | +cef18b7215fbe00550d18c0aa0f79b641cff494e include/server/mir/input/cursor_listener.h |
2041 | +2331fc402686e862809bf24714a8746cdde97cb1 include/server/mir/input/event_filter.h |
2042 | +78862dda41d56c6b937a1ed197982e5fa37f50df include/server/mir/input/input_channel.h |
2043 | +6f1d9cf83bbb1256f0b4d1ba1d94d95af98c52f0 include/server/mir/input/input_dispatcher.h |
2044 | +b2ec497c6bec1b3a67c991f31cc7b7c51050ecbb include/server/mir/input/input_reception_mode.h |
2045 | +15119bf95b4512c8b91df7c20edf56a3c0734957 include/server/mir/input/surface.h |
2046 | +036f3967757873751fcacaa768ca11a52001c225 include/server/mir/input/touch_visualizer.h |
2047 | +964069b241f1e8211386bb8735ee0f752b666949 include/server/mir/main_loop.h |
2048 | +edd5a0a6be0be57ef64c5af89fc5a65dc558648c include/server/mir/report_exception.h |
2049 | +8192727cf5fa0b2b5798b2211c2c8a4ad65c9f60 include/server/mir/run_mir.h |
2050 | +71d9082681aa39d652c88ad3b54665695b521d24 include/server/mir/scene/depth_id.h |
2051 | +4e4e563ab429a13ddca7eead16f2b6cefb8edff6 include/server/mir/scene/null_surface_observer.h |
2052 | +10db25fbaefcabb3b191177ed70f5972df7f05f0 include/server/mir/scene/placement_strategy.h |
2053 | +74f7f66ffc3e15c428082fb961e748cb4f39dafc include/server/mir/scene/prompt_session_creation_parameters.h |
2054 | +4e8269c822ad2daddd92115cbe5332caaa9ef4cc include/server/mir/scene/prompt_session.h |
2055 | +79adf11e2b1778897ed97d1713ba4c3d34eb1f31 include/server/mir/scene/prompt_session_listener.h |
2056 | +27f614f98ad7c249d9b12dcca30a324220cdd25b include/server/mir/scene/prompt_session_manager.h |
2057 | +5edf446380070f567500069e422d293e88468ee5 include/server/mir/scene/session_coordinator.h |
2058 | +f148a69caa39756d43cfaf7cc868ad681bda9ef6 include/server/mir/scene/session.h |
2059 | +ee94083f10f890e24c0e0bbdb94842e2dd788deb include/server/mir/scene/session_listener.h |
2060 | +7f5f26000fd2312373817d05c488a6a950a47c82 include/server/mir/scene/snapshot.h |
2061 | +5bab4dc0a6488b8b9d47e958c6bab94f1dcf2c57 include/server/mir/scene/surface_buffer_access.h |
2062 | +bbc9e2e2bb71634cd6f1c5c0430093e10e74fa23 include/server/mir/scene/surface_configurator.h |
2063 | +e5e4dd7bcaf186810043fa0f05be42d7e49b0843 include/server/mir/scene/surface_coordinator.h |
2064 | +dd8f054f786b9746d9e513f2656e931234b5283a include/server/mir/scene/surface_creation_parameters.h |
2065 | +791624081fa86523f51f444d2b28d7ab32dde1a4 include/server/mir/scene/surface.h |
2066 | +993e9f458ffc4288d304413f3fa0b1dcc95a093d include/server/mir/scene/surface_observer.h |
2067 | +7ef3e99901168cda296d74d05a979f47bf9c3ff1 include/server/mir/server_action_queue.h |
2068 | +d429c9b200ecc7982f0dcda2b357c01f4794412b include/server/mir/server_configuration.h |
2069 | +86098b500339bfccd07a9bed8298f75a68b18f5c include/server/mir/server_status_listener.h |
2070 | +860c04f32b60e680140148dc9dc2295de145b9c1 include/server/mir/shell/display_layout.h |
2071 | +6a2107b01feae13060d5c305804906e53c52e0be include/server/mir/shell/focus_controller.h |
2072 | +b74342d8ffab489405a4e12fce0c257ac9f8596c include/server/mir/shell/focus_setter.h |
2073 | +4f50c37bb8e36a1aa4918af6aa01b0f032ed0984 include/server/mir/shell/input_targeter.h |
2074 | +82bc93ea53f03399cb143b9ce936bb51d4366be6 include/server/mir/shell/session_coordinator_wrapper.h |
2075 | +18e869c5b87ab8be4bc185d2cd55a93d699cde72 include/server/mir/shell/surface_coordinator_wrapper.h |
2076 | +c3fdfa84a3ae97a0d1057635c5bfcedcf29d007c include/server/mir/time/alarm.h |
2077 | +a134c7b86e9c3b191f1004abe7bbdceed8ac42ee include/server/mir/time/timer.h |
2078 | +>>>>>>> MERGE-SOURCE |
2079 | |
2080 | === modified file 'src/CMakeLists.txt' |
2081 | --- src/CMakeLists.txt 2014-08-27 19:44:04 +0000 |
2082 | +++ src/CMakeLists.txt 2014-09-23 17:34:29 +0000 |
2083 | @@ -1,5 +1,5 @@ |
2084 | set(MIR_GENERATED_INCLUDE_DIRECTORIES) |
2085 | -add_subdirectory(shared/) |
2086 | +add_subdirectory(common/) |
2087 | include_directories(${MIR_GENERATED_INCLUDE_DIRECTORIES}) |
2088 | |
2089 | add_subdirectory(platform/) |
2090 | |
2091 | === modified file 'src/client/CMakeLists.txt' |
2092 | --- src/client/CMakeLists.txt 2014-08-05 14:03:25 +0000 |
2093 | +++ src/client/CMakeLists.txt 2014-09-23 17:34:29 +0000 |
2094 | @@ -1,3 +1,10 @@ |
2095 | +set(MIRCLIENT_ABI 8) |
2096 | +set(CLIENT_DRIVER client${MIRCLIENT_ABI}driver) |
2097 | +set(MIR_CLIENT_DRIVER mir${CLIENT_DRIVER}) |
2098 | +set(MIR_CLIENT_DRIVER_BINARY lib${MIR_CLIENT_DRIVER}.so |
2099 | + CACHE STRING "File name of Mir client drivers") |
2100 | +add_definitions(-DMIR_CLIENT_DRIVER_BINARY="${MIR_CLIENT_DRIVER_BINARY}") |
2101 | + |
2102 | set(PREFIX "${CMAKE_INSTALL_PREFIX}") |
2103 | set(EXEC_PREFIX "${CMAKE_INSTALL_PREFIX}") |
2104 | set(LIBDIR "${CMAKE_INSTALL_FULL_LIBDIR}") |
2105 | @@ -44,6 +51,7 @@ |
2106 | mir_surface_api.cpp |
2107 | logging/rpc_report.cpp |
2108 | logging/input_receiver_report.cpp |
2109 | + logging/perf_report.cpp |
2110 | default_connection_configuration.cpp |
2111 | surface_map.cpp |
2112 | lifecycle_control.cpp |
2113 | @@ -54,6 +62,7 @@ |
2114 | mir_prompt_session.cpp |
2115 | mir_prompt_session_api.cpp |
2116 | mir_event_distributor.cpp |
2117 | + periodic_perf_report.cpp |
2118 | ) |
2119 | |
2120 | add_library( |
2121 | @@ -62,7 +71,6 @@ |
2122 | $<TARGET_OBJECTS:mirclientobjects> |
2123 | ) |
2124 | |
2125 | -set(MIRCLIENT_ABI 8) |
2126 | set(symbol_map ${CMAKE_CURRENT_SOURCE_DIR}/symbols.map) |
2127 | |
2128 | set_target_properties( |
2129 | |
2130 | === modified file 'src/client/android/CMakeLists.txt' |
2131 | --- src/client/android/CMakeLists.txt 2014-08-27 19:44:04 +0000 |
2132 | +++ src/client/android/CMakeLists.txt 2014-09-23 17:34:29 +0000 |
2133 | @@ -23,7 +23,7 @@ |
2134 | |
2135 | set_target_properties( |
2136 | mirclientplatformandroid PROPERTIES |
2137 | - OUTPUT_NAME mirclientplatform |
2138 | + OUTPUT_NAME ${MIR_CLIENT_DRIVER} |
2139 | LIBRARY_OUTPUT_DIRECTORY ${LIBRARY_OUTPUT_PATH}/android |
2140 | LINK_FLAGS "-Wl,--exclude-libs=ALL -Wl,--version-script,${symbol_map}" |
2141 | ) |
2142 | @@ -35,19 +35,19 @@ |
2143 | ${LIBHARDWARE_LIBRARIES} |
2144 | ) |
2145 | |
2146 | -install(TARGETS mirclientplatformandroid LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/mir/clientplatform/android) |
2147 | +install(TARGETS mirclientplatformandroid LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/mir/${CLIENT_DRIVER}/android) |
2148 | |
2149 | if (MIR_TEST_PLATFORM STREQUAL "android") |
2150 | add_custom_command(TARGET mirclientplatformandroid |
2151 | POST_BUILD |
2152 | - COMMAND ${CMAKE_COMMAND} -E remove libmirclientplatform.so |
2153 | - COMMAND ${CMAKE_COMMAND} -E create_symlink android/$<TARGET_FILE_NAME:mirclientplatformandroid> libmirclientplatform.so |
2154 | + COMMAND ${CMAKE_COMMAND} -E remove ${MIR_CLIENT_DRIVER_BINARY} |
2155 | + COMMAND ${CMAKE_COMMAND} -E create_symlink android/$<TARGET_FILE_NAME:mirclientplatformandroid> ${MIR_CLIENT_DRIVER_BINARY} |
2156 | WORKING_DIRECTORY ${LIBRARY_OUTPUT_PATH} |
2157 | ) |
2158 | |
2159 | install(CODE |
2160 | "execute_process( |
2161 | - COMMAND ln -sf mir/clientplatform/android/libmirclientplatform.so |
2162 | + COMMAND ln -sf mir/${CLIENT_DRIVER}/android/${MIR_CLIENT_DRIVER_BINARY} |
2163 | WORKING_DIRECTORY \$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR} |
2164 | )" |
2165 | ) |
2166 | |
2167 | === modified file 'src/client/default_connection_configuration.cpp' |
2168 | --- src/client/default_connection_configuration.cpp 2014-09-12 07:56:37 +0000 |
2169 | +++ src/client/default_connection_configuration.cpp 2014-09-23 17:34:29 +0000 |
2170 | @@ -26,13 +26,19 @@ |
2171 | #include "mir/input/null_input_receiver_report.h" |
2172 | #include "logging/rpc_report.h" |
2173 | #include "logging/input_receiver_report.h" |
2174 | +#include "mir/logging/shared_library_prober_report.h" |
2175 | +#include "mir/logging/null_shared_library_prober_report.h" |
2176 | #include "lttng/rpc_report.h" |
2177 | #include "lttng/input_receiver_report.h" |
2178 | +#include "lttng/shared_library_prober_report.h" |
2179 | #include "connection_surface_map.h" |
2180 | #include "lifecycle_control.h" |
2181 | #include "mir/shared_library.h" |
2182 | #include "client_platform_factory.h" |
2183 | #include "mir_event_distributor.h" |
2184 | +#include "mir/shared_library_prober.h" |
2185 | + |
2186 | +#include <dlfcn.h> |
2187 | |
2188 | #include <dlfcn.h> |
2189 | |
2190 | @@ -43,7 +49,7 @@ |
2191 | std::string const off_opt_val{"off"}; |
2192 | std::string const log_opt_val{"log"}; |
2193 | std::string const lttng_opt_val{"lttng"}; |
2194 | -std::string const default_platform_lib{"libmirclientplatform.so"}; |
2195 | +std::string const default_platform_lib{MIR_CLIENT_DRIVER_BINARY}; |
2196 | |
2197 | // Hack around the way Qt loads mir: |
2198 | // qtmir and therefore Mir are loaded via dlopen(..., RTLD_LOCAL). |
2199 | @@ -199,16 +205,47 @@ |
2200 | return std::make_shared<MirEventDistributor>(); |
2201 | }); |
2202 | } |
2203 | - |
2204 | -std::shared_ptr<mir::SharedLibrary> mcl::DefaultConnectionConfiguration::the_platform_library() |
2205 | -{ |
2206 | - if (!platform_library) |
2207 | - { |
2208 | - ensure_loaded_with_rtld_global(); |
2209 | - auto const val_raw = getenv("MIR_CLIENT_PLATFORM_LIB"); |
2210 | - std::string const libname{val_raw ? val_raw : default_platform_lib}; |
2211 | - platform_library = std::make_shared<mir::SharedLibrary>(libname); |
2212 | - } |
2213 | - |
2214 | - return platform_library; |
2215 | -} |
2216 | +<<<<<<< TREE |
2217 | + |
2218 | +std::shared_ptr<mir::SharedLibrary> mcl::DefaultConnectionConfiguration::the_platform_library() |
2219 | +{ |
2220 | + if (!platform_library) |
2221 | + { |
2222 | + ensure_loaded_with_rtld_global(); |
2223 | + auto const val_raw = getenv("MIR_CLIENT_PLATFORM_LIB"); |
2224 | + std::string const libname{val_raw ? val_raw : default_platform_lib}; |
2225 | + platform_library = std::make_shared<mir::SharedLibrary>(libname); |
2226 | + } |
2227 | + |
2228 | + return platform_library; |
2229 | +} |
2230 | +======= |
2231 | + |
2232 | +std::shared_ptr<mir::SharedLibraryProberReport> mir::client::DefaultConnectionConfiguration::the_shared_library_prober_report() |
2233 | +{ |
2234 | + return shared_library_prober_report( |
2235 | + [this] () -> std::shared_ptr<mir::SharedLibraryProberReport> |
2236 | + { |
2237 | + auto val_raw = getenv("MIR_CLIENT_SHARED_LIBRARY_PROBER_REPORT"); |
2238 | + std::string const val{val_raw ? val_raw : off_opt_val}; |
2239 | + if (val == log_opt_val) |
2240 | + return std::make_shared<mir::logging::SharedLibraryProberReport>(the_logger()); |
2241 | + else if (val == lttng_opt_val) |
2242 | + return std::make_shared<mcl::lttng::SharedLibraryProberReport>(); |
2243 | + else |
2244 | + return std::make_shared<mir::logging::NullSharedLibraryProberReport>(); |
2245 | + }); |
2246 | +} |
2247 | + |
2248 | +std::shared_ptr<mir::SharedLibrary> mcl::DefaultConnectionConfiguration::the_platform_library() |
2249 | +{ |
2250 | + if (!platform_library) |
2251 | + { |
2252 | + ensure_loaded_with_rtld_global(); |
2253 | + auto const val_raw = getenv("MIR_CLIENT_PLATFORM_LIB"); |
2254 | + std::string const libname{val_raw ? val_raw : default_platform_lib}; |
2255 | + platform_library = std::make_shared<mir::SharedLibrary>(libname); |
2256 | + } |
2257 | + return platform_library; |
2258 | +} |
2259 | +>>>>>>> MERGE-SOURCE |
2260 | |
2261 | === modified file 'src/client/default_connection_configuration.h' |
2262 | --- src/client/default_connection_configuration.h 2014-08-29 13:12:16 +0000 |
2263 | +++ src/client/default_connection_configuration.h 2014-09-23 17:34:29 +0000 |
2264 | @@ -27,6 +27,8 @@ |
2265 | |
2266 | namespace mir |
2267 | { |
2268 | +class SharedLibraryProberReport; |
2269 | + |
2270 | namespace input |
2271 | { |
2272 | namespace receiver |
2273 | @@ -57,7 +59,12 @@ |
2274 | std::shared_ptr<LifecycleControl> the_lifecycle_control(); |
2275 | std::shared_ptr<EventSink> the_event_sink(); |
2276 | std::shared_ptr<EventHandlerRegister> the_event_handler_register(); |
2277 | - std::shared_ptr<SharedLibrary> the_platform_library() override; |
2278 | +<<<<<<< TREE |
2279 | + std::shared_ptr<SharedLibrary> the_platform_library() override; |
2280 | +======= |
2281 | + std::shared_ptr<mir::SharedLibraryProberReport> the_shared_library_prober_report(); |
2282 | + std::shared_ptr<SharedLibrary> the_platform_library() override; |
2283 | +>>>>>>> MERGE-SOURCE |
2284 | |
2285 | virtual std::string the_socket_file(); |
2286 | virtual std::shared_ptr<rpc::RpcReport> the_rpc_report(); |
2287 | @@ -78,6 +85,7 @@ |
2288 | |
2289 | CachedPtr<rpc::RpcReport> rpc_report; |
2290 | CachedPtr<input::receiver::InputReceiverReport> input_receiver_report; |
2291 | + CachedPtr<mir::SharedLibraryProberReport> shared_library_prober_report; |
2292 | |
2293 | private: |
2294 | std::string const socket_file; |
2295 | |
2296 | === added file 'src/client/logging/perf_report.cpp' |
2297 | --- src/client/logging/perf_report.cpp 1970-01-01 00:00:00 +0000 |
2298 | +++ src/client/logging/perf_report.cpp 2014-09-23 17:34:29 +0000 |
2299 | @@ -0,0 +1,53 @@ |
2300 | +/* |
2301 | + * Copyright © 2014 Canonical Ltd. |
2302 | + * |
2303 | + * This program is free software: you can redistribute it and/or modify it |
2304 | + * under the terms of the GNU Lesser General Public License version 3, |
2305 | + * as published by the Free Software Foundation. |
2306 | + * |
2307 | + * This program is distributed in the hope that it will be useful, |
2308 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of |
2309 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
2310 | + * GNU Lesser General Public License for more details. |
2311 | + * |
2312 | + * You should have received a copy of the GNU Lesser General Public License |
2313 | + * along with this program. If not, see <http://www.gnu.org/licenses/>. |
2314 | + * |
2315 | + * Authored by: Daniel van Vugt <daniel.van.vugt@canonical.com> |
2316 | + */ |
2317 | + |
2318 | +#include "perf_report.h" |
2319 | +#include "mir/logging/logger.h" |
2320 | +#include "mir/time/high_resolution_clock.h" |
2321 | + |
2322 | +using namespace mir::client; |
2323 | + |
2324 | +namespace |
2325 | +{ |
2326 | +const char * const component = "perf"; // Note context is already within client |
2327 | +} // namespace |
2328 | + |
2329 | +logging::PerfReport::PerfReport( |
2330 | + std::shared_ptr<mir::logging::Logger> const& logger) |
2331 | + : PeriodicPerfReport(std::chrono::seconds(1), |
2332 | + std::make_shared<mir::time::HighResolutionClock>()) |
2333 | + , logger(logger) |
2334 | +{ |
2335 | +} |
2336 | + |
2337 | +void logging::PerfReport::display(const char *name, long fps100, |
2338 | + long rendertime_usec, long lag_usec, |
2339 | + int nbuffers) const |
2340 | +{ |
2341 | + char msg[256]; |
2342 | + snprintf(msg, sizeof msg, |
2343 | + "%s: %2ld.%02ld FPS, render time %ld.%02ldms, buffer lag %ld.%02ldms (%d buffers)", |
2344 | + name, |
2345 | + fps100 / 100, fps100 % 100, |
2346 | + rendertime_usec / 1000, (rendertime_usec / 10) % 100, |
2347 | + lag_usec / 1000, (lag_usec / 10) % 100, |
2348 | + nbuffers |
2349 | + ); |
2350 | + |
2351 | + logger->log(mir::logging::Logger::informational, msg, component); |
2352 | +} |
2353 | |
2354 | === added file 'src/client/logging/perf_report.h' |
2355 | --- src/client/logging/perf_report.h 1970-01-01 00:00:00 +0000 |
2356 | +++ src/client/logging/perf_report.h 2014-09-23 17:34:29 +0000 |
2357 | @@ -0,0 +1,48 @@ |
2358 | +/* |
2359 | + * Copyright © 2014 Canonical Ltd. |
2360 | + * |
2361 | + * This program is free software: you can redistribute it and/or modify it |
2362 | + * under the terms of the GNU Lesser General Public License version 3, |
2363 | + * as published by the Free Software Foundation. |
2364 | + * |
2365 | + * This program is distributed in the hope that it will be useful, |
2366 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of |
2367 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
2368 | + * GNU Lesser General Public License for more details. |
2369 | + * |
2370 | + * You should have received a copy of the GNU Lesser General Public License |
2371 | + * along with this program. If not, see <http://www.gnu.org/licenses/>. |
2372 | + * |
2373 | + * Authored by: Daniel van Vugt <daniel.van.vugt@canonical.com> |
2374 | + */ |
2375 | + |
2376 | +#ifndef MIR_CLIENT_LOGGING_PERF_REPORT_H_ |
2377 | +#define MIR_CLIENT_LOGGING_PERF_REPORT_H_ |
2378 | + |
2379 | +#include "../periodic_perf_report.h" |
2380 | +#include <memory> |
2381 | + |
2382 | +namespace mir |
2383 | +{ |
2384 | +namespace logging { class Logger; } |
2385 | + |
2386 | +namespace client |
2387 | +{ |
2388 | +namespace logging |
2389 | +{ |
2390 | + |
2391 | +class PerfReport : public PeriodicPerfReport |
2392 | +{ |
2393 | +public: |
2394 | + PerfReport(std::shared_ptr<mir::logging::Logger> const& logger); |
2395 | + void display(const char *name, long fps100, long rendertime_usec, |
2396 | + long lag_usec, int nbuffers) const override; |
2397 | +private: |
2398 | + std::shared_ptr<mir::logging::Logger> const logger; |
2399 | +}; |
2400 | + |
2401 | +} // namespace logging |
2402 | +} // namespace client |
2403 | +} // namespace mir |
2404 | + |
2405 | +#endif // MIR_CLIENT_LOGGING_PERF_REPORT_H_ |
2406 | |
2407 | === modified file 'src/client/lttng/CMakeLists.txt' |
2408 | --- src/client/lttng/CMakeLists.txt 2014-08-26 14:56:48 +0000 |
2409 | +++ src/client/lttng/CMakeLists.txt 2014-09-23 17:34:29 +0000 |
2410 | @@ -6,6 +6,7 @@ |
2411 | client_tracepoint_provider.cpp |
2412 | rpc_report.cpp |
2413 | input_receiver_report.cpp |
2414 | + shared_library_prober_report.cpp |
2415 | ) |
2416 | |
2417 | add_library(mirclientlttng SHARED tracepoints.c) |
2418 | |
2419 | === modified file 'src/client/lttng/input_receiver_report_tp.h' |
2420 | --- src/client/lttng/input_receiver_report_tp.h 2014-03-26 05:48:59 +0000 |
2421 | +++ src/client/lttng/input_receiver_report_tp.h 2014-09-23 17:34:29 +0000 |
2422 | @@ -28,16 +28,6 @@ |
2423 | #include <lttng/tracepoint.h> |
2424 | #include <stdint.h> |
2425 | |
2426 | -#ifdef __clang__ |
2427 | -/* |
2428 | - * TRACEPOINT_EVENT defines functions; since we disable tracepoints under clang |
2429 | - * these functions are unused and so generate fatal warnings. |
2430 | - * (see mir_tracepoint.h and http://sourceware.org/bugzilla/show_bug.cgi?id=13974) |
2431 | - */ |
2432 | -#pragma clang diagnostic push |
2433 | -#pragma clang diagnostic warning "-Wunused-function" |
2434 | -#endif |
2435 | - |
2436 | TRACEPOINT_EVENT( |
2437 | mir_client_input_receiver, |
2438 | key_event, |
2439 | @@ -88,10 +78,6 @@ |
2440 | ) |
2441 | ) |
2442 | |
2443 | -#ifdef __clang__ |
2444 | -#pragma clang diagnostic pop |
2445 | -#endif |
2446 | - |
2447 | #endif /* MIR_CLIENT_LTTNG_INPUT_RECEIVER_REPORT_TP_H_ */ |
2448 | |
2449 | #include <lttng/tracepoint-event.h> |
2450 | |
2451 | === modified file 'src/client/lttng/rpc_report_tp.h' |
2452 | --- src/client/lttng/rpc_report_tp.h 2014-03-26 05:48:59 +0000 |
2453 | +++ src/client/lttng/rpc_report_tp.h 2014-09-23 17:34:29 +0000 |
2454 | @@ -28,16 +28,6 @@ |
2455 | #include <lttng/tracepoint.h> |
2456 | #include <stdint.h> |
2457 | |
2458 | -#ifdef __clang__ |
2459 | -/* |
2460 | - * TRACEPOINT_EVENT defines functions; since we disable tracepoints under clang |
2461 | - * these functions are unused and so generate fatal warnings. |
2462 | - * (see mir_tracepoint.h and http://sourceware.org/bugzilla/show_bug.cgi?id=13974) |
2463 | - */ |
2464 | -#pragma clang diagnostic push |
2465 | -#pragma clang diagnostic warning "-Wunused-function" |
2466 | -#endif |
2467 | - |
2468 | TRACEPOINT_EVENT( |
2469 | mir_client_rpc, |
2470 | invocation_requested, |
2471 | @@ -94,10 +84,6 @@ |
2472 | ) |
2473 | ) |
2474 | |
2475 | -#ifdef __clang__ |
2476 | -#pragma clang diagnostic pop |
2477 | -#endif |
2478 | - |
2479 | #endif /* MIR_CLIENT_LTTNG_RPC_REPORT_TP_H_ */ |
2480 | |
2481 | #include <lttng/tracepoint-event.h> |
2482 | |
2483 | === added file 'src/client/lttng/shared_library_prober_report.cpp' |
2484 | --- src/client/lttng/shared_library_prober_report.cpp 1970-01-01 00:00:00 +0000 |
2485 | +++ src/client/lttng/shared_library_prober_report.cpp 2014-09-23 17:34:29 +0000 |
2486 | @@ -0,0 +1,50 @@ |
2487 | +/* |
2488 | + * Copyright © 2014 Canonical Ltd. |
2489 | + * |
2490 | + * This program is free software: you can redistribute it and/or modify |
2491 | + * it under the terms of the GNU Lesser General Public License version 3 as |
2492 | + * published by the Free Software Foundation. |
2493 | + * |
2494 | + * This program is distributed in the hope that it will be useful, |
2495 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of |
2496 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
2497 | + * GNU Lesser General Public License for more details. |
2498 | + * |
2499 | + * You should have received a copy of the GNU Lesser General Public License |
2500 | + * along with this program. If not, see <http://www.gnu.org/licenses/>. |
2501 | + * |
2502 | + * Authored by: Christopher James Halse Rogers <christopher.halse.rogers@canonical.com> |
2503 | + */ |
2504 | + |
2505 | +#include "shared_library_prober_report.h" |
2506 | +#include "mir/report/lttng/mir_tracepoint.h" |
2507 | + |
2508 | +#define TRACEPOINT_DEFINE |
2509 | +#define TRACEPOINT_PROBE_DYNAMIC_LINKAGE |
2510 | +#include "shared_library_prober_report_tp.h" |
2511 | + |
2512 | +namespace mcl = mir::client; |
2513 | + |
2514 | +void mcl::lttng::SharedLibraryProberReport::probing_path(boost::filesystem::path const& path) |
2515 | +{ |
2516 | + mir_tracepoint(mir_client_shared_library_prober, probing_path, |
2517 | + path.string().c_str()); |
2518 | +} |
2519 | + |
2520 | +void mcl::lttng::SharedLibraryProberReport::probing_failed(boost::filesystem::path const& path, std::exception const& error) |
2521 | +{ |
2522 | + mir_tracepoint(mir_client_shared_library_prober, probing_failed, |
2523 | + path.string().c_str(), error.what()); |
2524 | +} |
2525 | + |
2526 | +void mcl::lttng::SharedLibraryProberReport::loading_library(boost::filesystem::path const& filename) |
2527 | +{ |
2528 | + mir_tracepoint(mir_client_shared_library_prober, loading_library, |
2529 | + filename.string().c_str()); |
2530 | +} |
2531 | + |
2532 | +void mcl::lttng::SharedLibraryProberReport::loading_failed(boost::filesystem::path const& filename, std::exception const& error) |
2533 | +{ |
2534 | + mir_tracepoint(mir_client_shared_library_prober, loading_failed, |
2535 | + filename.string().c_str(), error.what()); |
2536 | +} |
2537 | |
2538 | === added file 'src/client/lttng/shared_library_prober_report.h' |
2539 | --- src/client/lttng/shared_library_prober_report.h 1970-01-01 00:00:00 +0000 |
2540 | +++ src/client/lttng/shared_library_prober_report.h 2014-09-23 17:34:29 +0000 |
2541 | @@ -0,0 +1,55 @@ |
2542 | +/* |
2543 | + * Copyright © 2014 Canonical Ltd. |
2544 | + * |
2545 | + * This program is free software: you can redistribute it and/or modify |
2546 | + * it under the terms of the GNU Lesser General Public License version 3 as |
2547 | + * published by the Free Software Foundation. |
2548 | + * |
2549 | + * This program is distributed in the hope that it will be useful, |
2550 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of |
2551 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
2552 | + * GNU Lesser General Public License for more details. |
2553 | + * |
2554 | + * You should have received a copy of the GNU Lesser General Public License |
2555 | + * along with this program. If not, see <http://www.gnu.org/licenses/>. |
2556 | + * |
2557 | + * Authored by: Christopher James Halse Rogers <christopher.halse.rogers@canonical.com> |
2558 | + */ |
2559 | + |
2560 | +#ifndef MIR_CLIENT_LTTNG_SHARED_LIBRARY_PROBER_REPORT_H_ |
2561 | +#define MIR_CLIENT_LTTNG_SHARED_LIBRARY_PROBER_REPORT_H_ |
2562 | + |
2563 | +#include "mir/shared_library_prober_report.h" |
2564 | +#include "client_tracepoint_provider.h" |
2565 | + |
2566 | +namespace mir |
2567 | +{ |
2568 | +namespace client |
2569 | +{ |
2570 | +namespace lttng |
2571 | +{ |
2572 | + |
2573 | +class SharedLibraryProberReport : public mir::SharedLibraryProberReport |
2574 | +{ |
2575 | +public: |
2576 | + void probing_path(boost::filesystem::path const& path) override; |
2577 | + void probing_failed(boost::filesystem::path const& path, std::exception const& error) override; |
2578 | + void loading_library(boost::filesystem::path const& filename) override; |
2579 | + void loading_failed(boost::filesystem::path const& filename, std::exception const& error) override; |
2580 | + |
2581 | +private: |
2582 | + ClientTracepointProvider tp_provider; |
2583 | +}; |
2584 | + |
2585 | +} |
2586 | +} |
2587 | +} |
2588 | + |
2589 | +#endif /* MIR_CLIENT_LTTNG_SHARED_LIBRARY_PROBER_REPORT_H_ */ |
2590 | + |
2591 | + |
2592 | +#ifndef SHARED_LIBRARY_PROBER_REPORT_H |
2593 | +#define SHARED_LIBRARY_PROBER_REPORT_H |
2594 | + |
2595 | + |
2596 | +#endif // SHARED_LIBRARY_PROBER_REPORT_H |
2597 | |
2598 | === added file 'src/client/lttng/shared_library_prober_report_tp.h' |
2599 | --- src/client/lttng/shared_library_prober_report_tp.h 1970-01-01 00:00:00 +0000 |
2600 | +++ src/client/lttng/shared_library_prober_report_tp.h 2014-09-23 17:34:29 +0000 |
2601 | @@ -0,0 +1,85 @@ |
2602 | +/* |
2603 | + * Copyright © 2014 Canonical Ltd. |
2604 | + * |
2605 | + * This program is free software: you can redistribute it and/or modify |
2606 | + * it under the terms of the GNU Lesser General Public License version 3 as |
2607 | + * published by the Free Software Foundation. |
2608 | + * |
2609 | + * This program is distributed in the hope that it will be useful, |
2610 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of |
2611 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
2612 | + * GNU Lesser General Public License for more details. |
2613 | + * |
2614 | + * You should have received a copy of the GNU Lesser General Public License |
2615 | + * along with this program. If not, see <http://www.gnu.org/licenses/>. |
2616 | + * |
2617 | + * Authored by: Christopher James Halse Rogers <christopher.halse.rogers@canonical.com> |
2618 | + */ |
2619 | + |
2620 | +#undef TRACEPOINT_PROVIDER |
2621 | +#define TRACEPOINT_PROVIDER mir_client_shared_library_prober |
2622 | + |
2623 | +#undef TRACEPOINT_INCLUDE |
2624 | +#define TRACEPOINT_INCLUDE "./shared_library_prober_report_tp.h" |
2625 | + |
2626 | +#if !defined(MIR_CLIENT_LTTNG_SHARED_LIBRARY_PROBER_REPORT_TP_H_) || defined(TRACEPOINT_HEADER_MULTI_READ) |
2627 | +#define MIR_CLIENT_LTTNG_SHARED_LIBRARY_PROBER_REPORT_TP_H_ |
2628 | + |
2629 | +#include <lttng/tracepoint.h> |
2630 | +#include <stdint.h> |
2631 | + |
2632 | +#ifdef __clang__ |
2633 | +/* |
2634 | + * TRACEPOINT_EVENT defines functions; since we disable tracepoints under clang |
2635 | + * these functions are unused and so generate fatal warnings. |
2636 | + * (see mir_tracepoint.h and http://sourceware.org/bugzilla/show_bug.cgi?id=13974) |
2637 | + */ |
2638 | +#pragma clang diagnostic push |
2639 | +#pragma clang diagnostic warning "-Wunused-function" |
2640 | +#endif |
2641 | + |
2642 | +TRACEPOINT_EVENT( |
2643 | + mir_client_shared_library_prober, |
2644 | + probing_path, |
2645 | + TP_ARGS(const char*, path), |
2646 | + TP_FIELDS( |
2647 | + ctf_string(path, path) |
2648 | + ) |
2649 | +) |
2650 | + |
2651 | +TRACEPOINT_EVENT( |
2652 | + mir_client_shared_library_prober, |
2653 | + probing_failed, |
2654 | + TP_ARGS(const char*, path, const char*, message), |
2655 | + TP_FIELDS( |
2656 | + ctf_string(path, path) |
2657 | + ctf_string(message, message) |
2658 | + ) |
2659 | +) |
2660 | + |
2661 | +TRACEPOINT_EVENT( |
2662 | + mir_client_shared_library_prober, |
2663 | + loading_library, |
2664 | + TP_ARGS(const char*, path), |
2665 | + TP_FIELDS( |
2666 | + ctf_string(path, path) |
2667 | + ) |
2668 | +) |
2669 | + |
2670 | +TRACEPOINT_EVENT( |
2671 | + mir_client_shared_library_prober, |
2672 | + loading_failed, |
2673 | + TP_ARGS(const char*, path, const char*, message), |
2674 | + TP_FIELDS( |
2675 | + ctf_string(path, path) |
2676 | + ctf_string(message, message) |
2677 | + ) |
2678 | +) |
2679 | + |
2680 | +#ifdef __clang__ |
2681 | +#pragma clang diagnostic pop |
2682 | +#endif |
2683 | + |
2684 | +#endif /* MIR_CLIENT_LTTNG_SHARED_LIBRARY_PROBER_REPORT_TP_H_ */ |
2685 | + |
2686 | +#include <lttng/tracepoint-event.h> |
2687 | |
2688 | === modified file 'src/client/mesa/CMakeLists.txt' |
2689 | --- src/client/mesa/CMakeLists.txt 2014-08-27 19:44:04 +0000 |
2690 | +++ src/client/mesa/CMakeLists.txt 2014-09-23 17:34:29 +0000 |
2691 | @@ -25,7 +25,7 @@ |
2692 | |
2693 | set_target_properties( |
2694 | mirclientplatformmesa PROPERTIES |
2695 | - OUTPUT_NAME mirclientplatform |
2696 | + OUTPUT_NAME ${MIR_CLIENT_DRIVER} |
2697 | LIBRARY_OUTPUT_DIRECTORY ${LIBRARY_OUTPUT_PATH}/mesa |
2698 | LINK_FLAGS "-Wl,--exclude-libs=ALL -Wl,--version-script,${symbol_map}" |
2699 | ) |
2700 | @@ -36,19 +36,19 @@ |
2701 | ${DRM_LDFLAGS} ${DRM_LIBRARIES} |
2702 | ) |
2703 | |
2704 | -install(TARGETS mirclientplatformmesa LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/mir/clientplatform/mesa) |
2705 | +install(TARGETS mirclientplatformmesa LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/mir/${CLIENT_DRIVER}/mesa) |
2706 | |
2707 | if (MIR_TEST_PLATFORM STREQUAL "mesa") |
2708 | add_custom_command(TARGET mirclientplatformmesa |
2709 | POST_BUILD |
2710 | - COMMAND ${CMAKE_COMMAND} -E remove libmirclientplatform.so |
2711 | - COMMAND ${CMAKE_COMMAND} -E create_symlink mesa/$<TARGET_FILE_NAME:mirclientplatformmesa> libmirclientplatform.so |
2712 | + COMMAND ${CMAKE_COMMAND} -E remove ${MIR_CLIENT_DRIVER_BINARY} |
2713 | + COMMAND ${CMAKE_COMMAND} -E create_symlink mesa/$<TARGET_FILE_NAME:mirclientplatformmesa> ${MIR_CLIENT_DRIVER_BINARY} |
2714 | WORKING_DIRECTORY ${LIBRARY_OUTPUT_PATH} |
2715 | ) |
2716 | |
2717 | install(CODE |
2718 | "execute_process( |
2719 | - COMMAND ln -sf mir/clientplatform/mesa/libmirclientplatform.so |
2720 | + COMMAND ln -sf mir/${CLIENT_DRIVER}/mesa/${MIR_CLIENT_DRIVER_BINARY} |
2721 | WORKING_DIRECTORY \$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR} |
2722 | )" |
2723 | ) |
2724 | |
2725 | === modified file 'src/client/mir_connection.cpp' |
2726 | --- src/client/mir_connection.cpp 2014-08-29 13:12:16 +0000 |
2727 | +++ src/client/mir_connection.cpp 2014-09-23 17:34:29 +0000 |
2728 | @@ -222,12 +222,21 @@ |
2729 | { |
2730 | if (transition == mir_lifecycle_connection_lost) |
2731 | { |
2732 | +<<<<<<< TREE |
2733 | /* |
2734 | * We need to use kill() instead of raise() to ensure the signal |
2735 | * is dispatched to the process even if it's blocked in the current |
2736 | * thread. |
2737 | */ |
2738 | kill(getpid(), SIGTERM); |
2739 | +======= |
2740 | + /* |
2741 | + * We need to use kill() instead of raise() to ensure the signal |
2742 | + * is dispatched to the process even if it's blocked in the current |
2743 | + * thread. |
2744 | + */ |
2745 | + kill(getpid(), SIGHUP); |
2746 | +>>>>>>> MERGE-SOURCE |
2747 | } |
2748 | } |
2749 | } |
2750 | @@ -527,3 +536,8 @@ |
2751 | { |
2752 | return server; |
2753 | } |
2754 | + |
2755 | +std::shared_ptr<mir::logging::Logger> const& MirConnection::the_logger() const |
2756 | +{ |
2757 | + return logger; |
2758 | +} |
2759 | |
2760 | === modified file 'src/client/mir_connection.h' |
2761 | --- src/client/mir_connection.h 2014-08-29 13:12:16 +0000 |
2762 | +++ src/client/mir_connection.h 2014-09-23 17:34:29 +0000 |
2763 | @@ -134,6 +134,7 @@ |
2764 | } |
2765 | |
2766 | mir::protobuf::DisplayServer& display_server(); |
2767 | + std::shared_ptr<mir::logging::Logger> const& the_logger() const; |
2768 | |
2769 | private: |
2770 | // MUST be first data member so it is destroyed last. |
2771 | |
2772 | === modified file 'src/client/mir_surface.cpp' |
2773 | --- src/client/mir_surface.cpp 2014-08-04 16:58:57 +0000 |
2774 | +++ src/client/mir_surface.cpp 2014-09-23 17:34:29 +0000 |
2775 | @@ -24,6 +24,8 @@ |
2776 | #include "mir_connection.h" |
2777 | #include "mir/input/input_receiver_thread.h" |
2778 | #include "mir/input/input_platform.h" |
2779 | +#include "perf_report.h" |
2780 | +#include "logging/perf_report.h" |
2781 | |
2782 | #include <cassert> |
2783 | #include <unistd.h> |
2784 | @@ -54,6 +56,18 @@ |
2785 | buffer_depository(std::make_shared<mcl::ClientBufferDepository>(factory, mir::frontend::client_buffer_cache_size)), |
2786 | input_platform(input_platform) |
2787 | { |
2788 | + const char* report_target = getenv("MIR_CLIENT_PERF_REPORT"); |
2789 | + if (report_target && !strcmp(report_target, "log")) |
2790 | + { |
2791 | + auto& logger = connection->the_logger(); |
2792 | + perf_report = std::make_shared<mir::client::logging::PerfReport>(logger); |
2793 | + } |
2794 | + else |
2795 | + { |
2796 | + perf_report = std::make_shared<mir::client::NullPerfReport>(); |
2797 | + } |
2798 | + perf_report->name_surface(params.name); |
2799 | + |
2800 | for (int i = 0; i < mir_surface_attribs; i++) |
2801 | attrib_cache[i] = -1; |
2802 | |
2803 | @@ -159,6 +173,7 @@ |
2804 | release_cpu_region(); |
2805 | auto const id = &surface.id(); |
2806 | auto const mutable_buffer = surface.mutable_buffer(); |
2807 | + perf_report->end_frame(mutable_buffer->buffer_id()); |
2808 | lock.unlock(); |
2809 | |
2810 | next_buffer_wait_handle.expect_result(); |
2811 | @@ -209,6 +224,7 @@ |
2812 | buffer_depository->deposit_package(std::move(ipc_package), |
2813 | buffer.buffer_id(), |
2814 | surface_size, surface_pf); |
2815 | + perf_report->begin_frame(buffer.buffer_id()); |
2816 | } |
2817 | catch (const std::runtime_error& err) |
2818 | { |
2819 | |
2820 | === modified file 'src/client/mir_surface.h' |
2821 | --- src/client/mir_surface.h 2014-07-21 03:35:31 +0000 |
2822 | +++ src/client/mir_surface.h 2014-09-23 17:34:29 +0000 |
2823 | @@ -47,6 +47,7 @@ |
2824 | namespace client |
2825 | { |
2826 | class ClientBuffer; |
2827 | +class PerfReport; |
2828 | |
2829 | struct MemoryRegion; |
2830 | } |
2831 | @@ -139,6 +140,7 @@ |
2832 | |
2833 | std::function<void(MirEvent const*)> handle_event_callback; |
2834 | std::shared_ptr<mir::input::receiver::InputReceiverThread> input_thread; |
2835 | + std::shared_ptr<mir::client::PerfReport> perf_report; |
2836 | }; |
2837 | |
2838 | #endif /* MIR_CLIENT_PRIVATE_MIR_WAIT_HANDLE_H_ */ |
2839 | |
2840 | === added file 'src/client/perf_report.h' |
2841 | --- src/client/perf_report.h 1970-01-01 00:00:00 +0000 |
2842 | +++ src/client/perf_report.h 2014-09-23 17:34:29 +0000 |
2843 | @@ -0,0 +1,47 @@ |
2844 | +/* |
2845 | + * Copyright © 2014 Canonical Ltd. |
2846 | + * |
2847 | + * This program is free software: you can redistribute it and/or modify it |
2848 | + * under the terms of the GNU Lesser General Public License version 3, |
2849 | + * as published by the Free Software Foundation. |
2850 | + * |
2851 | + * This program is distributed in the hope that it will be useful, |
2852 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of |
2853 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
2854 | + * GNU Lesser General Public License for more details. |
2855 | + * |
2856 | + * You should have received a copy of the GNU Lesser General Public License |
2857 | + * along with this program. If not, see <http://www.gnu.org/licenses/>. |
2858 | + * |
2859 | + * Authored by: Daniel van Vugt <daniel.van.vugt@canonical.com> |
2860 | + */ |
2861 | + |
2862 | +#ifndef MIR_CLIENT_PERF_REPORT_H_ |
2863 | +#define MIR_CLIENT_PERF_REPORT_H_ |
2864 | + |
2865 | +namespace mir |
2866 | +{ |
2867 | +namespace client |
2868 | +{ |
2869 | + |
2870 | +class PerfReport |
2871 | +{ |
2872 | +public: |
2873 | + virtual ~PerfReport() = default; |
2874 | + virtual void name_surface(char const*) = 0; |
2875 | + virtual void begin_frame(int buffer_id) = 0; |
2876 | + virtual void end_frame(int buffer_id) = 0; |
2877 | +}; |
2878 | + |
2879 | +class NullPerfReport : public PerfReport |
2880 | +{ |
2881 | +public: |
2882 | + virtual void name_surface(char const*) {} |
2883 | + void begin_frame(int) override {} |
2884 | + void end_frame(int) override {} |
2885 | +}; |
2886 | + |
2887 | +} // namespace client |
2888 | +} // namespace mir |
2889 | + |
2890 | +#endif // MIR_CLIENT_PERF_REPORT_H_ |
2891 | |
2892 | === added file 'src/client/periodic_perf_report.cpp' |
2893 | --- src/client/periodic_perf_report.cpp 1970-01-01 00:00:00 +0000 |
2894 | +++ src/client/periodic_perf_report.cpp 2014-09-23 17:34:29 +0000 |
2895 | @@ -0,0 +1,98 @@ |
2896 | +/* |
2897 | + * Copyright © 2014 Canonical Ltd. |
2898 | + * |
2899 | + * This program is free software: you can redistribute it and/or modify it |
2900 | + * under the terms of the GNU Lesser General Public License version 3, |
2901 | + * as published by the Free Software Foundation. |
2902 | + * |
2903 | + * This program is distributed in the hope that it will be useful, |
2904 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of |
2905 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
2906 | + * GNU Lesser General Public License for more details. |
2907 | + * |
2908 | + * You should have received a copy of the GNU Lesser General Public License |
2909 | + * along with this program. If not, see <http://www.gnu.org/licenses/>. |
2910 | + * |
2911 | + * Authored by: Daniel van Vugt <daniel.van.vugt@canonical.com> |
2912 | + */ |
2913 | + |
2914 | +#include "periodic_perf_report.h" |
2915 | + |
2916 | +using namespace mir::client; |
2917 | + |
2918 | +PeriodicPerfReport::PeriodicPerfReport(mir::time::Duration period, |
2919 | + std::shared_ptr<mir::time::Clock> const& clock) |
2920 | + : clock(clock) |
2921 | + , report_interval(period) |
2922 | + , last_report_time(current_time()) |
2923 | +{ |
2924 | +} |
2925 | + |
2926 | +PeriodicPerfReport::Timestamp PeriodicPerfReport::current_time() const |
2927 | +{ |
2928 | + return clock->sample(); |
2929 | +} |
2930 | + |
2931 | +void PeriodicPerfReport::name_surface(char const* s) |
2932 | +{ |
2933 | + name = s ? s : "?"; |
2934 | +} |
2935 | + |
2936 | +void PeriodicPerfReport::begin_frame(int buffer_id) |
2937 | +{ |
2938 | + frame_begin_time = current_time(); |
2939 | + |
2940 | + if (buffer_end_time.find(buffer_id) != buffer_end_time.end()) |
2941 | + { |
2942 | + // Estimate page flip (composition finished) time as the time we |
2943 | + // eventually get the same buffer back. |
2944 | + auto estimated_page_flip_time = frame_begin_time; |
2945 | + auto buffer_queue_latency = estimated_page_flip_time - |
2946 | + buffer_end_time[buffer_id]; |
2947 | + buffer_queue_latency_sum += buffer_queue_latency; |
2948 | + } |
2949 | +} |
2950 | + |
2951 | +void PeriodicPerfReport::end_frame(int buffer_id) |
2952 | +{ |
2953 | + auto now = buffer_end_time[buffer_id] = current_time(); |
2954 | + auto render_time = now - frame_begin_time; |
2955 | + render_time_sum += render_time; |
2956 | + ++frame_count; |
2957 | + |
2958 | + auto interval = now - last_report_time; |
2959 | + |
2960 | + if (interval >= report_interval) |
2961 | + { // Precision matters. Don't use floats. |
2962 | + using namespace std::chrono; |
2963 | + |
2964 | + // FPS x 100, remembering to keep millisecond accuracy. |
2965 | + long fps_100 = frame_count * 100000L / |
2966 | + duration_cast<milliseconds>(interval).count(); |
2967 | + |
2968 | + auto render_time_avg = render_time_sum / frame_count; |
2969 | + auto queue_lag_avg = buffer_queue_latency_sum / frame_count; |
2970 | + |
2971 | + // Remove history of old buffer ids |
2972 | + auto i = buffer_end_time.begin(); |
2973 | + while (i != buffer_end_time.end()) |
2974 | + { |
2975 | + if ((now - i->second) >= report_interval) |
2976 | + i = buffer_end_time.erase(i); |
2977 | + else |
2978 | + ++i; |
2979 | + } |
2980 | + int nbuffers = buffer_end_time.size(); |
2981 | + |
2982 | + display(name.c_str(), fps_100, |
2983 | + duration_cast<microseconds>(render_time_avg).count(), |
2984 | + duration_cast<microseconds>(queue_lag_avg).count(), |
2985 | + nbuffers); |
2986 | + |
2987 | + last_report_time = now; |
2988 | + frame_count = 0; |
2989 | + render_time_sum = render_time_sum.zero(); |
2990 | + buffer_queue_latency_sum = buffer_queue_latency_sum.zero(); |
2991 | + } |
2992 | +} |
2993 | + |
2994 | |
2995 | === added file 'src/client/periodic_perf_report.h' |
2996 | --- src/client/periodic_perf_report.h 1970-01-01 00:00:00 +0000 |
2997 | +++ src/client/periodic_perf_report.h 2014-09-23 17:34:29 +0000 |
2998 | @@ -0,0 +1,64 @@ |
2999 | +/* |
3000 | + * Copyright © 2014 Canonical Ltd. |
3001 | + * |
3002 | + * This program is free software: you can redistribute it and/or modify it |
3003 | + * under the terms of the GNU Lesser General Public License version 3, |
3004 | + * as published by the Free Software Foundation. |
3005 | + * |
3006 | + * This program is distributed in the hope that it will be useful, |
3007 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of |
3008 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
3009 | + * GNU Lesser General Public License for more details. |
3010 | + * |
3011 | + * You should have received a copy of the GNU Lesser General Public License |
3012 | + * along with this program. If not, see <http://www.gnu.org/licenses/>. |
3013 | + * |
3014 | + * Authored by: Daniel van Vugt <daniel.van.vugt@canonical.com> |
3015 | + */ |
3016 | + |
3017 | +#ifndef MIR_CLIENT_PERIODIC_PERF_REPORT_H_ |
3018 | +#define MIR_CLIENT_PERIODIC_PERF_REPORT_H_ |
3019 | + |
3020 | +#include "perf_report.h" |
3021 | +#include "mir/time/clock.h" |
3022 | +#include <chrono> |
3023 | +#include <memory> |
3024 | +#include <string> |
3025 | +#include <unordered_map> |
3026 | + |
3027 | +namespace mir |
3028 | +{ |
3029 | +namespace client |
3030 | +{ |
3031 | + |
3032 | +class PeriodicPerfReport : public PerfReport |
3033 | +{ |
3034 | +public: |
3035 | + PeriodicPerfReport(mir::time::Duration period, |
3036 | + std::shared_ptr<mir::time::Clock> const& clock); |
3037 | + void name_surface(char const*) override; |
3038 | + void begin_frame(int buffer_id) override; |
3039 | + void end_frame(int buffer_id) override; |
3040 | + virtual void display(const char *name, long fps100, |
3041 | + long rendertime_usec, long lag_usec, |
3042 | + int nbuffers) const = 0; |
3043 | +private: |
3044 | + typedef mir::time::Duration Duration; |
3045 | + typedef mir::time::Timestamp Timestamp; |
3046 | + Timestamp current_time() const; |
3047 | + std::shared_ptr<mir::time::Clock> const clock; |
3048 | + Duration const report_interval; |
3049 | + std::string name; |
3050 | + Timestamp last_report_time; |
3051 | + Timestamp frame_begin_time; |
3052 | + Timestamp frame_end_time; |
3053 | + Duration render_time_sum = Duration::zero(); |
3054 | + Duration buffer_queue_latency_sum = Duration::zero(); |
3055 | + int frame_count = 0; |
3056 | + std::unordered_map<int,Timestamp> buffer_end_time; |
3057 | +}; |
3058 | + |
3059 | +} // namespace client |
3060 | +} // namespace mir |
3061 | + |
3062 | +#endif // MIR_CLIENT_PERIODIC_PERF_REPORT_H_ |
3063 | |
3064 | === renamed directory 'src/shared' => 'src/common' |
3065 | === modified file 'src/common/CMakeLists.txt' |
3066 | --- src/shared/CMakeLists.txt 2014-08-27 19:44:04 +0000 |
3067 | +++ src/common/CMakeLists.txt 2014-09-23 17:34:29 +0000 |
3068 | @@ -15,6 +15,8 @@ |
3069 | add_subdirectory(env) |
3070 | add_subdirectory(sharedlibrary) |
3071 | add_subdirectory(thread) |
3072 | +add_subdirectory(time) |
3073 | +list(APPEND MIR_COMMON_SOURCES $<TARGET_OBJECTS:mirtime>) |
3074 | |
3075 | set(PREFIX "${CMAKE_INSTALL_PREFIX}") |
3076 | set(EXEC_PREFIX "${CMAKE_INSTALL_PREFIX}") |
3077 | @@ -40,8 +42,13 @@ |
3078 | ) |
3079 | |
3080 | # TODO we need a place to manage ABI and related versioning but use this as placeholder |
3081 | +<<<<<<< TREE |
3082 | set(MIRCOMMON_ABI 1) |
3083 | set(symbol_map ${CMAKE_CURRENT_SOURCE_DIR}/symbols.map) |
3084 | +======= |
3085 | +set(MIRCOMMON_ABI 2) |
3086 | +set(symbol_map ${CMAKE_CURRENT_SOURCE_DIR}/symbols.map) |
3087 | +>>>>>>> MERGE-SOURCE |
3088 | |
3089 | set_target_properties(mircommon |
3090 | |
3091 | @@ -53,7 +60,7 @@ |
3092 | install(TARGETS mircommon LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) |
3093 | |
3094 | install( |
3095 | - DIRECTORY ${CMAKE_SOURCE_DIR}/include/shared/mir ${CMAKE_SOURCE_DIR}/include/shared/mir_toolkit |
3096 | + DIRECTORY ${CMAKE_SOURCE_DIR}/include/common/mir ${CMAKE_SOURCE_DIR}/include/common/mir_toolkit |
3097 | DESTINATION "include/mircommon" |
3098 | ) |
3099 | |
3100 | |
3101 | === modified file 'src/common/fd/CMakeLists.txt' |
3102 | --- src/shared/fd/CMakeLists.txt 2014-07-24 11:41:11 +0000 |
3103 | +++ src/common/fd/CMakeLists.txt 2014-09-23 17:34:29 +0000 |
3104 | @@ -16,10 +16,11 @@ |
3105 | |
3106 | add_library(mirsharedfd OBJECT |
3107 | fd.cpp |
3108 | + fd_socket_transmission.cpp |
3109 | ) |
3110 | |
3111 | list(APPEND MIR_COMMON_SOURCES |
3112 | $<TARGET_OBJECTS:mirsharedfd> |
3113 | ) |
3114 | |
3115 | -set(MIR_COMMON_SOURCES ${MIR_COMMON_SOURCES} PARENT_SCOPE) |
3116 | \ No newline at end of file |
3117 | +set(MIR_COMMON_SOURCES ${MIR_COMMON_SOURCES} PARENT_SCOPE) |
3118 | |
3119 | === added file 'src/common/fd/fd_socket_transmission.cpp' |
3120 | --- src/common/fd/fd_socket_transmission.cpp 1970-01-01 00:00:00 +0000 |
3121 | +++ src/common/fd/fd_socket_transmission.cpp 2014-09-23 17:34:29 +0000 |
3122 | @@ -0,0 +1,72 @@ |
3123 | +/* |
3124 | + * Copyright © 2014 Canonical Ltd. |
3125 | + * |
3126 | + * This program is free software: you can redistribute it and/or modify it |
3127 | + * under the terms of the GNU Lesser General Public License version 3, |
3128 | + * as published by the Free Software Foundation. |
3129 | + * |
3130 | + * This program is distributed in the hope that it will be useful, |
3131 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of |
3132 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
3133 | + * GNU Lesser General Public License for more details. |
3134 | + * |
3135 | + * You should have received a copy of the GNU Lesser General Public License |
3136 | + * along with this program. If not, see <http://www.gnu.org/licenses/>. |
3137 | + * |
3138 | + * Authored by: Kevin DuBois <kevin.dubois@canonical.com> |
3139 | + */ |
3140 | + |
3141 | +#include "mir/fd_socket_transmission.h" |
3142 | +#include "mir/variable_length_array.h" |
3143 | +#include <sys/types.h> |
3144 | +#include <sys/socket.h> |
3145 | +#include <string.h> |
3146 | +#include <boost/throw_exception.hpp> |
3147 | +#include <stdexcept> |
3148 | + |
3149 | +void mir::send_fds( |
3150 | + mir::Fd const& socket, |
3151 | + std::vector<mir::Fd> const& fds) |
3152 | +{ |
3153 | + if (fds.size() > 0) |
3154 | + { |
3155 | + // We send dummy data |
3156 | + struct iovec iov; |
3157 | + char dummy_iov_data = 'M'; |
3158 | + iov.iov_base = &dummy_iov_data; |
3159 | + iov.iov_len = 1; |
3160 | + |
3161 | + // Allocate space for control message |
3162 | + static auto const builtin_n_fds = 5; |
3163 | + static auto const builtin_cmsg_space = CMSG_SPACE(builtin_n_fds * sizeof(int)); |
3164 | + auto const fds_bytes = fds.size() * sizeof(int); |
3165 | + mir::VariableLengthArray<builtin_cmsg_space> control{CMSG_SPACE(fds_bytes)}; |
3166 | + // Silence valgrind uninitialized memory complaint |
3167 | + memset(control.data(), 0, control.size()); |
3168 | + |
3169 | + // Message to send |
3170 | + struct msghdr header; |
3171 | + header.msg_name = NULL; |
3172 | + header.msg_namelen = 0; |
3173 | + header.msg_iov = &iov; |
3174 | + header.msg_iovlen = 1; |
3175 | + header.msg_controllen = control.size(); |
3176 | + header.msg_control = control.data(); |
3177 | + header.msg_flags = 0; |
3178 | + |
3179 | + // Control message contains file descriptors |
3180 | + struct cmsghdr *message = CMSG_FIRSTHDR(&header); |
3181 | + message->cmsg_len = CMSG_LEN(fds_bytes); |
3182 | + message->cmsg_level = SOL_SOCKET; |
3183 | + message->cmsg_type = SCM_RIGHTS; |
3184 | + |
3185 | + int* const data = reinterpret_cast<int*>(CMSG_DATA(message)); |
3186 | + int i = 0; |
3187 | + for (auto& fd : fds) |
3188 | + data[i++] = fd; |
3189 | + |
3190 | + auto const sent = sendmsg(socket, &header, 0); |
3191 | + if (sent < 0) |
3192 | + BOOST_THROW_EXCEPTION(std::runtime_error("Failed to send fds: " + std::string(strerror(errno)))); |
3193 | + } |
3194 | +} |
3195 | |
3196 | === modified file 'src/common/logging/CMakeLists.txt' |
3197 | --- src/shared/logging/CMakeLists.txt 2014-07-24 11:30:35 +0000 |
3198 | +++ src/common/logging/CMakeLists.txt 2014-09-23 17:34:29 +0000 |
3199 | @@ -17,6 +17,7 @@ |
3200 | add_library(mirsharedlogging OBJECT |
3201 | dumb_console_logger.cpp |
3202 | input_timestamp.cpp |
3203 | + shared_library_prober_report.cpp |
3204 | ) |
3205 | |
3206 | list(APPEND MIR_COMMON_SOURCES |
3207 | |
3208 | === added file 'src/common/logging/shared_library_prober_report.cpp' |
3209 | --- src/common/logging/shared_library_prober_report.cpp 1970-01-01 00:00:00 +0000 |
3210 | +++ src/common/logging/shared_library_prober_report.cpp 2014-09-23 17:34:29 +0000 |
3211 | @@ -0,0 +1,58 @@ |
3212 | + |
3213 | +/* |
3214 | + * Copyright © 2014 Canonical Ltd. |
3215 | + * |
3216 | + * This program is free software: you can redistribute it and/or modify |
3217 | + * it under the terms of the GNU Lesser General Public License version 3 as |
3218 | + * published by the Free Software Foundation. |
3219 | + * |
3220 | + * This program is distributed in the hope that it will be useful, |
3221 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of |
3222 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
3223 | + * GNU Lesser General Public License for more details. |
3224 | + * |
3225 | + * You should have received a copy of the GNU Lesser General Public License |
3226 | + * along with this program. If not, see <http://www.gnu.org/licenses/>. |
3227 | + * |
3228 | + * Authored by: Christopher James Halse Rogers <christopher.halse.rogers@canonical.com> |
3229 | + */ |
3230 | + |
3231 | +#include "mir/logging/shared_library_prober_report.h" |
3232 | +#include "mir/logging/logger.h" |
3233 | + |
3234 | +namespace ml = mir::logging; |
3235 | + |
3236 | +ml::SharedLibraryProberReport::SharedLibraryProberReport(std::shared_ptr<Logger> const& logger) |
3237 | + : logger{logger} |
3238 | +{ |
3239 | +} |
3240 | + |
3241 | +void ml::SharedLibraryProberReport::probing_path(boost::filesystem::path const& path) |
3242 | +{ |
3243 | + logger->log(ml::Logger::Severity::informational, |
3244 | + std::string("Loading modules from: ") + path.string(), |
3245 | + "Loader"); |
3246 | +} |
3247 | + |
3248 | +void ml::SharedLibraryProberReport::probing_failed(boost::filesystem::path const& path, std::exception const& error) |
3249 | +{ |
3250 | + logger->log(ml::Logger::Severity::error, |
3251 | + std::string("Failed to load libraries from path: ") + path.string() + |
3252 | + " (error was:" + error.what() + ")", |
3253 | + "Loader"); |
3254 | +} |
3255 | + |
3256 | +void ml::SharedLibraryProberReport::loading_library(boost::filesystem::path const& filename) |
3257 | +{ |
3258 | + logger->log(ml::Logger::Severity::informational, |
3259 | + std::string("Loading module: ") + filename.string(), |
3260 | + "Loader"); |
3261 | +} |
3262 | + |
3263 | +void ml::SharedLibraryProberReport::loading_failed(boost::filesystem::path const& filename, std::exception const& error) |
3264 | +{ |
3265 | + logger->log(ml::Logger::Severity::warning, |
3266 | + std::string("Failed to load module: ") + filename.string() + |
3267 | + " (error was:" + error.what() + ")", |
3268 | + "Loader"); |
3269 | +} |
3270 | |
3271 | === modified file 'src/common/protobuf/mir_protobuf.proto' |
3272 | --- src/shared/protobuf/mir_protobuf.proto 2014-07-21 03:35:31 +0000 |
3273 | +++ src/common/protobuf/mir_protobuf.proto 2014-09-23 17:34:29 +0000 |
3274 | @@ -25,6 +25,11 @@ |
3275 | required int32 value = 1; |
3276 | }; |
3277 | |
3278 | +message BufferRequest { |
3279 | + optional SurfaceId id = 1; |
3280 | + optional Buffer buffer = 2; |
3281 | +}; |
3282 | + |
3283 | message Buffer { |
3284 | optional int32 buffer_id = 1; |
3285 | repeated sint32 fd = 2; |
3286 | @@ -221,4 +226,5 @@ |
3287 | |
3288 | rpc start_prompt_session(PromptSessionParameters) returns (Void); |
3289 | rpc stop_prompt_session(Void) returns (Void); |
3290 | + rpc exchange_buffer(BufferRequest) returns (Buffer); |
3291 | } |
3292 | |
3293 | === modified file 'src/common/sharedlibrary/CMakeLists.txt' |
3294 | --- src/shared/sharedlibrary/CMakeLists.txt 2014-07-24 11:30:35 +0000 |
3295 | +++ src/common/sharedlibrary/CMakeLists.txt 2014-09-23 17:34:29 +0000 |
3296 | @@ -16,6 +16,7 @@ |
3297 | |
3298 | add_library(mirsharedsharedlibrary OBJECT |
3299 | shared_library.cpp |
3300 | + shared_library_prober.cpp |
3301 | ) |
3302 | |
3303 | list(APPEND MIR_COMMON_SOURCES |
3304 | |
3305 | === modified file 'src/common/sharedlibrary/shared_library.cpp' |
3306 | --- src/shared/sharedlibrary/shared_library.cpp 2014-03-06 06:05:17 +0000 |
3307 | +++ src/common/sharedlibrary/shared_library.cpp 2014-09-23 17:34:29 +0000 |
3308 | @@ -53,3 +53,15 @@ |
3309 | BOOST_THROW_EXCEPTION(std::runtime_error(dlerror())); |
3310 | } |
3311 | } |
3312 | + |
3313 | +void* mir::SharedLibrary::load_symbol(char const* function_name, char const* version) const |
3314 | +{ |
3315 | + if (void* result = dlvsym(so, function_name, version)) |
3316 | + { |
3317 | + return result; |
3318 | + } |
3319 | + else |
3320 | + { |
3321 | + BOOST_THROW_EXCEPTION(std::runtime_error(dlerror())); |
3322 | + } |
3323 | +} |
3324 | |
3325 | === added file 'src/common/sharedlibrary/shared_library_prober.cpp' |
3326 | --- src/common/sharedlibrary/shared_library_prober.cpp 1970-01-01 00:00:00 +0000 |
3327 | +++ src/common/sharedlibrary/shared_library_prober.cpp 2014-09-23 17:34:29 +0000 |
3328 | @@ -0,0 +1,74 @@ |
3329 | +/* |
3330 | + * Copyright © 2014 Canonical Ltd. |
3331 | + * |
3332 | + * This program is free software: you can redistribute it and/or modify it |
3333 | + * under the terms of the GNU Lesser General Public License version 3, |
3334 | + * as published by the Free Software Foundation. |
3335 | + * |
3336 | + * This program is distributed in the hope that it will be useful, |
3337 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of |
3338 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
3339 | + * GNU Lesser General Public License for more details. |
3340 | + * |
3341 | + * You should have received a copy of the GNU Lesser General Public License |
3342 | + * along with this program. If not, see <http://www.gnu.org/licenses/>. |
3343 | + * |
3344 | + * Authored by: Christopher James Halse Rogers <christopher.halse.rogers@canonical.com> |
3345 | + */ |
3346 | + |
3347 | +#include "mir/shared_library_prober.h" |
3348 | +#include "mir/shared_library.h" |
3349 | + |
3350 | +#include <system_error> |
3351 | +#include <boost/filesystem.hpp> |
3352 | + |
3353 | +namespace |
3354 | +{ |
3355 | +std::error_code boost_to_std_error(boost::system::error_code const& ec) |
3356 | +{ |
3357 | + if (ec) |
3358 | + { |
3359 | + if (ec.category() != boost::system::system_category()) |
3360 | + { |
3361 | + throw std::logic_error{"Boost error from unexpected category: " + |
3362 | + ec.message()}; |
3363 | + } |
3364 | + return std::error_code{ec.value(), std::system_category()}; |
3365 | + } |
3366 | + return std::error_code{}; |
3367 | +} |
3368 | +} |
3369 | + |
3370 | +std::vector<std::shared_ptr<mir::SharedLibrary>> |
3371 | +mir::libraries_for_path(std::string const& path, mir::SharedLibraryProberReport& report) |
3372 | +{ |
3373 | + report.probing_path(path); |
3374 | + // We use the error_code overload because we want to throw a std::system_error |
3375 | + boost::system::error_code ec; |
3376 | + |
3377 | + boost::filesystem::directory_iterator iterator{path, ec}; |
3378 | + if (ec) |
3379 | + { |
3380 | + std::system_error error{boost_to_std_error(ec)}; |
3381 | + report.probing_failed(path, error); |
3382 | + throw error; |
3383 | + } |
3384 | + |
3385 | + std::vector<std::shared_ptr<mir::SharedLibrary>> libraries; |
3386 | + for (; iterator != boost::filesystem::directory_iterator() ; ++iterator) |
3387 | + { |
3388 | + if (iterator->path().extension().string() == ".so") |
3389 | + { |
3390 | + try |
3391 | + { |
3392 | + report.loading_library(iterator->path()); |
3393 | + libraries.emplace_back(std::make_shared<mir::SharedLibrary>(iterator->path().string())); |
3394 | + } |
3395 | + catch (std::runtime_error const& err) |
3396 | + { |
3397 | + report.loading_failed(iterator->path(), err); |
3398 | + } |
3399 | + } |
3400 | + } |
3401 | + return libraries; |
3402 | +} |
3403 | |
3404 | === modified file 'src/common/symbols.map' |
3405 | --- src/shared/symbols.map 2014-08-26 15:02:57 +0000 |
3406 | +++ src/common/symbols.map 2014-09-23 17:34:29 +0000 |
3407 | @@ -1,3 +1,4 @@ |
3408 | +<<<<<<< TREE |
3409 | MIR_COMMON_1 { |
3410 | global: |
3411 | extern "C++" { |
3412 | @@ -957,3 +958,1012 @@ |
3413 | }; |
3414 | local: *; |
3415 | }; |
3416 | +======= |
3417 | +MIR_COMMON_2 { |
3418 | + global: |
3419 | + extern "C++" { |
3420 | +# The following symbols come from running a script over the generated docs. Vis: |
3421 | +# ../tools/process_doxygen_xml.py doc/xml/*.xml | grep "^mircommon public" | sed "s/mircommon public: / /" | sort |
3422 | + mir_arrow_cursor_name*; |
3423 | + mir_busy_cursor_name*; |
3424 | + mir_caret_cursor_name*; |
3425 | + mir_closed_hand_cursor_name*; |
3426 | + mir_default_cursor_name*; |
3427 | + mir::default_server_socket*; |
3428 | + mir_diagonal_resize_bottom_to_top_cursor_name*; |
3429 | + mir_diagonal_resize_top_to_bottom_cursor_name*; |
3430 | + mir_disabled_cursor_name*; |
3431 | + mir::Fd::Fd*; |
3432 | + mir::Fd::invalid*; |
3433 | + mir::Fd::operator*; |
3434 | + mir::frontend::client_buffer_cache_size*; |
3435 | + mir::frontend::serialization_buffer_size*; |
3436 | + mir::geometry::Displacement::Displacement*; |
3437 | + mir::geometry::Displacement::operator*; |
3438 | + mir::geometry::Length::Length*; |
3439 | + mir::geometry::Length::operator*; |
3440 | + mir::geometry::operator*; |
3441 | + mir::geometry::Point::operator*; |
3442 | + mir::geometry::Point::Point*; |
3443 | + mir::geometry::Rectangle::bottom_left*; |
3444 | + mir::geometry::Rectangle::bottom_right*; |
3445 | + mir::geometry::Rectangle::contains*; |
3446 | + mir::geometry::Rectangle::intersection_with*; |
3447 | + mir::geometry::Rectangle::overlaps*; |
3448 | + mir::geometry::Rectangle::Rectangle*; |
3449 | + mir::geometry::Rectangles::add*; |
3450 | + mir::geometry::Rectangles::begin*; |
3451 | + mir::geometry::Rectangles::bounding_rectangle*; |
3452 | + mir::geometry::Rectangles::clear*; |
3453 | + mir::geometry::Rectangles::confine*; |
3454 | + mir::geometry::Rectangles::end*; |
3455 | + mir::geometry::Rectangles::operator*; |
3456 | + mir::geometry::Rectangles::Rectangles*; |
3457 | + mir::geometry::Rectangles::size*; |
3458 | + mir::geometry::Rectangle::top_right*; |
3459 | + mir::geometry::Size::operator*; |
3460 | + mir::geometry::Size::Size*; |
3461 | + mir::graphics::android::AndroidDriverInterpreter::AndroidDriverInterpreter*; |
3462 | + mir::graphics::android::AndroidDriverInterpreter::dispatch_driver_request_format*; |
3463 | + mir::graphics::android::AndroidDriverInterpreter::driver_requests_buffer*; |
3464 | + mir::graphics::android::AndroidDriverInterpreter::driver_requests_info*; |
3465 | + mir::graphics::android::AndroidDriverInterpreter::driver_returns_buffer*; |
3466 | + mir::graphics::android::AndroidDriverInterpreter::operator*; |
3467 | + mir::graphics::android::AndroidDriverInterpreter::sync_to_display*; |
3468 | + mir::graphics::android::AndroidNativeBuffer::AndroidNativeBuffer*; |
3469 | + mir::graphics::android::AndroidNativeBuffer::anwb*; |
3470 | + mir::graphics::android::AndroidNativeBuffer::copy_fence*; |
3471 | + mir::graphics::android::AndroidNativeBuffer::ensure_available_for*; |
3472 | + mir::graphics::android::AndroidNativeBuffer::handle*; |
3473 | + mir::graphics::android::AndroidNativeBuffer::update_usage*; |
3474 | + mir::graphics::android::Fence::copy_native_handle*; |
3475 | + mir::graphics::android::Fence::?Fence*; |
3476 | + mir::graphics::android::Fence::Fence*; |
3477 | + mir::graphics::android::Fence::merge_with*; |
3478 | + mir::graphics::android::Fence::operator*; |
3479 | + mir::graphics::android::Fence::wait*; |
3480 | + mir::graphics::android::MirNativeWindow::cancelBuffer*; |
3481 | + mir::graphics::android::MirNativeWindow::dequeueBuffer*; |
3482 | + mir::graphics::android::MirNativeWindow::dequeueBufferAndWait*; |
3483 | + mir::graphics::android::MirNativeWindow::MirNativeWindow*; |
3484 | + mir::graphics::android::MirNativeWindow::perform*; |
3485 | + mir::graphics::android::MirNativeWindow::query*; |
3486 | + mir::graphics::android::MirNativeWindow::queueBuffer*; |
3487 | + mir::graphics::android::MirNativeWindow::setSwapInterval*; |
3488 | + mir::graphics::android::RealSyncFileOps::close*; |
3489 | + mir::graphics::android::RealSyncFileOps::dup*; |
3490 | + mir::graphics::android::RealSyncFileOps::ioctl*; |
3491 | + mir::graphics::android::RefCountedNativeBuffer::driver_dereference*; |
3492 | + mir::graphics::android::RefCountedNativeBuffer::driver_reference*; |
3493 | + mir::graphics::android::RefCountedNativeBuffer::mir_dereference*; |
3494 | + mir::graphics::android::RefCountedNativeBuffer::RefCountedNativeBuffer*; |
3495 | + mir::graphics::android::SyncFence::copy_native_handle*; |
3496 | + mir::graphics::android::SyncFence::merge_with*; |
3497 | + mir::graphics::android::SyncFence::SyncFence*; |
3498 | + mir::graphics::android::SyncFence::wait*; |
3499 | + mir::graphics::android::SyncFileOps::close*; |
3500 | + mir::graphics::android::SyncFileOps::dup*; |
3501 | + mir::graphics::android::SyncFileOps::ioctl*; |
3502 | + mir::graphics::android::SyncFileOps::?SyncFileOps*; |
3503 | + mir::graphics::NativeBuffer::anwb*; |
3504 | + mir::graphics::NativeBuffer::copy_fence*; |
3505 | + mir::graphics::NativeBuffer::ensure_available_for*; |
3506 | + mir::graphics::NativeBuffer::handle*; |
3507 | + mir::graphics::NativeBuffer::?NativeBuffer*; |
3508 | + mir::graphics::NativeBuffer::NativeBuffer*; |
3509 | + mir::graphics::NativeBuffer::operator*; |
3510 | + mir::graphics::NativeBuffer::update_usage*; |
3511 | + mir_horizontal_resize_cursor_name*; |
3512 | + mir_hsplit_resize_cursor_name*; |
3513 | + mir::input::android::Lexicon::translate*; |
3514 | + mir::input::receiver::android::AndroidInputPlatform::?AndroidInputPlatform*; |
3515 | + mir::input::receiver::android::AndroidInputPlatform::AndroidInputPlatform*; |
3516 | + mir::input::receiver::android::AndroidInputPlatform::create_input_thread*; |
3517 | + mir::input::receiver::android::AndroidInputPlatform::operator*; |
3518 | + mir::input::receiver::android::InputReceiver::fd*; |
3519 | + mir::input::receiver::android::InputReceiver::?InputReceiver*; |
3520 | + mir::input::receiver::android::InputReceiver::InputReceiver*; |
3521 | + mir::input::receiver::android::InputReceiver::next_event*; |
3522 | + mir::input::receiver::android::InputReceiver::operator*; |
3523 | + mir::input::receiver::android::InputReceiverThread::?InputReceiverThread*; |
3524 | + mir::input::receiver::android::InputReceiverThread::InputReceiverThread*; |
3525 | + mir::input::receiver::android::InputReceiverThread::join*; |
3526 | + mir::input::receiver::android::InputReceiverThread::operator*; |
3527 | + mir::input::receiver::android::InputReceiverThread::start*; |
3528 | + mir::input::receiver::android::InputReceiverThread::stop*; |
3529 | + mir::input::receiver::android::InputReceiver::wake*; |
3530 | + mir::input::receiver::InputPlatform::create*; |
3531 | + mir::input::receiver::InputPlatform::create_input_thread*; |
3532 | + mir::input::receiver::InputPlatform::InputPlatform*; |
3533 | + mir::input::receiver::InputPlatform::operator*; |
3534 | + mir::input::receiver::InputReceiverReport::?InputReceiverReport*; |
3535 | + mir::input::receiver::InputReceiverReport::InputReceiverReport*; |
3536 | + mir::input::receiver::InputReceiverReport::operator*; |
3537 | + mir::input::receiver::InputReceiverReport::received_event*; |
3538 | + mir::input::receiver::InputReceiverThread::InputReceiverThread*; |
3539 | + mir::input::receiver::InputReceiverThread::join*; |
3540 | + mir::input::receiver::InputReceiverThread::operator*; |
3541 | + mir::input::receiver::InputReceiverThread::start*; |
3542 | + mir::input::receiver::InputReceiverThread::stop*; |
3543 | + mir::input::receiver::NullInputReceiverReport::?NullInputReceiverReport*; |
3544 | + mir::input::receiver::NullInputReceiverReport::NullInputReceiverReport*; |
3545 | + mir::input::receiver::XKBMapper::operator*; |
3546 | + mir::input::receiver::XKBMapper::update_state_and_map_event*; |
3547 | + mir::input::receiver::XKBMapper::?XKBMapper*; |
3548 | + mir::input::receiver::XKBMapper::XKBMapper*; |
3549 | + mir::libraries_for_path*; |
3550 | + mir::logging::DumbConsoleLogger::log*; |
3551 | + mir::logging::input_timestamp*; |
3552 | + mir::logging::Logger::log*; |
3553 | + mir::logging::Logger::?Logger*; |
3554 | + mir::logging::Logger::Logger*; |
3555 | + mir::logging::Logger::operator*; |
3556 | + mir::logging::SharedLibraryProberReport::?SharedLibraryProberReport*; |
3557 | + mir::logging::SharedLibraryProberReport::SharedLibraryProberReport*; |
3558 | + mir::logging::SharedLibraryProberReport::probing_path*; |
3559 | + mir::logging::SharedLibraryProberReport::probing_failed*; |
3560 | + mir::logging::SharedLibraryProberReport::loading_library*; |
3561 | + mir::logging::SharedLibraryProberReport::loading_failed*; |
3562 | + mir_omnidirectional_resize_cursor_name*; |
3563 | + mir_open_hand_cursor_name*; |
3564 | + mir_pointing_hand_cursor_name*; |
3565 | + mir::protobuf::Buffer::?Buffer*; |
3566 | + mir::protobuf::Buffer::Buffer*; |
3567 | + mir::protobuf::Buffer::ByteSize*; |
3568 | + mir::protobuf::Buffer::Clear*; |
3569 | + mir::protobuf::Buffer::CopyFrom*; |
3570 | + mir::protobuf::Buffer::default_instance*; |
3571 | + mir::protobuf::Buffer::descriptor*; |
3572 | + mir::protobuf::Buffer::GetMetadata*; |
3573 | + mir::protobuf::Buffer::IsInitialized*; |
3574 | + mir::protobuf::Buffer::kBufferIdFieldNumber*; |
3575 | + mir::protobuf::Buffer::kDataFieldNumber*; |
3576 | + mir::protobuf::Buffer::kErrorFieldNumber*; |
3577 | + mir::protobuf::Buffer::kFdFieldNumber*; |
3578 | + mir::protobuf::Buffer::kFdsOnSideChannelFieldNumber*; |
3579 | + mir::protobuf::Buffer::kFlagsFieldNumber*; |
3580 | + mir::protobuf::Buffer::kHeightFieldNumber*; |
3581 | + mir::protobuf::Buffer::kStrideFieldNumber*; |
3582 | + mir::protobuf::Buffer::kWidthFieldNumber*; |
3583 | + mir::protobuf::Buffer::MergeFrom*; |
3584 | + mir::protobuf::Buffer::MergePartialFromCodedStream*; |
3585 | + mir::protobuf::Buffer::New*; |
3586 | + mir::protobuf::BufferRequest::?BufferRequest*; |
3587 | + mir::protobuf::BufferRequest::BufferRequest*; |
3588 | + mir::protobuf::BufferRequest::ByteSize*; |
3589 | + mir::protobuf::BufferRequest::Clear*; |
3590 | + mir::protobuf::BufferRequest::CopyFrom*; |
3591 | + mir::protobuf::BufferRequest::default_instance*; |
3592 | + mir::protobuf::BufferRequest::descriptor*; |
3593 | + mir::protobuf::BufferRequest::GetMetadata*; |
3594 | + mir::protobuf::BufferRequest::IsInitialized*; |
3595 | + mir::protobuf::BufferRequest::kBufferFieldNumber*; |
3596 | + mir::protobuf::BufferRequest::kIdFieldNumber*; |
3597 | + mir::protobuf::BufferRequest::MergeFrom*; |
3598 | + mir::protobuf::BufferRequest::MergePartialFromCodedStream*; |
3599 | + mir::protobuf::BufferRequest::New*; |
3600 | + mir::protobuf::BufferRequest::SerializeWithCachedSizes*; |
3601 | + mir::protobuf::BufferRequest::SerializeWithCachedSizesToArray*; |
3602 | + mir::protobuf::BufferRequest::Swap*; |
3603 | + mir::protobuf::Buffer::SerializeWithCachedSizes*; |
3604 | + mir::protobuf::Buffer::SerializeWithCachedSizesToArray*; |
3605 | + mir::protobuf::Buffer::Swap*; |
3606 | + mir::protobuf::Connection::ByteSize*; |
3607 | + mir::protobuf::Connection::Clear*; |
3608 | + mir::protobuf::Connection::?Connection*; |
3609 | + mir::protobuf::Connection::Connection*; |
3610 | + mir::protobuf::Connection::CopyFrom*; |
3611 | + mir::protobuf::Connection::default_instance*; |
3612 | + mir::protobuf::Connection::descriptor*; |
3613 | + mir::protobuf::Connection::GetMetadata*; |
3614 | + mir::protobuf::Connection::IsInitialized*; |
3615 | + mir::protobuf::Connection::kDisplayConfigurationFieldNumber*; |
3616 | + mir::protobuf::Connection::kDisplayInfoFieldNumber*; |
3617 | + mir::protobuf::Connection::kDisplayOutputFieldNumber*; |
3618 | + mir::protobuf::Connection::kErrorFieldNumber*; |
3619 | + mir::protobuf::Connection::kPlatformFieldNumber*; |
3620 | + mir::protobuf::Connection::kSurfacePixelFormatFieldNumber*; |
3621 | + mir::protobuf::Connection::MergeFrom*; |
3622 | + mir::protobuf::Connection::MergePartialFromCodedStream*; |
3623 | + mir::protobuf::Connection::New*; |
3624 | + mir::protobuf::Connection::SerializeWithCachedSizes*; |
3625 | + mir::protobuf::Connection::SerializeWithCachedSizesToArray*; |
3626 | + mir::protobuf::Connection::Swap*; |
3627 | + mir::protobuf::ConnectParameters::ByteSize*; |
3628 | + mir::protobuf::ConnectParameters::Clear*; |
3629 | + mir::protobuf::ConnectParameters::?ConnectParameters*; |
3630 | + mir::protobuf::ConnectParameters::ConnectParameters*; |
3631 | + mir::protobuf::ConnectParameters::CopyFrom*; |
3632 | + mir::protobuf::ConnectParameters::default_instance*; |
3633 | + mir::protobuf::ConnectParameters::descriptor*; |
3634 | + mir::protobuf::ConnectParameters::GetMetadata*; |
3635 | + mir::protobuf::ConnectParameters::IsInitialized*; |
3636 | + mir::protobuf::ConnectParameters::kApplicationNameFieldNumber*; |
3637 | + mir::protobuf::ConnectParameters::MergeFrom*; |
3638 | + mir::protobuf::ConnectParameters::MergePartialFromCodedStream*; |
3639 | + mir::protobuf::ConnectParameters::New*; |
3640 | + mir::protobuf::ConnectParameters::SerializeWithCachedSizes*; |
3641 | + mir::protobuf::ConnectParameters::SerializeWithCachedSizesToArray*; |
3642 | + mir::protobuf::ConnectParameters::Swap*; |
3643 | + mir::protobuf::CursorSetting::ByteSize*; |
3644 | + mir::protobuf::CursorSetting::Clear*; |
3645 | + mir::protobuf::CursorSetting::CopyFrom*; |
3646 | + mir::protobuf::CursorSetting::?CursorSetting*; |
3647 | + mir::protobuf::CursorSetting::CursorSetting*; |
3648 | + mir::protobuf::CursorSetting::default_instance*; |
3649 | + mir::protobuf::CursorSetting::descriptor*; |
3650 | + mir::protobuf::CursorSetting::GetMetadata*; |
3651 | + mir::protobuf::CursorSetting::IsInitialized*; |
3652 | + mir::protobuf::CursorSetting::kNameFieldNumber*; |
3653 | + mir::protobuf::CursorSetting::kSurfaceidFieldNumber*; |
3654 | + mir::protobuf::CursorSetting::MergeFrom*; |
3655 | + mir::protobuf::CursorSetting::MergePartialFromCodedStream*; |
3656 | + mir::protobuf::CursorSetting::New*; |
3657 | + mir::protobuf::CursorSetting::SerializeWithCachedSizes*; |
3658 | + mir::protobuf::CursorSetting::SerializeWithCachedSizesToArray*; |
3659 | + mir::protobuf::CursorSetting::Swap*; |
3660 | + mir::protobuf::DisplayCard::ByteSize*; |
3661 | + mir::protobuf::DisplayCard::Clear*; |
3662 | + mir::protobuf::DisplayCard::CopyFrom*; |
3663 | + mir::protobuf::DisplayCard::default_instance*; |
3664 | + mir::protobuf::DisplayCard::descriptor*; |
3665 | + mir::protobuf::DisplayCard::?DisplayCard*; |
3666 | + mir::protobuf::DisplayCard::DisplayCard*; |
3667 | + mir::protobuf::DisplayCard::GetMetadata*; |
3668 | + mir::protobuf::DisplayCard::IsInitialized*; |
3669 | + mir::protobuf::DisplayCard::kCardIdFieldNumber*; |
3670 | + mir::protobuf::DisplayCard::kMaxSimultaneousOutputsFieldNumber*; |
3671 | + mir::protobuf::DisplayCard::MergeFrom*; |
3672 | + mir::protobuf::DisplayCard::MergePartialFromCodedStream*; |
3673 | + mir::protobuf::DisplayCard::New*; |
3674 | + mir::protobuf::DisplayCard::SerializeWithCachedSizes*; |
3675 | + mir::protobuf::DisplayCard::SerializeWithCachedSizesToArray*; |
3676 | + mir::protobuf::DisplayCard::Swap*; |
3677 | + mir::protobuf::DisplayConfiguration::ByteSize*; |
3678 | + mir::protobuf::DisplayConfiguration::Clear*; |
3679 | + mir::protobuf::DisplayConfiguration::CopyFrom*; |
3680 | + mir::protobuf::DisplayConfiguration::default_instance*; |
3681 | + mir::protobuf::DisplayConfiguration::descriptor*; |
3682 | + mir::protobuf::DisplayConfiguration::?DisplayConfiguration*; |
3683 | + mir::protobuf::DisplayConfiguration::DisplayConfiguration*; |
3684 | + mir::protobuf::DisplayConfiguration::GetMetadata*; |
3685 | + mir::protobuf::DisplayConfiguration::IsInitialized*; |
3686 | + mir::protobuf::DisplayConfiguration::kDisplayCardFieldNumber*; |
3687 | + mir::protobuf::DisplayConfiguration::kDisplayOutputFieldNumber*; |
3688 | + mir::protobuf::DisplayConfiguration::kErrorFieldNumber*; |
3689 | + mir::protobuf::DisplayConfiguration::MergeFrom*; |
3690 | + mir::protobuf::DisplayConfiguration::MergePartialFromCodedStream*; |
3691 | + mir::protobuf::DisplayConfiguration::New*; |
3692 | + mir::protobuf::DisplayConfiguration::SerializeWithCachedSizes*; |
3693 | + mir::protobuf::DisplayConfiguration::SerializeWithCachedSizesToArray*; |
3694 | + mir::protobuf::DisplayConfiguration::Swap*; |
3695 | + mir::protobuf::DisplayInfo::ByteSize*; |
3696 | + mir::protobuf::DisplayInfo::Clear*; |
3697 | + mir::protobuf::DisplayInfo::CopyFrom*; |
3698 | + mir::protobuf::DisplayInfo::default_instance*; |
3699 | + mir::protobuf::DisplayInfo::descriptor*; |
3700 | + mir::protobuf::DisplayInfo::?DisplayInfo*; |
3701 | + mir::protobuf::DisplayInfo::DisplayInfo*; |
3702 | + mir::protobuf::DisplayInfo::GetMetadata*; |
3703 | + mir::protobuf::DisplayInfo::IsInitialized*; |
3704 | + mir::protobuf::DisplayInfo::kHeightFieldNumber*; |
3705 | + mir::protobuf::DisplayInfo::kSupportedPixelFormatFieldNumber*; |
3706 | + mir::protobuf::DisplayInfo::kWidthFieldNumber*; |
3707 | + mir::protobuf::DisplayInfo::MergeFrom*; |
3708 | + mir::protobuf::DisplayInfo::MergePartialFromCodedStream*; |
3709 | + mir::protobuf::DisplayInfo::New*; |
3710 | + mir::protobuf::DisplayInfo::SerializeWithCachedSizes*; |
3711 | + mir::protobuf::DisplayInfo::SerializeWithCachedSizesToArray*; |
3712 | + mir::protobuf::DisplayInfo::Swap*; |
3713 | + mir::protobuf::DisplayMode::ByteSize*; |
3714 | + mir::protobuf::DisplayMode::Clear*; |
3715 | + mir::protobuf::DisplayMode::CopyFrom*; |
3716 | + mir::protobuf::DisplayMode::default_instance*; |
3717 | + mir::protobuf::DisplayMode::descriptor*; |
3718 | + mir::protobuf::DisplayMode::?DisplayMode*; |
3719 | + mir::protobuf::DisplayMode::DisplayMode*; |
3720 | + mir::protobuf::DisplayMode::GetMetadata*; |
3721 | + mir::protobuf::DisplayMode::IsInitialized*; |
3722 | + mir::protobuf::DisplayMode::kHorizontalResolutionFieldNumber*; |
3723 | + mir::protobuf::DisplayMode::kRefreshRateFieldNumber*; |
3724 | + mir::protobuf::DisplayMode::kVerticalResolutionFieldNumber*; |
3725 | + mir::protobuf::DisplayMode::MergeFrom*; |
3726 | + mir::protobuf::DisplayMode::MergePartialFromCodedStream*; |
3727 | + mir::protobuf::DisplayMode::New*; |
3728 | + mir::protobuf::DisplayMode::SerializeWithCachedSizes*; |
3729 | + mir::protobuf::DisplayMode::SerializeWithCachedSizesToArray*; |
3730 | + mir::protobuf::DisplayMode::Swap*; |
3731 | + mir::protobuf::DisplayOutput::ByteSize*; |
3732 | + mir::protobuf::DisplayOutput::Clear*; |
3733 | + mir::protobuf::DisplayOutput::CopyFrom*; |
3734 | + mir::protobuf::DisplayOutput::default_instance*; |
3735 | + mir::protobuf::DisplayOutput::descriptor*; |
3736 | + mir::protobuf::DisplayOutput::?DisplayOutput*; |
3737 | + mir::protobuf::DisplayOutput::DisplayOutput*; |
3738 | + mir::protobuf::DisplayOutput::GetMetadata*; |
3739 | + mir::protobuf::DisplayOutput::IsInitialized*; |
3740 | + mir::protobuf::DisplayOutput::kCardIdFieldNumber*; |
3741 | + mir::protobuf::DisplayOutput::kConnectedFieldNumber*; |
3742 | + mir::protobuf::DisplayOutput::kCurrentFormatFieldNumber*; |
3743 | + mir::protobuf::DisplayOutput::kCurrentModeFieldNumber*; |
3744 | + mir::protobuf::DisplayOutput::kModeFieldNumber*; |
3745 | + mir::protobuf::DisplayOutput::kOrientationFieldNumber*; |
3746 | + mir::protobuf::DisplayOutput::kOutputIdFieldNumber*; |
3747 | + mir::protobuf::DisplayOutput::kPhysicalHeightMmFieldNumber*; |
3748 | + mir::protobuf::DisplayOutput::kPhysicalWidthMmFieldNumber*; |
3749 | + mir::protobuf::DisplayOutput::kPixelFormatFieldNumber*; |
3750 | + mir::protobuf::DisplayOutput::kPositionXFieldNumber*; |
3751 | + mir::protobuf::DisplayOutput::kPositionYFieldNumber*; |
3752 | + mir::protobuf::DisplayOutput::kPowerModeFieldNumber*; |
3753 | + mir::protobuf::DisplayOutput::kPreferredModeFieldNumber*; |
3754 | + mir::protobuf::DisplayOutput::kTypeFieldNumber*; |
3755 | + mir::protobuf::DisplayOutput::kUsedFieldNumber*; |
3756 | + mir::protobuf::DisplayOutput::MergeFrom*; |
3757 | + mir::protobuf::DisplayOutput::MergePartialFromCodedStream*; |
3758 | + mir::protobuf::DisplayOutput::New*; |
3759 | + mir::protobuf::DisplayOutput::SerializeWithCachedSizes*; |
3760 | + mir::protobuf::DisplayOutput::SerializeWithCachedSizesToArray*; |
3761 | + mir::protobuf::DisplayOutput::Swap*; |
3762 | + mir::protobuf::DisplayServer::CallMethod*; |
3763 | + mir::protobuf::DisplayServer::configure_cursor*; |
3764 | + mir::protobuf::DisplayServer::configure_display*; |
3765 | + mir::protobuf::DisplayServer::configure_surface*; |
3766 | + mir::protobuf::DisplayServer::connect*; |
3767 | + mir::protobuf::DisplayServer::create_screencast*; |
3768 | + mir::protobuf::DisplayServer::create_surface*; |
3769 | + mir::protobuf::DisplayServer::descriptor*; |
3770 | + mir::protobuf::DisplayServer::disconnect*; |
3771 | + mir::protobuf::DisplayServer::?DisplayServer*; |
3772 | + mir::protobuf::DisplayServer::drm_auth_magic*; |
3773 | + mir::protobuf::DisplayServer::exchange_buffer*; |
3774 | + mir::protobuf::DisplayServer::GetDescriptor*; |
3775 | + mir::protobuf::DisplayServer::GetRequestPrototype*; |
3776 | + mir::protobuf::DisplayServer::GetResponsePrototype*; |
3777 | + mir::protobuf::DisplayServer::new_fds_for_prompt_providers*; |
3778 | + mir::protobuf::DisplayServer::next_buffer*; |
3779 | + mir::protobuf::DisplayServer::release_screencast*; |
3780 | + mir::protobuf::DisplayServer::release_surface*; |
3781 | + mir::protobuf::DisplayServer::screencast_buffer*; |
3782 | + mir::protobuf::DisplayServer::start_prompt_session*; |
3783 | + mir::protobuf::DisplayServer::stop_prompt_session*; |
3784 | + mir::protobuf::DisplayServer_Stub::configure_cursor*; |
3785 | + mir::protobuf::DisplayServer_Stub::configure_display*; |
3786 | + mir::protobuf::DisplayServer_Stub::configure_surface*; |
3787 | + mir::protobuf::DisplayServer_Stub::connect*; |
3788 | + mir::protobuf::DisplayServer_Stub::create_screencast*; |
3789 | + mir::protobuf::DisplayServer_Stub::create_surface*; |
3790 | + mir::protobuf::DisplayServer_Stub::disconnect*; |
3791 | + mir::protobuf::DisplayServer_Stub::?DisplayServer_Stub*; |
3792 | + mir::protobuf::DisplayServer_Stub::DisplayServer_Stub*; |
3793 | + mir::protobuf::DisplayServer_Stub::drm_auth_magic*; |
3794 | + mir::protobuf::DisplayServer_Stub::exchange_buffer*; |
3795 | + mir::protobuf::DisplayServer_Stub::new_fds_for_prompt_providers*; |
3796 | + mir::protobuf::DisplayServer_Stub::next_buffer*; |
3797 | + mir::protobuf::DisplayServer_Stub::release_screencast*; |
3798 | + mir::protobuf::DisplayServer_Stub::release_surface*; |
3799 | + mir::protobuf::DisplayServer_Stub::screencast_buffer*; |
3800 | + mir::protobuf::DisplayServer_Stub::start_prompt_session*; |
3801 | + mir::protobuf::DisplayServer_Stub::stop_prompt_session*; |
3802 | + mir::protobuf::DRMAuthMagicStatus::ByteSize*; |
3803 | + mir::protobuf::DRMAuthMagicStatus::Clear*; |
3804 | + mir::protobuf::DRMAuthMagicStatus::CopyFrom*; |
3805 | + mir::protobuf::DRMAuthMagicStatus::default_instance*; |
3806 | + mir::protobuf::DRMAuthMagicStatus::descriptor*; |
3807 | + mir::protobuf::DRMAuthMagicStatus::?DRMAuthMagicStatus*; |
3808 | + mir::protobuf::DRMAuthMagicStatus::DRMAuthMagicStatus*; |
3809 | + mir::protobuf::DRMAuthMagicStatus::GetMetadata*; |
3810 | + mir::protobuf::DRMAuthMagicStatus::IsInitialized*; |
3811 | + mir::protobuf::DRMAuthMagicStatus::kErrorFieldNumber*; |
3812 | + mir::protobuf::DRMAuthMagicStatus::kStatusCodeFieldNumber*; |
3813 | + mir::protobuf::DRMAuthMagicStatus::MergeFrom*; |
3814 | + mir::protobuf::DRMAuthMagicStatus::MergePartialFromCodedStream*; |
3815 | + mir::protobuf::DRMAuthMagicStatus::New*; |
3816 | + mir::protobuf::DRMAuthMagicStatus::SerializeWithCachedSizes*; |
3817 | + mir::protobuf::DRMAuthMagicStatus::SerializeWithCachedSizesToArray*; |
3818 | + mir::protobuf::DRMAuthMagicStatus::Swap*; |
3819 | + mir::protobuf::DRMMagic::ByteSize*; |
3820 | + mir::protobuf::DRMMagic::Clear*; |
3821 | + mir::protobuf::DRMMagic::CopyFrom*; |
3822 | + mir::protobuf::DRMMagic::default_instance*; |
3823 | + mir::protobuf::DRMMagic::descriptor*; |
3824 | + mir::protobuf::DRMMagic::?DRMMagic*; |
3825 | + mir::protobuf::DRMMagic::DRMMagic*; |
3826 | + mir::protobuf::DRMMagic::GetMetadata*; |
3827 | + mir::protobuf::DRMMagic::IsInitialized*; |
3828 | + mir::protobuf::DRMMagic::kErrorFieldNumber*; |
3829 | + mir::protobuf::DRMMagic::kMagicFieldNumber*; |
3830 | + mir::protobuf::DRMMagic::MergeFrom*; |
3831 | + mir::protobuf::DRMMagic::MergePartialFromCodedStream*; |
3832 | + mir::protobuf::DRMMagic::New*; |
3833 | + mir::protobuf::DRMMagic::SerializeWithCachedSizes*; |
3834 | + mir::protobuf::DRMMagic::SerializeWithCachedSizesToArray*; |
3835 | + mir::protobuf::DRMMagic::Swap*; |
3836 | + mir::protobuf::Event::ByteSize*; |
3837 | + mir::protobuf::Event::Clear*; |
3838 | + mir::protobuf::Event::CopyFrom*; |
3839 | + mir::protobuf::Event::default_instance*; |
3840 | + mir::protobuf::Event::descriptor*; |
3841 | + mir::protobuf::Event::?Event*; |
3842 | + mir::protobuf::Event::Event*; |
3843 | + mir::protobuf::Event::GetMetadata*; |
3844 | + mir::protobuf::Event::IsInitialized*; |
3845 | + mir::protobuf::Event::kRawFieldNumber*; |
3846 | + mir::protobuf::Event::MergeFrom*; |
3847 | + mir::protobuf::Event::MergePartialFromCodedStream*; |
3848 | + mir::protobuf::Event::New*; |
3849 | + mir::protobuf::EventSequence::ByteSize*; |
3850 | + mir::protobuf::EventSequence::Clear*; |
3851 | + mir::protobuf::EventSequence::CopyFrom*; |
3852 | + mir::protobuf::EventSequence::default_instance*; |
3853 | + mir::protobuf::EventSequence::descriptor*; |
3854 | + mir::protobuf::EventSequence::?EventSequence*; |
3855 | + mir::protobuf::EventSequence::EventSequence*; |
3856 | + mir::protobuf::EventSequence::GetMetadata*; |
3857 | + mir::protobuf::EventSequence::IsInitialized*; |
3858 | + mir::protobuf::EventSequence::kDisplayConfigurationFieldNumber*; |
3859 | + mir::protobuf::EventSequence::kErrorFieldNumber*; |
3860 | + mir::protobuf::EventSequence::kEventFieldNumber*; |
3861 | + mir::protobuf::EventSequence::kLifecycleEventFieldNumber*; |
3862 | + mir::protobuf::EventSequence::MergeFrom*; |
3863 | + mir::protobuf::EventSequence::MergePartialFromCodedStream*; |
3864 | + mir::protobuf::EventSequence::New*; |
3865 | + mir::protobuf::EventSequence::SerializeWithCachedSizes*; |
3866 | + mir::protobuf::EventSequence::SerializeWithCachedSizesToArray*; |
3867 | + mir::protobuf::EventSequence::Swap*; |
3868 | + mir::protobuf::Event::SerializeWithCachedSizes*; |
3869 | + mir::protobuf::Event::SerializeWithCachedSizesToArray*; |
3870 | + mir::protobuf::Event::Swap*; |
3871 | + mir::protobuf::google_protobuf_guard*; |
3872 | + mir::protobuf::LifecycleEvent::ByteSize*; |
3873 | + mir::protobuf::LifecycleEvent::Clear*; |
3874 | + mir::protobuf::LifecycleEvent::CopyFrom*; |
3875 | + mir::protobuf::LifecycleEvent::default_instance*; |
3876 | + mir::protobuf::LifecycleEvent::descriptor*; |
3877 | + mir::protobuf::LifecycleEvent::GetMetadata*; |
3878 | + mir::protobuf::LifecycleEvent::IsInitialized*; |
3879 | + mir::protobuf::LifecycleEvent::kErrorFieldNumber*; |
3880 | + mir::protobuf::LifecycleEvent::kNewStateFieldNumber*; |
3881 | + mir::protobuf::LifecycleEvent::?LifecycleEvent*; |
3882 | + mir::protobuf::LifecycleEvent::LifecycleEvent*; |
3883 | + mir::protobuf::LifecycleEvent::MergeFrom*; |
3884 | + mir::protobuf::LifecycleEvent::MergePartialFromCodedStream*; |
3885 | + mir::protobuf::LifecycleEvent::New*; |
3886 | + mir::protobuf::LifecycleEvent::SerializeWithCachedSizes*; |
3887 | + mir::protobuf::LifecycleEvent::SerializeWithCachedSizesToArray*; |
3888 | + mir::protobuf::LifecycleEvent::Swap*; |
3889 | + mir::protobuf::Platform::ByteSize*; |
3890 | + mir::protobuf::Platform::Clear*; |
3891 | + mir::protobuf::Platform::CopyFrom*; |
3892 | + mir::protobuf::Platform::default_instance*; |
3893 | + mir::protobuf::Platform::descriptor*; |
3894 | + mir::protobuf::Platform::GetMetadata*; |
3895 | + mir::protobuf::Platform::IsInitialized*; |
3896 | + mir::protobuf::Platform::kDataFieldNumber*; |
3897 | + mir::protobuf::Platform::kErrorFieldNumber*; |
3898 | + mir::protobuf::Platform::kFdFieldNumber*; |
3899 | + mir::protobuf::Platform::kFdsOnSideChannelFieldNumber*; |
3900 | + mir::protobuf::Platform::MergeFrom*; |
3901 | + mir::protobuf::Platform::MergePartialFromCodedStream*; |
3902 | + mir::protobuf::Platform::New*; |
3903 | + mir::protobuf::Platform::?Platform*; |
3904 | + mir::protobuf::Platform::Platform*; |
3905 | + mir::protobuf::Platform::SerializeWithCachedSizes*; |
3906 | + mir::protobuf::Platform::SerializeWithCachedSizesToArray*; |
3907 | + mir::protobuf::Platform::Swap*; |
3908 | + mir::protobuf::PromptSessionParameters::ByteSize*; |
3909 | + mir::protobuf::PromptSessionParameters::Clear*; |
3910 | + mir::protobuf::PromptSessionParameters::CopyFrom*; |
3911 | + mir::protobuf::PromptSessionParameters::default_instance*; |
3912 | + mir::protobuf::PromptSessionParameters::descriptor*; |
3913 | + mir::protobuf::PromptSessionParameters::GetMetadata*; |
3914 | + mir::protobuf::PromptSessionParameters::IsInitialized*; |
3915 | + mir::protobuf::PromptSessionParameters::kApplicationPidFieldNumber*; |
3916 | + mir::protobuf::PromptSessionParameters::MergeFrom*; |
3917 | + mir::protobuf::PromptSessionParameters::MergePartialFromCodedStream*; |
3918 | + mir::protobuf::PromptSessionParameters::New*; |
3919 | + mir::protobuf::PromptSessionParameters::?PromptSessionParameters*; |
3920 | + mir::protobuf::PromptSessionParameters::PromptSessionParameters*; |
3921 | + mir::protobuf::PromptSessionParameters::SerializeWithCachedSizes*; |
3922 | + mir::protobuf::PromptSessionParameters::SerializeWithCachedSizesToArray*; |
3923 | + mir::protobuf::PromptSessionParameters::Swap*; |
3924 | + mir::protobuf::protobuf_AddDesc_mir_5fprotobuf_2eproto*; |
3925 | + mir::protobuf::protobuf_AssignDesc_mir_5fprotobuf_2eproto*; |
3926 | + mir::protobuf::protobuf_ShutdownFile_mir_5fprotobuf_2eproto*; |
3927 | + mir::protobuf::Rectangle::ByteSize*; |
3928 | + mir::protobuf::Rectangle::Clear*; |
3929 | + mir::protobuf::Rectangle::CopyFrom*; |
3930 | + mir::protobuf::Rectangle::default_instance*; |
3931 | + mir::protobuf::Rectangle::descriptor*; |
3932 | + mir::protobuf::Rectangle::GetMetadata*; |
3933 | + mir::protobuf::Rectangle::IsInitialized*; |
3934 | + mir::protobuf::Rectangle::kHeightFieldNumber*; |
3935 | + mir::protobuf::Rectangle::kLeftFieldNumber*; |
3936 | + mir::protobuf::Rectangle::kTopFieldNumber*; |
3937 | + mir::protobuf::Rectangle::kWidthFieldNumber*; |
3938 | + mir::protobuf::Rectangle::MergeFrom*; |
3939 | + mir::protobuf::Rectangle::MergePartialFromCodedStream*; |
3940 | + mir::protobuf::Rectangle::New*; |
3941 | + mir::protobuf::Rectangle::?Rectangle*; |
3942 | + mir::protobuf::Rectangle::Rectangle*; |
3943 | + mir::protobuf::Rectangle::SerializeWithCachedSizes*; |
3944 | + mir::protobuf::Rectangle::SerializeWithCachedSizesToArray*; |
3945 | + mir::protobuf::Rectangle::Swap*; |
3946 | + mir::protobuf::Screencast::ByteSize*; |
3947 | + mir::protobuf::Screencast::Clear*; |
3948 | + mir::protobuf::Screencast::CopyFrom*; |
3949 | + mir::protobuf::Screencast::default_instance*; |
3950 | + mir::protobuf::Screencast::descriptor*; |
3951 | + mir::protobuf::Screencast::GetMetadata*; |
3952 | + mir::protobuf::ScreencastId::ByteSize*; |
3953 | + mir::protobuf::ScreencastId::Clear*; |
3954 | + mir::protobuf::ScreencastId::CopyFrom*; |
3955 | + mir::protobuf::ScreencastId::default_instance*; |
3956 | + mir::protobuf::ScreencastId::descriptor*; |
3957 | + mir::protobuf::ScreencastId::GetMetadata*; |
3958 | + mir::protobuf::ScreencastId::IsInitialized*; |
3959 | + mir::protobuf::ScreencastId::kValueFieldNumber*; |
3960 | + mir::protobuf::ScreencastId::MergeFrom*; |
3961 | + mir::protobuf::ScreencastId::MergePartialFromCodedStream*; |
3962 | + mir::protobuf::ScreencastId::New*; |
3963 | + mir::protobuf::ScreencastId::?ScreencastId*; |
3964 | + mir::protobuf::ScreencastId::ScreencastId*; |
3965 | + mir::protobuf::ScreencastId::SerializeWithCachedSizes*; |
3966 | + mir::protobuf::ScreencastId::SerializeWithCachedSizesToArray*; |
3967 | + mir::protobuf::ScreencastId::Swap*; |
3968 | + mir::protobuf::Screencast::IsInitialized*; |
3969 | + mir::protobuf::Screencast::kBufferFieldNumber*; |
3970 | + mir::protobuf::Screencast::kErrorFieldNumber*; |
3971 | + mir::protobuf::Screencast::kScreencastIdFieldNumber*; |
3972 | + mir::protobuf::Screencast::MergeFrom*; |
3973 | + mir::protobuf::Screencast::MergePartialFromCodedStream*; |
3974 | + mir::protobuf::Screencast::New*; |
3975 | + mir::protobuf::ScreencastParameters::ByteSize*; |
3976 | + mir::protobuf::ScreencastParameters::Clear*; |
3977 | + mir::protobuf::ScreencastParameters::CopyFrom*; |
3978 | + mir::protobuf::ScreencastParameters::default_instance*; |
3979 | + mir::protobuf::ScreencastParameters::descriptor*; |
3980 | + mir::protobuf::ScreencastParameters::GetMetadata*; |
3981 | + mir::protobuf::ScreencastParameters::IsInitialized*; |
3982 | + mir::protobuf::ScreencastParameters::kHeightFieldNumber*; |
3983 | + mir::protobuf::ScreencastParameters::kPixelFormatFieldNumber*; |
3984 | + mir::protobuf::ScreencastParameters::kRegionFieldNumber*; |
3985 | + mir::protobuf::ScreencastParameters::kWidthFieldNumber*; |
3986 | + mir::protobuf::ScreencastParameters::MergeFrom*; |
3987 | + mir::protobuf::ScreencastParameters::MergePartialFromCodedStream*; |
3988 | + mir::protobuf::ScreencastParameters::New*; |
3989 | + mir::protobuf::ScreencastParameters::?ScreencastParameters*; |
3990 | + mir::protobuf::ScreencastParameters::ScreencastParameters*; |
3991 | + mir::protobuf::ScreencastParameters::SerializeWithCachedSizes*; |
3992 | + mir::protobuf::ScreencastParameters::SerializeWithCachedSizesToArray*; |
3993 | + mir::protobuf::ScreencastParameters::Swap*; |
3994 | + mir::protobuf::Screencast::?Screencast*; |
3995 | + mir::protobuf::Screencast::Screencast*; |
3996 | + mir::protobuf::Screencast::SerializeWithCachedSizes*; |
3997 | + mir::protobuf::Screencast::SerializeWithCachedSizesToArray*; |
3998 | + mir::protobuf::Screencast::Swap*; |
3999 | + mir::protobuf::SocketFD::ByteSize*; |
4000 | + mir::protobuf::SocketFD::Clear*; |
4001 | + mir::protobuf::SocketFD::CopyFrom*; |
4002 | + mir::protobuf::SocketFD::default_instance*; |
4003 | + mir::protobuf::SocketFD::descriptor*; |
4004 | + mir::protobuf::SocketFD::GetMetadata*; |
4005 | + mir::protobuf::SocketFD::IsInitialized*; |
4006 | + mir::protobuf::SocketFD::kErrorFieldNumber*; |
4007 | + mir::protobuf::SocketFD::kFdFieldNumber*; |
4008 | + mir::protobuf::SocketFD::kFdsOnSideChannelFieldNumber*; |
4009 | + mir::protobuf::SocketFD::MergeFrom*; |
4010 | + mir::protobuf::SocketFD::MergePartialFromCodedStream*; |
4011 | + mir::protobuf::SocketFD::New*; |
4012 | + mir::protobuf::SocketFDRequest::ByteSize*; |
4013 | + mir::protobuf::SocketFDRequest::Clear*; |
4014 | + mir::protobuf::SocketFDRequest::CopyFrom*; |
4015 | + mir::protobuf::SocketFDRequest::default_instance*; |
4016 | + mir::protobuf::SocketFDRequest::descriptor*; |
4017 | + mir::protobuf::SocketFDRequest::GetMetadata*; |
4018 | + mir::protobuf::SocketFDRequest::IsInitialized*; |
4019 | + mir::protobuf::SocketFDRequest::kNumberFieldNumber*; |
4020 | + mir::protobuf::SocketFDRequest::MergeFrom*; |
4021 | + mir::protobuf::SocketFDRequest::MergePartialFromCodedStream*; |
4022 | + mir::protobuf::SocketFDRequest::New*; |
4023 | + mir::protobuf::SocketFDRequest::SerializeWithCachedSizes*; |
4024 | + mir::protobuf::SocketFDRequest::SerializeWithCachedSizesToArray*; |
4025 | + mir::protobuf::SocketFDRequest::?SocketFDRequest*; |
4026 | + mir::protobuf::SocketFDRequest::SocketFDRequest*; |
4027 | + mir::protobuf::SocketFDRequest::Swap*; |
4028 | + mir::protobuf::SocketFD::SerializeWithCachedSizes*; |
4029 | + mir::protobuf::SocketFD::SerializeWithCachedSizesToArray*; |
4030 | + mir::protobuf::SocketFD::?SocketFD*; |
4031 | + mir::protobuf::SocketFD::SocketFD*; |
4032 | + mir::protobuf::SocketFD::Swap*; |
4033 | + mir::protobuf::static_descriptor_initializer_mir_5fprotobuf_2eproto_*; |
4034 | + mir::protobuf::Surface::ByteSize*; |
4035 | + mir::protobuf::Surface::Clear*; |
4036 | + mir::protobuf::Surface::CopyFrom*; |
4037 | + mir::protobuf::Surface::default_instance*; |
4038 | + mir::protobuf::Surface::descriptor*; |
4039 | + mir::protobuf::Surface::GetMetadata*; |
4040 | + mir::protobuf::SurfaceId::ByteSize*; |
4041 | + mir::protobuf::SurfaceId::Clear*; |
4042 | + mir::protobuf::SurfaceId::CopyFrom*; |
4043 | + mir::protobuf::SurfaceId::default_instance*; |
4044 | + mir::protobuf::SurfaceId::descriptor*; |
4045 | + mir::protobuf::SurfaceId::GetMetadata*; |
4046 | + mir::protobuf::SurfaceId::IsInitialized*; |
4047 | + mir::protobuf::SurfaceId::kValueFieldNumber*; |
4048 | + mir::protobuf::SurfaceId::MergeFrom*; |
4049 | + mir::protobuf::SurfaceId::MergePartialFromCodedStream*; |
4050 | + mir::protobuf::SurfaceId::New*; |
4051 | + mir::protobuf::SurfaceId::SerializeWithCachedSizes*; |
4052 | + mir::protobuf::SurfaceId::SerializeWithCachedSizesToArray*; |
4053 | + mir::protobuf::SurfaceId::?SurfaceId*; |
4054 | + mir::protobuf::SurfaceId::SurfaceId*; |
4055 | + mir::protobuf::SurfaceId::Swap*; |
4056 | + mir::protobuf::Surface::IsInitialized*; |
4057 | + mir::protobuf::Surface::kAttributesFieldNumber*; |
4058 | + mir::protobuf::Surface::kBufferFieldNumber*; |
4059 | + mir::protobuf::Surface::kBufferUsageFieldNumber*; |
4060 | + mir::protobuf::Surface::kErrorFieldNumber*; |
4061 | + mir::protobuf::Surface::kFdFieldNumber*; |
4062 | + mir::protobuf::Surface::kFdsOnSideChannelFieldNumber*; |
4063 | + mir::protobuf::Surface::kHeightFieldNumber*; |
4064 | + mir::protobuf::Surface::kIdFieldNumber*; |
4065 | + mir::protobuf::Surface::kPixelFormatFieldNumber*; |
4066 | + mir::protobuf::Surface::kWidthFieldNumber*; |
4067 | + mir::protobuf::Surface::MergeFrom*; |
4068 | + mir::protobuf::Surface::MergePartialFromCodedStream*; |
4069 | + mir::protobuf::Surface::New*; |
4070 | + mir::protobuf::SurfaceParameters::ByteSize*; |
4071 | + mir::protobuf::SurfaceParameters::Clear*; |
4072 | + mir::protobuf::SurfaceParameters::CopyFrom*; |
4073 | + mir::protobuf::SurfaceParameters::default_instance*; |
4074 | + mir::protobuf::SurfaceParameters::descriptor*; |
4075 | + mir::protobuf::SurfaceParameters::GetMetadata*; |
4076 | + mir::protobuf::SurfaceParameters::IsInitialized*; |
4077 | + mir::protobuf::SurfaceParameters::kBufferUsageFieldNumber*; |
4078 | + mir::protobuf::SurfaceParameters::kHeightFieldNumber*; |
4079 | + mir::protobuf::SurfaceParameters::kOutputIdFieldNumber*; |
4080 | + mir::protobuf::SurfaceParameters::kPixelFormatFieldNumber*; |
4081 | + mir::protobuf::SurfaceParameters::kSurfaceNameFieldNumber*; |
4082 | + mir::protobuf::SurfaceParameters::kWidthFieldNumber*; |
4083 | + mir::protobuf::SurfaceParameters::MergeFrom*; |
4084 | + mir::protobuf::SurfaceParameters::MergePartialFromCodedStream*; |
4085 | + mir::protobuf::SurfaceParameters::New*; |
4086 | + mir::protobuf::SurfaceParameters::SerializeWithCachedSizes*; |
4087 | + mir::protobuf::SurfaceParameters::SerializeWithCachedSizesToArray*; |
4088 | + mir::protobuf::SurfaceParameters::?SurfaceParameters*; |
4089 | + mir::protobuf::SurfaceParameters::SurfaceParameters*; |
4090 | + mir::protobuf::SurfaceParameters::Swap*; |
4091 | + mir::protobuf::Surface::SerializeWithCachedSizes*; |
4092 | + mir::protobuf::Surface::SerializeWithCachedSizesToArray*; |
4093 | + mir::protobuf::SurfaceSetting::ByteSize*; |
4094 | + mir::protobuf::SurfaceSetting::Clear*; |
4095 | + mir::protobuf::SurfaceSetting::CopyFrom*; |
4096 | + mir::protobuf::SurfaceSetting::default_instance*; |
4097 | + mir::protobuf::SurfaceSetting::descriptor*; |
4098 | + mir::protobuf::SurfaceSetting::GetMetadata*; |
4099 | + mir::protobuf::SurfaceSetting::IsInitialized*; |
4100 | + mir::protobuf::SurfaceSetting::kAttribFieldNumber*; |
4101 | + mir::protobuf::SurfaceSetting::kErrorFieldNumber*; |
4102 | + mir::protobuf::SurfaceSetting::kIvalueFieldNumber*; |
4103 | + mir::protobuf::SurfaceSetting::kSurfaceidFieldNumber*; |
4104 | + mir::protobuf::SurfaceSetting::MergeFrom*; |
4105 | + mir::protobuf::SurfaceSetting::MergePartialFromCodedStream*; |
4106 | + mir::protobuf::SurfaceSetting::New*; |
4107 | + mir::protobuf::SurfaceSetting::SerializeWithCachedSizes*; |
4108 | + mir::protobuf::SurfaceSetting::SerializeWithCachedSizesToArray*; |
4109 | + mir::protobuf::SurfaceSetting::?SurfaceSetting*; |
4110 | + mir::protobuf::SurfaceSetting::SurfaceSetting*; |
4111 | + mir::protobuf::SurfaceSetting::Swap*; |
4112 | + mir::protobuf::Surface::?Surface*; |
4113 | + mir::protobuf::Surface::Surface*; |
4114 | + mir::protobuf::Surface::Swap*; |
4115 | + mir::protobuf::Void::ByteSize*; |
4116 | + mir::protobuf::Void::Clear*; |
4117 | + mir::protobuf::Void::CopyFrom*; |
4118 | + mir::protobuf::Void::default_instance*; |
4119 | + mir::protobuf::Void::descriptor*; |
4120 | + mir::protobuf::Void::GetMetadata*; |
4121 | + mir::protobuf::Void::IsInitialized*; |
4122 | + mir::protobuf::Void::kErrorFieldNumber*; |
4123 | + mir::protobuf::Void::MergeFrom*; |
4124 | + mir::protobuf::Void::MergePartialFromCodedStream*; |
4125 | + mir::protobuf::Void::New*; |
4126 | + mir::protobuf::Void::SerializeWithCachedSizes*; |
4127 | + mir::protobuf::Void::SerializeWithCachedSizesToArray*; |
4128 | + mir::protobuf::Void::Swap*; |
4129 | + mir::protobuf::Void::?Void*; |
4130 | + mir::protobuf::Void::Void*; |
4131 | + mir::protobuf::wire::Invocation::ByteSize*; |
4132 | + mir::protobuf::wire::Invocation::Clear*; |
4133 | + mir::protobuf::wire::Invocation::CopyFrom*; |
4134 | + mir::protobuf::wire::Invocation::default_instance*; |
4135 | + mir::protobuf::wire::Invocation::descriptor*; |
4136 | + mir::protobuf::wire::Invocation::GetMetadata*; |
4137 | + mir::protobuf::wire::Invocation::?Invocation*; |
4138 | + mir::protobuf::wire::Invocation::Invocation*; |
4139 | + mir::protobuf::wire::Invocation::IsInitialized*; |
4140 | + mir::protobuf::wire::Invocation::kIdFieldNumber*; |
4141 | + mir::protobuf::wire::Invocation::kMethodNameFieldNumber*; |
4142 | + mir::protobuf::wire::Invocation::kParametersFieldNumber*; |
4143 | + mir::protobuf::wire::Invocation::kProtocolVersionFieldNumber*; |
4144 | + mir::protobuf::wire::Invocation::MergeFrom*; |
4145 | + mir::protobuf::wire::Invocation::MergePartialFromCodedStream*; |
4146 | + mir::protobuf::wire::Invocation::New*; |
4147 | + mir::protobuf::wire::Invocation::SerializeWithCachedSizes*; |
4148 | + mir::protobuf::wire::Invocation::SerializeWithCachedSizesToArray*; |
4149 | + mir::protobuf::wire::Invocation::Swap*; |
4150 | + mir::protobuf::wire::protobuf_AddDesc_mir_5fprotobuf_5fwire_2eproto*; |
4151 | + mir::protobuf::wire::protobuf_AssignDesc_mir_5fprotobuf_5fwire_2eproto*; |
4152 | + mir::protobuf::wire::protobuf_ShutdownFile_mir_5fprotobuf_5fwire_2eproto*; |
4153 | + mir::protobuf::wire::Result::ByteSize*; |
4154 | + mir::protobuf::wire::Result::Clear*; |
4155 | + mir::protobuf::wire::Result::CopyFrom*; |
4156 | + mir::protobuf::wire::Result::default_instance*; |
4157 | + mir::protobuf::wire::Result::descriptor*; |
4158 | + mir::protobuf::wire::Result::GetMetadata*; |
4159 | + mir::protobuf::wire::Result::IsInitialized*; |
4160 | + mir::protobuf::wire::Result::kEventsFieldNumber*; |
4161 | + mir::protobuf::wire::Result::kIdFieldNumber*; |
4162 | + mir::protobuf::wire::Result::kResponseFieldNumber*; |
4163 | + mir::protobuf::wire::Result::MergeFrom*; |
4164 | + mir::protobuf::wire::Result::MergePartialFromCodedStream*; |
4165 | + mir::protobuf::wire::Result::New*; |
4166 | + mir::protobuf::wire::Result::?Result*; |
4167 | + mir::protobuf::wire::Result::Result*; |
4168 | + mir::protobuf::wire::Result::SerializeWithCachedSizes*; |
4169 | + mir::protobuf::wire::Result::SerializeWithCachedSizesToArray*; |
4170 | + mir::protobuf::wire::Result::Swap*; |
4171 | + mir::protobuf::wire::static_descriptor_initializer_mir_5fprotobuf_5fwire_2eproto_*; |
4172 | + mir::RecursiveReadWriteMutex::read_lock*; |
4173 | + mir::RecursiveReadWriteMutex::read_unlock*; |
4174 | + mir::RecursiveReadWriteMutex::write_lock*; |
4175 | + mir::RecursiveReadWriteMutex::write_unlock*; |
4176 | + mir::report::lttng::TracepointProvider::?TracepointProvider*; |
4177 | + mir::report::lttng::TracepointProvider::TracepointProvider*; |
4178 | + mir::set_thread_name*; |
4179 | + mir::SharedLibrary::load_symbol*; |
4180 | + mir::SharedLibrary::?SharedLibrary*; |
4181 | + mir::SharedLibrary::SharedLibrary*; |
4182 | + mir::udev::Context::?Context*; |
4183 | + mir::udev::Context::Context*; |
4184 | + mir::udev::Context::ctx*; |
4185 | + mir::udev::Context::device_from_syspath*; |
4186 | + mir::udev::Context::operator*; |
4187 | + mir::udev::Device::?Device*; |
4188 | + mir::udev::Device::Device*; |
4189 | + mir::udev::Device::devnode*; |
4190 | + mir::udev::Device::devpath*; |
4191 | + mir::udev::Device::devtype*; |
4192 | + mir::udev::Device::operator*; |
4193 | + mir::udev::Device::subsystem*; |
4194 | + mir::udev::Enumerator::begin*; |
4195 | + mir::udev::Enumerator::end*; |
4196 | + mir::udev::Enumerator::?Enumerator*; |
4197 | + mir::udev::Enumerator::Enumerator*; |
4198 | + mir::udev::Enumerator::iterator::operator*; |
4199 | + mir::udev::Enumerator::match_parent*; |
4200 | + mir::udev::Enumerator::match_subsystem*; |
4201 | + mir::udev::Enumerator::match_sysname*; |
4202 | + mir::udev::Enumerator::operator*; |
4203 | + mir::udev::Enumerator::scan_devices*; |
4204 | + mir::udev::Monitor::enable*; |
4205 | + mir::udev::Monitor::fd*; |
4206 | + mir::udev::Monitor::filter_by_subsystem*; |
4207 | + mir::udev::Monitor::filter_by_subsystem_and_type*; |
4208 | + mir::udev::Monitor::?Monitor*; |
4209 | + mir::udev::Monitor::Monitor*; |
4210 | + mir::udev::Monitor::operator*; |
4211 | + mir::udev::Monitor::process_events*; |
4212 | + mir::udev::operator*; |
4213 | + mir_vertical_resize_cursor_name*; |
4214 | + mir_vsplit_resize_cursor_name*; |
4215 | + typeinfo?for?MirBufferPackage; |
4216 | + typeinfo?for?MirDisplayCard; |
4217 | + typeinfo?for?MirDisplayConfiguration; |
4218 | + typeinfo?for?MirDisplayInfo; |
4219 | + typeinfo?for?MirDisplayMode; |
4220 | + typeinfo?for?MirDisplayOutput; |
4221 | + typeinfo?for?MirEventDelegate; |
4222 | + typeinfo?for?mir::Fd; |
4223 | + typeinfo?for?mir::geometry::Displacement; |
4224 | + typeinfo?for?mir::geometry::Length; |
4225 | + typeinfo?for?mir::geometry::Point; |
4226 | + typeinfo?for?mir::geometry::Rectangle; |
4227 | + typeinfo?for?mir::geometry::Rectangles; |
4228 | + typeinfo?for?mir::geometry::Size; |
4229 | + typeinfo?for?mir::graphics::android::AndroidDriverInterpreter; |
4230 | + typeinfo?for?mir::graphics::android::AndroidNativeBuffer; |
4231 | + typeinfo?for?mir::graphics::android::Fence; |
4232 | + typeinfo?for?mir::graphics::android::MirNativeWindow; |
4233 | + typeinfo?for?mir::graphics::android::RealSyncFileOps; |
4234 | + typeinfo?for?mir::graphics::android::RefCountedNativeBuffer; |
4235 | + typeinfo?for?mir::graphics::android::SyncFence; |
4236 | + typeinfo?for?mir::graphics::android::SyncFileOps; |
4237 | + typeinfo?for?mir::graphics::NativeBuffer; |
4238 | + typeinfo?for?MirGraphicsRegion; |
4239 | + typeinfo?for?mir::input::android::Lexicon; |
4240 | + typeinfo?for?mir::input::receiver::android::AndroidInputPlatform; |
4241 | + typeinfo?for?mir::input::receiver::android::InputReceiver; |
4242 | + typeinfo?for?mir::input::receiver::android::InputReceiverThread; |
4243 | + typeinfo?for?mir::input::receiver::InputPlatform; |
4244 | + typeinfo?for?mir::input::receiver::InputReceiverReport; |
4245 | + typeinfo?for?mir::input::receiver::InputReceiverThread; |
4246 | + typeinfo?for?mir::input::receiver::NullInputReceiverReport; |
4247 | + typeinfo?for?mir::input::receiver::XKBMapper; |
4248 | + typeinfo?for?mir::IntOwnedFd; |
4249 | + typeinfo?for?MirKeyEvent; |
4250 | + typeinfo?for?mir::logging::DumbConsoleLogger; |
4251 | + typeinfo?for?mir::logging::Logger; |
4252 | + typeinfo?for?mir::logging::SharedLibraryProberReport; |
4253 | + typeinfo?for?MirMesaEGLNativeDisplay; |
4254 | + typeinfo?for?MirMesaEGLNativeSurface; |
4255 | + typeinfo?for?MirMotionEvent; |
4256 | + typeinfo?for?MirMotionPointer; |
4257 | + typeinfo?for?MirOrientationEvent; |
4258 | + typeinfo?for?MirPlatformPackage; |
4259 | + typeinfo?for?MirPromptSessionEvent; |
4260 | + typeinfo?for?mir::protobuf::Buffer; |
4261 | + typeinfo?for?mir::protobuf::Connection; |
4262 | + typeinfo?for?mir::protobuf::ConnectParameters; |
4263 | + typeinfo?for?mir::protobuf::CursorSetting; |
4264 | + typeinfo?for?mir::protobuf::DisplayCard; |
4265 | + typeinfo?for?mir::protobuf::DisplayConfiguration; |
4266 | + typeinfo?for?mir::protobuf::DisplayInfo; |
4267 | + typeinfo?for?mir::protobuf::DisplayMode; |
4268 | + typeinfo?for?mir::protobuf::DisplayOutput; |
4269 | + typeinfo?for?mir::protobuf::DisplayServer; |
4270 | + typeinfo?for?mir::protobuf::DisplayServer_Stub; |
4271 | + typeinfo?for?mir::protobuf::DRMAuthMagicStatus; |
4272 | + typeinfo?for?mir::protobuf::DRMMagic; |
4273 | + typeinfo?for?mir::protobuf::Event; |
4274 | + typeinfo?for?mir::protobuf::EventSequence; |
4275 | + typeinfo?for?mir::protobuf::LifecycleEvent; |
4276 | + typeinfo?for?mir::protobuf::Platform; |
4277 | + typeinfo?for?mir::protobuf::PromptSessionParameters; |
4278 | + typeinfo?for?mir::protobuf::Rectangle; |
4279 | + typeinfo?for?mir::protobuf::Screencast; |
4280 | + typeinfo?for?mir::protobuf::ScreencastId; |
4281 | + typeinfo?for?mir::protobuf::ScreencastParameters; |
4282 | + typeinfo?for?mir::protobuf::SocketFD; |
4283 | + typeinfo?for?mir::protobuf::SocketFDRequest; |
4284 | + typeinfo?for?mir::protobuf::StaticDescriptorInitializer_mir_5fprotobuf_2eproto; |
4285 | + typeinfo?for?mir::protobuf::Surface; |
4286 | + typeinfo?for?mir::protobuf::SurfaceId; |
4287 | + typeinfo?for?mir::protobuf::SurfaceParameters; |
4288 | + typeinfo?for?mir::protobuf::SurfaceSetting; |
4289 | + typeinfo?for?mir::protobuf::Void; |
4290 | + typeinfo?for?mir::protobuf::wire::Invocation; |
4291 | + typeinfo?for?mir::protobuf::wire::Result; |
4292 | + typeinfo?for?mir::protobuf::wire::StaticDescriptorInitializer_mir_5fprotobuf_5fwire_2eproto; |
4293 | + typeinfo?for?MirRectangle; |
4294 | + typeinfo?for?mir::RecursiveReadLock; |
4295 | + typeinfo?for?mir::RecursiveReadWriteMutex; |
4296 | + typeinfo?for?mir::RecursiveWriteLock; |
4297 | + typeinfo?for?mir::report::lttng::TracepointProvider; |
4298 | + typeinfo?for?MirResizeEvent; |
4299 | + typeinfo?for?MirScreencastParameters; |
4300 | + typeinfo?for?mir::SharedLibrary; |
4301 | + typeinfo?for?MirSurfaceEvent; |
4302 | + typeinfo?for?MirSurfaceParameters; |
4303 | + typeinfo?for?mir::udev::Context; |
4304 | + typeinfo?for?mir::udev::Device; |
4305 | + typeinfo?for?mir::udev::Enumerator; |
4306 | + typeinfo?for?mir::udev::Enumerator::iterator; |
4307 | + typeinfo?for?mir::udev::Monitor; |
4308 | + vtable?for?MirBufferPackage; |
4309 | + vtable?for?MirDisplayCard; |
4310 | + vtable?for?MirDisplayConfiguration; |
4311 | + vtable?for?MirDisplayInfo; |
4312 | + vtable?for?MirDisplayMode; |
4313 | + vtable?for?MirDisplayOutput; |
4314 | + vtable?for?MirEventDelegate; |
4315 | + vtable?for?mir::Fd; |
4316 | + vtable?for?mir::geometry::Displacement; |
4317 | + vtable?for?mir::geometry::Length; |
4318 | + vtable?for?mir::geometry::Point; |
4319 | + vtable?for?mir::geometry::Rectangle; |
4320 | + vtable?for?mir::geometry::Rectangles; |
4321 | + vtable?for?mir::geometry::Size; |
4322 | + vtable?for?mir::graphics::android::AndroidDriverInterpreter; |
4323 | + vtable?for?mir::graphics::android::AndroidNativeBuffer; |
4324 | + vtable?for?mir::graphics::android::Fence; |
4325 | + vtable?for?mir::graphics::android::MirNativeWindow; |
4326 | + vtable?for?mir::graphics::android::RealSyncFileOps; |
4327 | + vtable?for?mir::graphics::android::RefCountedNativeBuffer; |
4328 | + vtable?for?mir::graphics::android::SyncFence; |
4329 | + vtable?for?mir::graphics::android::SyncFileOps; |
4330 | + vtable?for?mir::graphics::NativeBuffer; |
4331 | + vtable?for?MirGraphicsRegion; |
4332 | + vtable?for?mir::input::android::Lexicon; |
4333 | + vtable?for?mir::input::receiver::android::AndroidInputPlatform; |
4334 | + vtable?for?mir::input::receiver::android::InputReceiver; |
4335 | + vtable?for?mir::input::receiver::android::InputReceiverThread; |
4336 | + vtable?for?mir::input::receiver::InputPlatform; |
4337 | + vtable?for?mir::input::receiver::InputReceiverReport; |
4338 | + vtable?for?mir::input::receiver::InputReceiverThread; |
4339 | + vtable?for?mir::input::receiver::NullInputReceiverReport; |
4340 | + vtable?for?mir::input::receiver::XKBMapper; |
4341 | + vtable?for?mir::IntOwnedFd; |
4342 | + vtable?for?MirKeyEvent; |
4343 | + vtable?for?mir::logging::DumbConsoleLogger; |
4344 | + vtable?for?mir::logging::Logger; |
4345 | + vtable?for?mir::logging::SharedLibraryProberReport; |
4346 | + vtable?for?MirMesaEGLNativeDisplay; |
4347 | + vtable?for?MirMesaEGLNativeSurface; |
4348 | + vtable?for?MirMotionEvent; |
4349 | + vtable?for?MirMotionPointer; |
4350 | + vtable?for?MirOrientationEvent; |
4351 | + vtable?for?MirPlatformPackage; |
4352 | + vtable?for?MirPromptSessionEvent; |
4353 | + vtable?for?mir::protobuf::Buffer; |
4354 | + vtable?for?mir::protobuf::Connection; |
4355 | + vtable?for?mir::protobuf::ConnectParameters; |
4356 | + vtable?for?mir::protobuf::CursorSetting; |
4357 | + vtable?for?mir::protobuf::DisplayCard; |
4358 | + vtable?for?mir::protobuf::DisplayConfiguration; |
4359 | + vtable?for?mir::protobuf::DisplayInfo; |
4360 | + vtable?for?mir::protobuf::DisplayMode; |
4361 | + vtable?for?mir::protobuf::DisplayOutput; |
4362 | + vtable?for?mir::protobuf::DisplayServer; |
4363 | + vtable?for?mir::protobuf::DisplayServer_Stub; |
4364 | + vtable?for?mir::protobuf::DRMAuthMagicStatus; |
4365 | + vtable?for?mir::protobuf::DRMMagic; |
4366 | + vtable?for?mir::protobuf::Event; |
4367 | + vtable?for?mir::protobuf::EventSequence; |
4368 | + vtable?for?mir::protobuf::LifecycleEvent; |
4369 | + vtable?for?mir::protobuf::Platform; |
4370 | + vtable?for?mir::protobuf::PromptSessionParameters; |
4371 | + vtable?for?mir::protobuf::Rectangle; |
4372 | + vtable?for?mir::protobuf::Screencast; |
4373 | + vtable?for?mir::protobuf::ScreencastId; |
4374 | + vtable?for?mir::protobuf::ScreencastParameters; |
4375 | + vtable?for?mir::protobuf::SocketFD; |
4376 | + vtable?for?mir::protobuf::SocketFDRequest; |
4377 | + vtable?for?mir::protobuf::StaticDescriptorInitializer_mir_5fprotobuf_2eproto; |
4378 | + vtable?for?mir::protobuf::Surface; |
4379 | + vtable?for?mir::protobuf::SurfaceId; |
4380 | + vtable?for?mir::protobuf::SurfaceParameters; |
4381 | + vtable?for?mir::protobuf::SurfaceSetting; |
4382 | + vtable?for?mir::protobuf::Void; |
4383 | + vtable?for?mir::protobuf::wire::Invocation; |
4384 | + vtable?for?mir::protobuf::wire::Result; |
4385 | + vtable?for?mir::protobuf::wire::StaticDescriptorInitializer_mir_5fprotobuf_5fwire_2eproto; |
4386 | + vtable?for?MirRectangle; |
4387 | + vtable?for?mir::RecursiveReadLock; |
4388 | + vtable?for?mir::RecursiveReadWriteMutex; |
4389 | + vtable?for?mir::RecursiveWriteLock; |
4390 | + vtable?for?mir::report::lttng::TracepointProvider; |
4391 | + vtable?for?MirResizeEvent; |
4392 | + vtable?for?MirScreencastParameters; |
4393 | + vtable?for?mir::SharedLibrary; |
4394 | + vtable?for?MirSurfaceEvent; |
4395 | + vtable?for?MirSurfaceParameters; |
4396 | + vtable?for?mir::udev::Context; |
4397 | + vtable?for?mir::udev::Device; |
4398 | + vtable?for?mir::udev::Enumerator; |
4399 | + vtable?for?mir::udev::Enumerator::iterator; |
4400 | + vtable?for?mir::udev::Monitor; |
4401 | + |
4402 | + mir::time::Clock::?Clock*; |
4403 | + mir::time::Clock::Clock*; |
4404 | + mir::time::Clock::sample*; |
4405 | + non-virtual?thunk?to?mir::time::Clock::?Clock*; |
4406 | + typeinfo?for?mir::time::Clock; |
4407 | + vtable?for?mir::time::Clock; |
4408 | + |
4409 | + mir::time::HighResolutionClock::sample*; |
4410 | + non-virtual?thunk?to?mir::time::HighResolutionClock::sample*; |
4411 | + typeinfo?for?mir::time::HighResolutionClock; |
4412 | + vtable?for?mir::time::HighResolutionClock; |
4413 | + }; |
4414 | + local: *; |
4415 | +}; |
4416 | + |
4417 | +MIR_COMMON_2.1 { |
4418 | + global: |
4419 | + extern "C++" { |
4420 | + mir::send_fds*; |
4421 | + }; |
4422 | + local: *; |
4423 | +}; |
4424 | +>>>>>>> MERGE-SOURCE |
4425 | |
4426 | === renamed directory 'src/server/time' => 'src/common/time' |
4427 | === modified file 'src/common/time/high_resolution_clock.cpp' |
4428 | --- src/server/time/high_resolution_clock.cpp 2013-04-24 05:22:20 +0000 |
4429 | +++ src/common/time/high_resolution_clock.cpp 2014-09-23 17:34:29 +0000 |
4430 | @@ -2,15 +2,15 @@ |
4431 | * Copyright © 2013 Canonical Ltd. |
4432 | * |
4433 | * This program is free software: you can redistribute it and/or modify it |
4434 | - * under the terms of the GNU General Public License version 3, |
4435 | + * under the terms of the GNU Lesser General Public License version 3, |
4436 | * as published by the Free Software Foundation. |
4437 | * |
4438 | * This program is distributed in the hope that it will be useful, |
4439 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
4440 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
4441 | - * GNU General Public License for more details. |
4442 | + * GNU Lesser General Public License for more details. |
4443 | * |
4444 | - * You should have received a copy of the GNU General Public License |
4445 | + * You should have received a copy of the GNU Lesser General Public License |
4446 | * along with this program. If not, see <http://www.gnu.org/licenses/>. |
4447 | * |
4448 | * Authored by: Alan Griffiths <alan@octopull.co.uk> |
4449 | |
4450 | === added directory 'src/include' |
4451 | === added directory 'src/include/common' |
4452 | === added directory 'src/include/common/mir' |
4453 | === renamed file 'include/shared/mir/basic_observers.h' => 'src/include/common/mir/basic_observers.h' |
4454 | === renamed file 'include/shared/mir/default_configuration.h' => 'src/include/common/mir/default_configuration.h' |
4455 | === added file 'src/include/common/mir/fd_socket_transmission.h' |
4456 | --- src/include/common/mir/fd_socket_transmission.h 1970-01-01 00:00:00 +0000 |
4457 | +++ src/include/common/mir/fd_socket_transmission.h 2014-09-23 17:34:29 +0000 |
4458 | @@ -0,0 +1,28 @@ |
4459 | +/* |
4460 | + * Copyright © 2014 Canonical Ltd. |
4461 | + * |
4462 | + * This program is free software: you can redistribute it and/or modify it |
4463 | + * under the terms of the GNU Lesser General Public License version 3, |
4464 | + * as published by the Free Software Foundation. |
4465 | + * |
4466 | + * This program is distributed in the hope that it will be useful, |
4467 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of |
4468 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
4469 | + * GNU Lesser General Public License for more details. |
4470 | + * |
4471 | + * You should have received a copy of the GNU Lesser General Public License |
4472 | + * along with this program. If not, see <http://www.gnu.org/licenses/>. |
4473 | + * |
4474 | + * Authored by: Kevin DuBois <kevin.dubois@canonical.com> |
4475 | + */ |
4476 | + |
4477 | +#ifndef MIR_FD_SOCKET_TRANSMISSION_H_ |
4478 | +#define MIR_FD_SOCKET_TRANSMISSION_H_ |
4479 | +#include "mir/fd.h" |
4480 | +#include <vector> |
4481 | + |
4482 | +namespace mir |
4483 | +{ |
4484 | +void send_fds(mir::Fd const& socket, std::vector<mir::Fd> const& fd); |
4485 | +} |
4486 | +#endif /* MIR_FD_SOCKET_TRANSMISSION_H_ */ |
4487 | |
4488 | === added directory 'src/include/common/mir/frontend' |
4489 | === renamed file 'include/shared/mir/frontend/client_constants.h' => 'src/include/common/mir/frontend/client_constants.h' |
4490 | === added directory 'src/include/common/mir/geometry' |
4491 | === renamed file 'include/shared/mir/geometry/displacement.h' => 'src/include/common/mir/geometry/displacement.h' |
4492 | --- include/shared/mir/geometry/displacement.h 2014-03-06 06:05:17 +0000 |
4493 | +++ src/include/common/mir/geometry/displacement.h 2014-09-23 17:34:29 +0000 |
4494 | @@ -19,8 +19,8 @@ |
4495 | #ifndef MIR_GEOMETRY_DISPLACEMENT_H_ |
4496 | #define MIR_GEOMETRY_DISPLACEMENT_H_ |
4497 | |
4498 | -#include "dimensions.h" |
4499 | -#include "point.h" |
4500 | +#include "mir/geometry/dimensions.h" |
4501 | +#include "mir/geometry/point.h" |
4502 | |
4503 | #include <iosfwd> |
4504 | |
4505 | |
4506 | === renamed file 'include/shared/mir/geometry/forward.h' => 'src/include/common/mir/geometry/forward.h' |
4507 | === renamed file 'include/shared/mir/geometry/length.h' => 'src/include/common/mir/geometry/length.h' |
4508 | === added directory 'src/include/common/mir/graphics' |
4509 | === added directory 'src/include/common/mir/graphics/android' |
4510 | === renamed file 'include/shared/mir/graphics/android/android_driver_interpreter.h' => 'src/include/common/mir/graphics/android/android_driver_interpreter.h' |
4511 | === renamed file 'include/shared/mir/graphics/android/android_native_buffer.h' => 'src/include/common/mir/graphics/android/android_native_buffer.h' |
4512 | === renamed file 'include/shared/mir/graphics/android/fence.h' => 'src/include/common/mir/graphics/android/fence.h' |
4513 | === renamed file 'include/shared/mir/graphics/android/mir_native_window.h' => 'src/include/common/mir/graphics/android/mir_native_window.h' |
4514 | === renamed file 'include/shared/mir/graphics/android/native_buffer.h' => 'src/include/common/mir/graphics/android/native_buffer.h' |
4515 | === renamed file 'include/shared/mir/graphics/android/sync_fence.h' => 'src/include/common/mir/graphics/android/sync_fence.h' |
4516 | === added directory 'src/include/common/mir/input' |
4517 | === added directory 'src/include/common/mir/input/android' |
4518 | === renamed file 'include/shared/mir/input/android/android_input_lexicon.h' => 'src/include/common/mir/input/android/android_input_lexicon.h' |
4519 | === renamed file 'include/shared/mir/input/input_receiver_report.h' => 'src/include/common/mir/input/input_receiver_report.h' |
4520 | === renamed file 'include/shared/mir/input/null_input_receiver_report.h' => 'src/include/common/mir/input/null_input_receiver_report.h' |
4521 | === renamed file 'include/shared/mir/input/xkb_mapper.h' => 'src/include/common/mir/input/xkb_mapper.h' |
4522 | === added directory 'src/include/common/mir/logging' |
4523 | === renamed file 'include/shared/mir/logging/dumb_console_logger.h' => 'src/include/common/mir/logging/dumb_console_logger.h' |
4524 | === renamed file 'include/shared/mir/logging/input_timestamp.h' => 'src/include/common/mir/logging/input_timestamp.h' |
4525 | === renamed file 'include/shared/mir/logging/logger.h' => 'src/include/common/mir/logging/logger.h' |
4526 | === added file 'src/include/common/mir/logging/null_shared_library_prober_report.h' |
4527 | --- src/include/common/mir/logging/null_shared_library_prober_report.h 1970-01-01 00:00:00 +0000 |
4528 | +++ src/include/common/mir/logging/null_shared_library_prober_report.h 2014-09-23 17:34:29 +0000 |
4529 | @@ -0,0 +1,49 @@ |
4530 | +/* |
4531 | + * Copyright © 2014 Canonical Ltd. |
4532 | + * |
4533 | + * This program is free software: you can redistribute it and/or modify |
4534 | + * it under the terms of the GNU Lesser General Public License version 3 as |
4535 | + * published by the Free Software Foundation. |
4536 | + * |
4537 | + * This program is distributed in the hope that it will be useful, |
4538 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of |
4539 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
4540 | + * GNU Lesser General Public License for more details. |
4541 | + * |
4542 | + * You should have received a copy of the GNU Lesser General Public License |
4543 | + * along with this program. If not, see <http://www.gnu.org/licenses/>. |
4544 | + * |
4545 | + * Authored by: Christopher James Halse Rogers <christopher.halse.rogers@canonical.com> |
4546 | + */ |
4547 | + |
4548 | +#ifndef MIR_LOGGING_NULL_SHARED_LIBRARY_PROBER_REPORT_H_ |
4549 | +#define MIR_LOGGING_NULL_SHARED_LIBRARY_PROBER_REPORT_H_ |
4550 | + |
4551 | +#include "mir/shared_library_prober_report.h" |
4552 | + |
4553 | +namespace mir |
4554 | +{ |
4555 | +namespace logging |
4556 | +{ |
4557 | + |
4558 | +class NullSharedLibraryProberReport : public mir::SharedLibraryProberReport |
4559 | +{ |
4560 | +public: |
4561 | + void probing_path(boost::filesystem::path const& /*path*/) override |
4562 | + { |
4563 | + } |
4564 | + void probing_failed(boost::filesystem::path const& /*path*/, std::exception const& /*error*/) override |
4565 | + { |
4566 | + } |
4567 | + void loading_library(boost::filesystem::path const& /*filename*/) override |
4568 | + { |
4569 | + } |
4570 | + void loading_failed(boost::filesystem::path const& /*filename*/, std::exception const& /*error*/) override |
4571 | + { |
4572 | + } |
4573 | +}; |
4574 | + |
4575 | +} |
4576 | +} |
4577 | + |
4578 | +#endif /* MIR_LOGGING_NULL_SHARED_LIBRARY_PROBER_REPORT_H_ */ |
4579 | |
4580 | === added file 'src/include/common/mir/logging/shared_library_prober_report.h' |
4581 | --- src/include/common/mir/logging/shared_library_prober_report.h 1970-01-01 00:00:00 +0000 |
4582 | +++ src/include/common/mir/logging/shared_library_prober_report.h 2014-09-23 17:34:29 +0000 |
4583 | @@ -0,0 +1,48 @@ |
4584 | +/* |
4585 | + * Copyright © 2014 Canonical Ltd. |
4586 | + * |
4587 | + * This program is free software: you can redistribute it and/or modify |
4588 | + * it under the terms of the GNU Lesser General Public License version 3 as |
4589 | + * published by the Free Software Foundation. |
4590 | + * |
4591 | + * This program is distributed in the hope that it will be useful, |
4592 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of |
4593 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
4594 | + * GNU Lesser General Public License for more details. |
4595 | + * |
4596 | + * You should have received a copy of the GNU Lesser General Public License |
4597 | + * along with this program. If not, see <http://www.gnu.org/licenses/>. |
4598 | + * |
4599 | + * Authored by: Christopher James Halse Rogers <christopher.halse.rogers@canonical.com> |
4600 | + */ |
4601 | + |
4602 | +#ifndef MIR_LOGGING_SHARED_LIBRARY_PROBER_REPORT_H_ |
4603 | +#define MIR_LOGGING_SHARED_LIBRARY_PROBER_REPORT_H_ |
4604 | + |
4605 | +#include "mir/shared_library_prober_report.h" |
4606 | +#include <memory> |
4607 | + |
4608 | +namespace mir |
4609 | +{ |
4610 | +namespace logging |
4611 | +{ |
4612 | +class Logger; |
4613 | + |
4614 | +class SharedLibraryProberReport : public mir::SharedLibraryProberReport |
4615 | +{ |
4616 | +public: |
4617 | + SharedLibraryProberReport(std::shared_ptr<Logger> const& logger); |
4618 | + |
4619 | + void probing_path(boost::filesystem::path const& path) override; |
4620 | + void probing_failed(boost::filesystem::path const& path, std::exception const& error) override; |
4621 | + void loading_library(boost::filesystem::path const& filename) override; |
4622 | + void loading_failed(boost::filesystem::path const& filename, std::exception const& error) override; |
4623 | + |
4624 | +private: |
4625 | + std::shared_ptr<Logger> const logger; |
4626 | +}; |
4627 | + |
4628 | +} |
4629 | +} |
4630 | + |
4631 | +#endif /* MIR_LOGGING_SHARED_LIBRARY_PROBER_REPORT_H_ */ |
4632 | |
4633 | === added directory 'src/include/common/mir/protobuf' |
4634 | === renamed file 'include/shared/mir/protobuf/google_protobuf_guard.h' => 'src/include/common/mir/protobuf/google_protobuf_guard.h' |
4635 | === renamed file 'include/shared/mir/raii.h' => 'src/include/common/mir/raii.h' |
4636 | === renamed file 'include/shared/mir/recursive_read_write_mutex.h' => 'src/include/common/mir/recursive_read_write_mutex.h' |
4637 | === added directory 'src/include/common/mir/report' |
4638 | === added directory 'src/include/common/mir/report/lttng' |
4639 | === renamed file 'include/shared/mir/report/lttng/mir_tracepoint.h' => 'src/include/common/mir/report/lttng/mir_tracepoint.h' |
4640 | --- include/shared/mir/report/lttng/mir_tracepoint.h 2014-03-06 06:05:17 +0000 |
4641 | +++ src/include/common/mir/report/lttng/mir_tracepoint.h 2014-09-23 17:34:29 +0000 |
4642 | @@ -19,23 +19,6 @@ |
4643 | #ifndef MIR_LTTNG_MIR_TRACEPOINT_H_ |
4644 | #define MIR_LTTNG_MIR_TRACEPOINT_H_ |
4645 | |
4646 | -/* |
4647 | - * The STAP_PROBEV() macro from sdt.h (SystemTap) used by |
4648 | - * the tracepoint() macro from lttng/tracepoint.h fails to |
4649 | - * build with clang at the moment. Disable tracepoints |
4650 | - * when building with clang until this is resolved. |
4651 | - * |
4652 | - * See: http://sourceware.org/bugzilla/show_bug.cgi?id=13974 |
4653 | - */ |
4654 | -#ifdef __clang__ |
4655 | -namespace mir_systemtap_bug_13974 |
4656 | -{ |
4657 | -inline void mir_tracepoint_consume_args(int, ...) {} |
4658 | -} |
4659 | -#define mir_tracepoint(c, e, ...) ::mir_systemtap_bug_13974::mir_tracepoint_consume_args(0, __VA_ARGS__) |
4660 | -#pragma message "Building with clang: Disabling LTTng tracepoints." |
4661 | -#else |
4662 | #define mir_tracepoint(c, ...) tracepoint(c, __VA_ARGS__) |
4663 | -#endif |
4664 | |
4665 | #endif /* MIR_LTTNG_MIR_TRACEPOINT_H_ */ |
4666 | |
4667 | === renamed file 'include/shared/mir/report/lttng/tracepoint_provider.h' => 'src/include/common/mir/report/lttng/tracepoint_provider.h' |
4668 | === renamed file 'include/shared/mir/shared_library.h' => 'src/include/common/mir/shared_library.h' |
4669 | --- include/shared/mir/shared_library.h 2014-03-26 05:48:59 +0000 |
4670 | +++ src/include/common/mir/shared_library.h 2014-09-23 17:34:29 +0000 |
4671 | @@ -43,9 +43,18 @@ |
4672 | { |
4673 | return load_function<FunctionPtr>(function_name.c_str()); |
4674 | } |
4675 | + |
4676 | + template<typename FunctionPtr> |
4677 | + FunctionPtr load_function(std::string const& function_name, std::string const& version) const |
4678 | + { |
4679 | + FunctionPtr result{}; |
4680 | + (void*&)result = load_symbol(function_name.c_str(), version.c_str()); |
4681 | + return result; |
4682 | + } |
4683 | private: |
4684 | void* const so; |
4685 | void* load_symbol(char const* function_name) const; |
4686 | + void* load_symbol(char const* function_name, char const* version) const; |
4687 | SharedLibrary(SharedLibrary const&) = delete; |
4688 | SharedLibrary& operator=(SharedLibrary const&) = delete; |
4689 | }; |
4690 | |
4691 | === added file 'src/include/common/mir/shared_library_prober.h' |
4692 | --- src/include/common/mir/shared_library_prober.h 1970-01-01 00:00:00 +0000 |
4693 | +++ src/include/common/mir/shared_library_prober.h 2014-09-23 17:34:29 +0000 |
4694 | @@ -0,0 +1,36 @@ |
4695 | +/* |
4696 | + * Copyright © 2014 Canonical Ltd. |
4697 | + * |
4698 | + * This program is free software: you can redistribute it and/or modify it |
4699 | + * under the terms of the GNU Lesser General Public License version 3, |
4700 | + * as published by the Free Software Foundation. |
4701 | + * |
4702 | + * This program is distributed in the hope that it will be useful, |
4703 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of |
4704 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
4705 | + * GNU Lesser General Public License for more details. |
4706 | + * |
4707 | + * You should have received a copy of the GNU Lesser General Public License |
4708 | + * along with this program. If not, see <http://www.gnu.org/licenses/>. |
4709 | + * |
4710 | + * Authored by: Christopher James Halse Rogers <christopher.halse.rogers@canonical.com> |
4711 | + */ |
4712 | + |
4713 | +#ifndef MIR_SHARED_LIBRARY_PROBER_H_ |
4714 | +#define MIR_SHARED_LIBRARY_PROBER_H_ |
4715 | + |
4716 | +#include "shared_library_prober_report.h" |
4717 | + |
4718 | +#include <string> |
4719 | +#include <vector> |
4720 | +#include <memory> |
4721 | + |
4722 | +namespace mir |
4723 | +{ |
4724 | +class SharedLibrary; |
4725 | + |
4726 | +std::vector<std::shared_ptr<SharedLibrary>> libraries_for_path(std::string const& path, SharedLibraryProberReport& report); |
4727 | +} |
4728 | + |
4729 | + |
4730 | +#endif /* MIR_SHARED_LIBRARY_PROBER_H_ */ |
4731 | |
4732 | === added file 'src/include/common/mir/shared_library_prober_report.h' |
4733 | --- src/include/common/mir/shared_library_prober_report.h 1970-01-01 00:00:00 +0000 |
4734 | +++ src/include/common/mir/shared_library_prober_report.h 2014-09-23 17:34:29 +0000 |
4735 | @@ -0,0 +1,44 @@ |
4736 | +/* |
4737 | + * Copyright © 2014 Canonical Ltd. |
4738 | + * |
4739 | + * This program is free software: you can redistribute it and/or modify it |
4740 | + * under the terms of the GNU Lesser General Public License version 3, |
4741 | + * as published by the Free Software Foundation. |
4742 | + * |
4743 | + * This program is distributed in the hope that it will be useful, |
4744 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of |
4745 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
4746 | + * GNU Lesser General Public License for more details. |
4747 | + * |
4748 | + * You should have received a copy of the GNU Lesser General Public License |
4749 | + * along with this program. If not, see <http://www.gnu.org/licenses/>. |
4750 | + * |
4751 | + * Authored by: Christopher James Halse Rogers <christopher.halse.rogers@canonical.com> |
4752 | + */ |
4753 | + |
4754 | +#ifndef MIR_SHARED_LIBRARY_PROBER_REPORT_H_ |
4755 | +#define MIR_SHARED_LIBRARY_PROBER_REPORT_H_ |
4756 | + |
4757 | +#include <boost/filesystem.hpp> |
4758 | + |
4759 | +namespace mir |
4760 | +{ |
4761 | +class SharedLibraryProberReport |
4762 | +{ |
4763 | +public: |
4764 | + virtual ~SharedLibraryProberReport() = default; |
4765 | + |
4766 | + virtual void probing_path(boost::filesystem::path const& path) = 0; |
4767 | + virtual void probing_failed(boost::filesystem::path const& path, std::exception const& error) = 0; |
4768 | + virtual void loading_library(boost::filesystem::path const& filename) = 0; |
4769 | + virtual void loading_failed(boost::filesystem::path const& filename, std::exception const& error) = 0; |
4770 | + |
4771 | +protected: |
4772 | + SharedLibraryProberReport() = default; |
4773 | + SharedLibraryProberReport(SharedLibraryProberReport const&) = delete; |
4774 | + SharedLibraryProberReport& operator=(SharedLibraryProberReport const&) = delete; |
4775 | +}; |
4776 | +} |
4777 | + |
4778 | + |
4779 | +#endif /* MIR_SHARED_LIBRARY_PROBER_REPORT_H_ */ |
4780 | |
4781 | === renamed file 'include/shared/mir/thread_name.h' => 'src/include/common/mir/thread_name.h' |
4782 | === added directory 'src/include/common/mir/time' |
4783 | === renamed file 'include/server/mir/time/high_resolution_clock.h' => 'src/include/common/mir/time/high_resolution_clock.h' |
4784 | --- include/server/mir/time/high_resolution_clock.h 2014-03-06 06:05:17 +0000 |
4785 | +++ src/include/common/mir/time/high_resolution_clock.h 2014-09-23 17:34:29 +0000 |
4786 | @@ -2,15 +2,15 @@ |
4787 | * Copyright © 2013 Canonical Ltd. |
4788 | * |
4789 | * This program is free software: you can redistribute it and/or modify it |
4790 | - * under the terms of the GNU General Public License version 3, |
4791 | + * under the terms of the GNU Lesser General Public License version 3, |
4792 | * as published by the Free Software Foundation. |
4793 | * |
4794 | * This program is distributed in the hope that it will be useful, |
4795 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
4796 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
4797 | - * GNU General Public License for more details. |
4798 | + * GNU Lesser General Public License for more details. |
4799 | * |
4800 | - * You should have received a copy of the GNU General Public License |
4801 | + * You should have received a copy of the GNU Lesser General Public License |
4802 | * along with this program. If not, see <http://www.gnu.org/licenses/>. |
4803 | * |
4804 | * Authored by: Alan Griffiths <alan@octopull.co.uk> |
4805 | |
4806 | === added directory 'src/include/common/mir/udev' |
4807 | === renamed file 'include/shared/mir/udev/wrapper.h' => 'src/include/common/mir/udev/wrapper.h' |
4808 | === renamed file 'include/shared/mir/variable_length_array.h' => 'src/include/common/mir/variable_length_array.h' |
4809 | === added directory 'src/include/platform' |
4810 | === added directory 'src/include/platform/mir' |
4811 | === renamed file 'include/platform/mir/emergency_cleanup_registry.h' => 'src/include/platform/mir/emergency_cleanup_registry.h' |
4812 | === renamed file 'include/platform/mir/fatal.h' => 'src/include/platform/mir/fatal.h' |
4813 | === added directory 'src/include/platform/mir/graphics' |
4814 | === renamed file 'include/platform/mir/graphics/buffer_basic.h' => 'src/include/platform/mir/graphics/buffer_basic.h' |
4815 | === renamed file 'include/platform/mir/graphics/buffer_initializer.h' => 'src/include/platform/mir/graphics/buffer_initializer.h' |
4816 | === renamed file 'include/platform/mir/graphics/buffer_ipc_packer.h' => 'src/include/platform/mir/graphics/buffer_ipc_packer.h' |
4817 | === added file 'src/include/platform/mir/graphics/buffer_writer.h' |
4818 | --- src/include/platform/mir/graphics/buffer_writer.h 1970-01-01 00:00:00 +0000 |
4819 | +++ src/include/platform/mir/graphics/buffer_writer.h 2014-09-23 17:34:29 +0000 |
4820 | @@ -0,0 +1,44 @@ |
4821 | +/* |
4822 | + * Copyright © 2014 Canonical Ltd. |
4823 | + * |
4824 | + * This program is free software: you can redistribute it and/or modify it |
4825 | + * under the terms of the GNU Lesser General Public License version 3, |
4826 | + * as published by the Free Software Foundation. |
4827 | + * |
4828 | + * This program is distributed in the hope that it will be useful, |
4829 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of |
4830 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
4831 | + * GNU Lesser General Public License for more details. |
4832 | + * |
4833 | + * You should have received a copy of the GNU Lesser General Public License |
4834 | + * along with this program. If not, see <http://www.gnu.org/licenses/>. |
4835 | + * |
4836 | + * Authored by: Robert Carr <robert.carr@canonical.com> |
4837 | + */ |
4838 | + |
4839 | +#include <cstddef> |
4840 | + |
4841 | +namespace mir |
4842 | +{ |
4843 | +namespace graphics |
4844 | +{ |
4845 | +class Buffer; |
4846 | + |
4847 | +/// An interface provided by the graphics platform allowing for writing untiled pixel data into buffers. |
4848 | +class BufferWriter |
4849 | +{ |
4850 | +public: |
4851 | + virtual ~BufferWriter() = default; |
4852 | + |
4853 | + // Expects data to be an unstrided array containing (buffer.width * buffer.height) pixels. Likewise |
4854 | + // it is expected that buffer and data match in pixel format. |
4855 | + virtual void write(Buffer& buffer, unsigned char const* data, size_t size) = 0; |
4856 | + |
4857 | +protected: |
4858 | + BufferWriter() = default; |
4859 | + BufferWriter(BufferWriter const&) = delete; |
4860 | + BufferWriter& operator=(BufferWriter const&) = delete; |
4861 | +}; |
4862 | + |
4863 | +} |
4864 | +} |
4865 | |
4866 | === renamed file 'include/platform/mir/graphics/cursor.h' => 'src/include/platform/mir/graphics/cursor.h' |
4867 | === renamed file 'include/platform/mir/graphics/cursor_image.h' => 'src/include/platform/mir/graphics/cursor_image.h' |
4868 | === renamed file 'include/platform/mir/graphics/display_report.h' => 'src/include/platform/mir/graphics/display_report.h' |
4869 | === renamed file 'include/platform/mir/graphics/drm_authenticator.h' => 'src/include/platform/mir/graphics/drm_authenticator.h' |
4870 | === renamed file 'include/platform/mir/graphics/egl_extensions.h' => 'src/include/platform/mir/graphics/egl_extensions.h' |
4871 | === renamed file 'include/platform/mir/graphics/egl_resources.h' => 'src/include/platform/mir/graphics/egl_resources.h' |
4872 | === renamed file 'include/platform/mir/graphics/gl_primitive.h' => 'src/include/platform/mir/graphics/gl_primitive.h' |
4873 | === renamed file 'include/platform/mir/graphics/gl_program.h' => 'src/include/platform/mir/graphics/gl_program.h' |
4874 | === renamed file 'include/platform/mir/graphics/gl_program_factory.h' => 'src/include/platform/mir/graphics/gl_program_factory.h' |
4875 | === renamed file 'include/platform/mir/graphics/gl_texture.h' => 'src/include/platform/mir/graphics/gl_texture.h' |
4876 | === renamed file 'include/platform/mir/graphics/gl_texture_cache.h' => 'src/include/platform/mir/graphics/gl_texture_cache.h' |
4877 | === renamed file 'include/platform/mir/graphics/native_platform.h' => 'src/include/platform/mir/graphics/native_platform.h' |
4878 | --- include/platform/mir/graphics/native_platform.h 2014-06-16 23:37:57 +0000 |
4879 | +++ src/include/platform/mir/graphics/native_platform.h 2014-09-23 17:34:29 +0000 |
4880 | @@ -36,6 +36,7 @@ |
4881 | class InternalClient; |
4882 | class BufferIPCPacker; |
4883 | class Buffer; |
4884 | +class BufferWriter; |
4885 | class DisplayReport; |
4886 | class NestedContext; |
4887 | |
4888 | @@ -58,6 +59,8 @@ |
4889 | Buffer const* buffer, |
4890 | BufferIpcMsgType msg_type) const = 0; |
4891 | |
4892 | + virtual std::shared_ptr<BufferWriter> make_buffer_writer() = 0; |
4893 | + |
4894 | virtual ~NativePlatform() = default; |
4895 | NativePlatform(NativePlatform const&) = delete; |
4896 | NativePlatform& operator=(NativePlatform const&) = delete; |
4897 | |
4898 | === renamed file 'include/platform/mir/graphics/nested_context.h' => 'src/include/platform/mir/graphics/nested_context.h' |
4899 | === renamed file 'include/platform/mir/graphics/overlapping_output_grouping.h' => 'src/include/platform/mir/graphics/overlapping_output_grouping.h' |
4900 | === renamed file 'include/platform/mir/graphics/pixel_format_utils.h' => 'src/include/platform/mir/graphics/pixel_format_utils.h' |
4901 | === renamed file 'include/platform/mir/graphics/platform_ipc_package.h' => 'src/include/platform/mir/graphics/platform_ipc_package.h' |
4902 | === renamed file 'include/platform/mir/graphics/tessellation_helpers.h' => 'src/include/platform/mir/graphics/tessellation_helpers.h' |
4903 | === renamed file 'include/platform/mir/shared_library_loader.h' => 'src/include/platform/mir/shared_library_loader.h' |
4904 | === added directory 'src/include/server' |
4905 | === added directory 'src/include/server/mir' |
4906 | === renamed file 'include/server/mir/asio_main_loop.h' => 'src/include/server/mir/asio_main_loop.h' |
4907 | === added directory 'src/include/server/mir/compositor' |
4908 | === renamed file 'include/server/mir/compositor/buffer_stream.h' => 'src/include/server/mir/compositor/buffer_stream.h' |
4909 | === renamed file 'include/server/mir/compositor/compositor_id.h' => 'src/include/server/mir/compositor/compositor_id.h' |
4910 | === renamed file 'include/server/mir/compositor/compositor_report.h' => 'src/include/server/mir/compositor/compositor_report.h' |
4911 | === renamed file 'include/server/mir/compositor/destination_alpha.h' => 'src/include/server/mir/compositor/destination_alpha.h' |
4912 | === renamed file 'include/server/mir/compositor/display_buffer_compositor.h' => 'src/include/server/mir/compositor/display_buffer_compositor.h' |
4913 | === renamed file 'include/server/mir/compositor/display_buffer_compositor_factory.h' => 'src/include/server/mir/compositor/display_buffer_compositor_factory.h' |
4914 | === renamed file 'include/server/mir/compositor/frame_dropping_policy.h' => 'src/include/server/mir/compositor/frame_dropping_policy.h' |
4915 | === renamed file 'include/server/mir/compositor/frame_dropping_policy_factory.h' => 'src/include/server/mir/compositor/frame_dropping_policy_factory.h' |
4916 | === renamed file 'include/server/mir/compositor/gl_renderer.h' => 'src/include/server/mir/compositor/gl_renderer.h' |
4917 | === renamed file 'include/server/mir/compositor/recently_used_cache.h' => 'src/include/server/mir/compositor/recently_used_cache.h' |
4918 | --- include/server/mir/compositor/recently_used_cache.h 2014-05-20 16:24:02 +0000 |
4919 | +++ src/include/server/mir/compositor/recently_used_cache.h 2014-09-23 17:34:29 +0000 |
4920 | @@ -45,6 +45,7 @@ |
4921 | std::shared_ptr<graphics::GLTexture> texture; |
4922 | graphics::BufferID last_bound_buffer; |
4923 | bool used{true}; |
4924 | + bool valid_binding{false}; |
4925 | std::shared_ptr<graphics::Buffer> resource; |
4926 | }; |
4927 | |
4928 | |
4929 | === renamed file 'include/server/mir/compositor/renderer.h' => 'src/include/server/mir/compositor/renderer.h' |
4930 | === renamed file 'include/server/mir/compositor/renderer_factory.h' => 'src/include/server/mir/compositor/renderer_factory.h' |
4931 | === renamed file 'include/server/mir/compositor/scene.h' => 'src/include/server/mir/compositor/scene.h' |
4932 | === renamed file 'include/server/mir/compositor/scene_element.h' => 'src/include/server/mir/compositor/scene_element.h' |
4933 | --- include/server/mir/compositor/scene_element.h 2014-06-20 17:57:16 +0000 |
4934 | +++ src/include/server/mir/compositor/scene_element.h 2014-09-23 17:34:29 +0000 |
4935 | @@ -39,6 +39,10 @@ |
4936 | virtual std::shared_ptr<graphics::Renderable> renderable() const = 0; |
4937 | virtual void rendered_in(CompositorID cid) = 0; |
4938 | virtual void occluded_in(CompositorID cid) = 0; |
4939 | + |
4940 | + // Query whether the SceneElement represents a window-surface, which at the discretion of the compositor |
4941 | + // may be eligible for window decoration. |
4942 | + virtual bool is_a_surface() const = 0; |
4943 | |
4944 | protected: |
4945 | SceneElement() = default; |
4946 | |
4947 | === renamed file 'include/server/mir/default_server_status_listener.h' => 'src/include/server/mir/default_server_status_listener.h' |
4948 | === renamed file 'include/server/mir/display_changer.h' => 'src/include/server/mir/display_changer.h' |
4949 | === renamed file 'include/server/mir/emergency_cleanup.h' => 'src/include/server/mir/emergency_cleanup.h' |
4950 | === added directory 'src/include/server/mir/frontend' |
4951 | === renamed file 'include/server/mir/frontend/connection_context.h' => 'src/include/server/mir/frontend/connection_context.h' |
4952 | === renamed file 'include/server/mir/frontend/connector.h' => 'src/include/server/mir/frontend/connector.h' |
4953 | === renamed file 'include/server/mir/frontend/connector_report.h' => 'src/include/server/mir/frontend/connector_report.h' |
4954 | === renamed file 'include/server/mir/frontend/display_changer.h' => 'src/include/server/mir/frontend/display_changer.h' |
4955 | === renamed file 'include/server/mir/frontend/event_sink.h' => 'src/include/server/mir/frontend/event_sink.h' |
4956 | === renamed file 'include/server/mir/frontend/message_processor_report.h' => 'src/include/server/mir/frontend/message_processor_report.h' |
4957 | === renamed file 'include/server/mir/frontend/screencast.h' => 'src/include/server/mir/frontend/screencast.h' |
4958 | === renamed file 'include/server/mir/frontend/session_mediator_report.h' => 'src/include/server/mir/frontend/session_mediator_report.h' |
4959 | --- include/server/mir/frontend/session_mediator_report.h 2014-07-21 03:35:31 +0000 |
4960 | +++ src/include/server/mir/frontend/session_mediator_report.h 2014-09-23 17:34:29 +0000 |
4961 | @@ -40,6 +40,8 @@ |
4962 | |
4963 | virtual void session_next_buffer_called(std::string const& app_name) = 0; |
4964 | |
4965 | + virtual void session_exchange_buffer_called(std::string const& app_name) = 0; |
4966 | + |
4967 | virtual void session_release_surface_called(std::string const& app_name) = 0; |
4968 | |
4969 | virtual void session_disconnect_called(std::string const& app_name) = 0; |
4970 | |
4971 | === added directory 'src/include/server/mir/graphics' |
4972 | === renamed file 'include/server/mir/graphics/gl_extensions_base.h' => 'src/include/server/mir/graphics/gl_extensions_base.h' |
4973 | === renamed file 'include/server/mir/graphics/surfaceless_egl_context.h' => 'src/include/server/mir/graphics/surfaceless_egl_context.h' |
4974 | === added directory 'src/include/server/mir/input' |
4975 | === added directory 'src/include/server/mir/input/android' |
4976 | === renamed file 'include/server/mir/input/android/default_android_input_configuration.h' => 'src/include/server/mir/input/android/default_android_input_configuration.h' |
4977 | === renamed file 'include/server/mir/input/cursor_images.h' => 'src/include/server/mir/input/cursor_images.h' |
4978 | === renamed file 'include/server/mir/input/input_channel_factory.h' => 'src/include/server/mir/input/input_channel_factory.h' |
4979 | === renamed file 'include/server/mir/input/input_configuration.h' => 'src/include/server/mir/input/input_configuration.h' |
4980 | === renamed file 'include/server/mir/input/input_manager.h' => 'src/include/server/mir/input/input_manager.h' |
4981 | === renamed file 'include/server/mir/input/input_region.h' => 'src/include/server/mir/input/input_region.h' |
4982 | === renamed file 'include/server/mir/input/input_report.h' => 'src/include/server/mir/input/input_report.h' |
4983 | === renamed file 'include/server/mir/input/input_send_observer.h' => 'src/include/server/mir/input/input_send_observer.h' |
4984 | === renamed file 'include/server/mir/input/input_sender.h' => 'src/include/server/mir/input/input_sender.h' |
4985 | === renamed file 'include/server/mir/input/input_targets.h' => 'src/include/server/mir/input/scene.h' |
4986 | --- include/server/mir/input/input_targets.h 2014-05-13 20:11:37 +0000 |
4987 | +++ src/include/server/mir/input/scene.h 2014-09-23 17:34:29 +0000 |
4988 | @@ -17,8 +17,8 @@ |
4989 | * Daniel d'Andradra <daniel.dandrada@canonical.com> |
4990 | */ |
4991 | |
4992 | -#ifndef MIR_INPUT_INPUT_TARGETS_H_ |
4993 | -#define MIR_INPUT_INPUT_TARGETS_H_ |
4994 | +#ifndef MIR_INPUT_INPUT_SCENE_H_ |
4995 | +#define MIR_INPUT_INPUT_SCENE_H_ |
4996 | |
4997 | #include "mir/input/input_channel_factory.h" |
4998 | |
4999 | @@ -30,28 +30,43 @@ |
5000 | { |
s/alarming that scene updates/alarming that extra scene updates/