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 on 2014-05-07

* 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 on 2014-04-24

updated timer branch merged

1551. By Andreas Pokorny on 2014-04-24

merged first version of timer branch

1550. By Andreas Pokorny on 2014-04-23

updates for new test.

1549. By Andreas Pokorny on 2014-04-23

* 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 on 2014-04-22

WIP: select the right input entry and unqueue it

1547. By Andreas Pokorny on 2014-04-21

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 on 2014-04-16

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 on 2014-04-15

review findings addressed

1544. By Andreas Pokorny on 2014-04-11

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