Mir

lp:~andreas-pokorny/mir/input-sender-split

Created by Andreas Pokorny and last modified
Get this branch:
bzr branch lp:~andreas-pokorny/mir/input-sender-split
Only Andreas Pokorny can upload to this branch. If you are Andreas Pokorny please log in for upload directions.

Branch merges

Related bugs

Related blueprints

Branch information

Owner:
Andreas Pokorny
Project:
Mir
Status:
Development

Recent revisions

1553. By Andreas Pokorny

* New upstream release 0.2.0 (https://launchpad.net/mir/+milestone/0.2.0)
  - mirclient ABI unchanged, still at 7. Clients do not need rebuilding.
  - mirserver ABI bumped to 20. Shells need rebuilding and probably changes:
    . Cursor::set_image() parameters changed.
    . Display::the_cursor() renamed to Display::create_hardware_cursor()
    . Platform::create_display() requires a new parameter; gl_program_factory
    . Renderable::buffer() no longer accepts any parameter at all. Multi-
      monitor frame sync is guaranteed in other ways now.
    . Scene::generate_renderable_list() renamed to renderable_list_for(id)
      where id is an opaque compositor ID of your choosing.
    . Scene::set_change_callback() replaced by the more generic:
      add_observer() and remove_observer() functions.
    . SessionCreator renamed to ConnectionCreator.
    . ConnectedSessions renamed to Connections.
    . ProtobufSessionCreator renamed to ProtobufConnectionCreator.
    . SessionAuthorizer: pid_t parameters replaced by SessionCredentials.
    . Massive architectural changes to Input-everything.
    . Surface no longer implemnents Renderable, but emits one via
      compositor_snapshot().
  - Demo shell enhancements:
    . You can now change graphics modes on the fly using Ctrl+Alt+(-/=).
      To reset to the preferred mode use Ctrl+Alt+0.
    . The above mode changing as well as existing screen rotation keys
      (Ctrl+Alt+arrows) are now per-display; only applied to the monitor
      the mouse pointer is on.
  - Expand credentials to include uid/gid for session authorizer.
  - Bypass control is now Mesa-specific and tied to the command line options.
    So the environment variable MIR_BYPASS has changed to MIR_SERVER_BYPASS.
  - mirscreencast screenshots now produce images with correct color instead
    of transparency.
  - Ongoing architectural changes in the compositor/renderer logic to
    prepare for overlay support, and to reduce locking overhead.
  - Made InputDispatcher replaceable.
  - Progress made on new cursor interfaces with the end goal of client and
    toolkit control of the mouse cursor appearance. More work required.
  - Bugs fixed:
    . <TODO: Fill in when proposing to archive>
[ Daniel van Vugt ]
    . Stale socket issue. (LP: #1285215)
    . Qt render gets blocked on EGLSwapBuffers. (LP: #1292306)
    . Lock order violated found in helgrind (potential deadlock).
      (LP: #1296544)
    . [regression] SwitchingBundle in framedropping mode can hang.
      (LP: #1306464)
    . [DPMS] Display backlight turns back on almost immediately after
      being turned off. (LP: #1231857)
    . Wrong frame is seen on wake up/resume/unlock. (LP: #1233564)
    . Nested platform is not testable (LP: #1299101)
    . [regression] mir_demo_server_shell crashes on display resume.
      (LP: #1308941)
    . Multi-threaded composition is actually mostly serialized by
      SurfaceStack::guard. (LP: #1234018)
    . Mirscreencast slows down compositing and makes it very jerky.
      (LP: #1280938)
    . Mirscreencast can cause clients to render faster than the screen
      refresh rate. (LP: #1294361)
    . Screen turns on when a new session/surface appears. (LP: #1297876)
    . mir-doc package is >56MB in size, expands to >100MB of files.
      (LP: #1304998)
    . [regression] Clang: 'mir::test::doubles::MockSurface::visible'
      hides overloaded virtual function [-Woverloaded-virtual].
      (LP: #1301135)
    . [regression] GLRenderer* unit tests have recently become noisy.
      (LP: #1308905)
    . FocusController::set_focus_to() no longer seems to raise a session
      to the top. (LP: #1302689)
[ Ubuntu daily release ]
* New rebuild forced

1552. By Andreas Pokorny

updated timer branch merged

1551. By Andreas Pokorny

merged first version of timer branch

1550. By Andreas Pokorny

updates for new test.

1549. By Andreas Pokorny

* New upstream release 0.1.9 (https://launchpad.net/mir/+milestone/0.1.9)
  - mirclient ABI unchanged, still at 7. Clients do not need rebuilding.
  - mirserver ABI bumped to 19. Shells need rebuilding.
  - More libmirserver class changes and reorganization, including;
    . Moving things from shell:: to scene::
    . Rewriting/refactoring surface factories.
  - Added an id() to Renderable.
  - Scene/Renderer interfaces:
    . Scene is no longer responsible for its own iteration (no for_each
      any more). Instead you should iterate over the list returned by
      Scene::generate_renderable_list().
  - Bugs fixed:
    . TODO: fill in when proposing to Ubuntu
[ Daniel van Vugt ]
  - mirserver ABI bumped to 18. Shells need rebuilding.
    . graphics::Platform::create_display() has a new parameter allowing you
      to customize the compositor's (E)GL configutation.
    . Renderable::buffer(unsigned long frameno) is now:
      Renderable::buffer(void const* user_id). See below.
    . Renderable::should_be_rendered_in() is replaced by a more natural:
      Renderable::visble()
    . input::Surface::name() returns by value instead of reference now,
      to ensure future thread safety.
  - Switched EventHub device enumeration and hotplug to Udev. NOTE! This
    means mir_test_* can't run natively on touch devices any more without
    some setup first:
      umockdev-run -- bin/mir_unit_tests
  - Introduced "RenderableList" as the way to sample the Scene contents,
    and started using that in the default compositor.
  - Introduced physical length units and conversion (geometry::Length) in
    preparation for arbitrary DPI rendering.
    anti-aliased and high-DPI scalable.
  - Multi-monitor frame sync has been redesigned to eliminate the need for
    frame number tracking.
  - Bugs (and enhancements) resolved:
    . [enhancement] Please move input detection to libudev (LP: #1237784)
    . [enhancement] Add a clamping resize mode to GLRenderer (LP: #1259887)
    . [regression] Intermittent loss of multimonitor frame sync
      (LP: #1290306)
    . [enhancement] Make GL config options configurable (LP: #1290780)
    . memcheck-test doesn't test anything when DISABLED_GTEST_DISCOVERY is
      enabled (LP: #1291876)
    . "Error opening DRM device" is always followed by "Unknown error -(some
      negative number)" (LP: #1292384)
    . Rendering/composition gets stopped early (LP: #1293896)
    . Ubuntu Touch Settings and terminal apps are not rendering correctly on
      rotate. (LP: #1294048)
    . [regression] Apps are much slower to open (LP: #1294051)
    . Settings app opens to a blank screen unless given enough time to render
      or the app is touched (LP: #1294053)
    . TestClientInput/DemoPrivateProtobuf memory leak is causing regular CI
      test failures (LP: #1295231)
    . OSK touch events "fall through" and hit surface behind them
      (LP: #1297878)
    . [enhancement] add a test for composite of last client post
      (LP: #1298596)
    . [regression] Surfaces vanish as soon as their edges touch the edge of
      screen (LP: #1301115)
* Cherry-picked from future release 0.1.9:
  - Bug fix: mirplatformgraphics does not have boost program options in its
    symbol table (LP: #1301040)
  - Bug fix: unity8 crashed with SIGSEGV in glDeleteTextures() from
    mir::scene::GLPixelBuffer::~GLPixelBuffer() from
    mir::scene::ThreadedSnapshotStrategy::~ThreadedSnapshotStrategy()
    (LP: #1256360)
[ Ubuntu daily release ]
* New rebuild forced

1548. By Andreas Pokorny

WIP: select the right input entry and unqueue it

1547. By Andreas Pokorny

WIP: InputSend Implementation based on Android classes

+ Wired InputSend with input::Surface::consume
+ Added consuming of client response
+ Added basic initial support of send observer
-> should be sufficient for basic custom input dispatcher implementations

Still outstanding
 - feeding of input back into already existing android::InputDispatcher

1546. By Andreas Pokorny

Proposed InputSender interface

InputSender is to be used by surface implementations.
custom built InputDispatcher shall use Surface to send input events.

Still WIP.

1545. By Andreas Pokorny

review findings addressed

1544. By Andreas Pokorny

Further tests showing the receival of focus changes and opened input channels

Branch metadata

Branch format:
Branch format 7
Repository format:
Bazaar repository format 2a (needs bzr 1.16 or later)
Stacked on:
lp:mir/0.1
This branch contains Public information 
Everyone can see this information.

Subscribers