Mir on the Phone (iteration 0)
This blueprint is meant to capture the efforts needed to prepare Mir for supporting shell integration, for the purposes of Ubuntu, this means UnityNext. The first goal is to achieve alpha integration of Mir & Unity Next with the "small screen" form factors in mind (you might say phone), since "medium" to "large" screen devices are a super set to the "small" screen devices. Based on review of design specifications & experince from wide range of analysis on previous technologies, the focus will be on building out surface management controls for rendering & input support for the shell. Secondary will be reporting/logging as well as some form of application "management" (management is kind of a bad word here....more like "app tracker/info provider" for the shell.
Acceptance criteria:
for March / ubuntu-
#1) have input events captured/delivered to the associated target surface
#2) maintain >90% testing coverege & pass rate
for April / ubuntu-
#1) Through test/example app - Mir client should be able to register & receive touch events
#2) Through test/example app - Mir client should be able to use Mir to render on client created surfaces
13.05
#1) Through test/example app - Mir client should be able to control & order surfaces through focus control
Blueprint information
- Status:
- Complete
- Approver:
- Robert Ancell
- Priority:
- Undefined
- Drafter:
- Mir development team
- Direction:
- Needs approval
- Assignee:
- kevin gunn
- Definition:
- Approved
- Series goal:
- Accepted for saucy
- Implementation:
- Implemented
- Milestone target:
- ubuntu-13.05
- Started by
- Daniel van Vugt
- Completed by
- kevin gunn
Related branches
- lp://staging/~vanvugt/mir/appid
- lp://staging/~vanvugt/mir/surface-types
- lp://staging/~robertcarr/mir/prepare-for-inprocess-egl-clients
- lp://staging/~vanvugt/mir/edge-type
- lp://staging/~alan-griffiths/mir/prepare-for-inprocess-egl-clients
- lp://staging/~alan-griffiths/mir/add-glog-logging
- lp://staging/~vanvugt/mir/surface-states
- lp://staging/~robertcarr/mir/xkbcommon-mapper
- lp://staging/~kdub/mir/android-internal-client
Related bugs
Whiteboard
Requirements:
- Shell should be a separate project linking against Mir library
- Need to run shell Mir compositor inside system (Mir) compositor
- Support all current input devices
- Keyboards
- Mice
- Touchpads
- Tablets
- Standard GUI toolkits should access Mir directly
- Legacy applications need to access Mir through a rootless X server
kgunn: is android already bypass composition via hwc?
Talk between Rob and Mike about surface peeking under greeter:
* Plan for a simple DBus API like "SetNextSurface
* Greeter then just sets opacity of overlay pin
* If we need fancy transition, compositor could identify second greeter pin surface by tag or some such and overlay it onto the session surface.
Work Items
Work items for ubuntu-
[alan-griffiths] Input refactoring (don't depend on Android): DONE
[alan-griffiths] System configuration options: DONE
[didrocks] change all launchpad projects to public: DONE
[vanvugt] Enumerate surface types (client protocol and shell interface): DONE
[alan-griffiths] Expose application list to shell: DONE
[robertcarr] Client input events for keyboard: DONE
[alan-griffiths] Doxygen docs reviewed and online: DONE
[robertcarr] Shell input filter: DONE
[robertcarr] In process Qt, allowing Qt to use the shell created surfaces: DONE
[robertcarr] Qt input support: DONE
[kdub] Framebuffer Native Window Type: DONE
Work items for ubuntu-13.05:
[vanvugt] Enumerate surface states (client protocol and shell interface): DONE
[vanvugt] Client initiated maximise / fullscreen: DONE
[robertcarr] Client input events touch: DONE
[robertcarr] Surface focus in model: DONE
[alan-griffiths] Hardware cursor support (GBM/DRM): DONE
[kdub] Android display logging: DONE
[robertcarr] Keymapping through xkbcommon: DONE
[robertcarr] In process EGL - Mesa, Shell created surfaces: DONE
[robertcarr] Demo Shell - (Demonstrate overriding Shell Configuration and Input Filters): DONE
[kdub] transition android build to raring: DONE
[alan-griffiths] Split out concerns in ServerConfiguration class hierarchy: DONE
[robertcarr] Software cursor: DONE
[alan-griffiths] Growing reporting & logging support: DONE
[kdub] In process EGL - Android: DONE
Work items for ubuntu-13.06:
[robertcarr] Client focus notification (likely depends on event system from surface-states branch): DONE
[robertcarr] Multi-surface input support: DONE
[robertcarr] Surface ordering interface: DONE
[mterry] Work with Robert to determine an API for session-surface sharing for the phone greeter: DONE
Work items for ubuntu-13.07:
[robert-ancell] Mir session support in lightdm: DONE
Dependency tree
* Blueprints in grey have been implemented.