Merge lp://staging/~vanvugt/mir/simplify-hw-cursor-construction into lp://staging/mir
Status: | Merged |
---|---|
Approved by: | Daniel van Vugt |
Approved revision: | no longer in the source branch. |
Merged at revision: | 4032 |
Proposed branch: | lp://staging/~vanvugt/mir/simplify-hw-cursor-construction |
Merge into: | lp://staging/mir |
Prerequisite: | lp://staging/~vanvugt/mir/fix-hide-then-show |
Diff against target: |
775 lines (+119/-98) 29 files modified
debian/control (+6/-8) debian/mir-platform-graphics-android13.install (+1/-1) debian/mir-platform-graphics-mesa-kms13.install (+1/-1) debian/mir-platform-graphics-mesa-x13.install (+1/-1) include/platform/mir/graphics/display.h (+1/-2) include/test/mir/test/doubles/null_display.h (+1/-1) src/platforms/CMakeLists.txt (+2/-2) src/platforms/android/server/display.cpp (+1/-1) src/platforms/android/server/display.h (+1/-1) src/platforms/eglstream-kms/server/display.cpp (+1/-2) src/platforms/eglstream-kms/server/display.h (+1/-1) src/platforms/mesa/server/kms/cursor.cpp (+14/-11) src/platforms/mesa/server/kms/cursor.h (+2/-2) src/platforms/mesa/server/kms/display.cpp (+2/-3) src/platforms/mesa/server/kms/display.h (+1/-1) src/platforms/mesa/server/kms/kms_output.h (+2/-2) src/platforms/mesa/server/kms/real_kms_output.cpp (+11/-5) src/platforms/mesa/server/kms/real_kms_output.h (+2/-2) src/platforms/mesa/server/x11/graphics/display.cpp (+1/-1) src/platforms/mesa/server/x11/graphics/display.h (+1/-1) src/server/graphics/default_configuration.cpp (+17/-17) src/server/graphics/nested/cursor.cpp (+0/-1) src/server/graphics/nested/display.cpp (+2/-2) src/server/graphics/nested/display.h (+1/-1) tests/include/mir/test/doubles/mock_display.h (+1/-1) tests/mir_test_framework/stubbed_graphics_platform.cpp (+2/-2) tests/unit-tests/platforms/mesa/kms/mock_kms_output.h (+2/-2) tests/unit-tests/platforms/mesa/kms/test_cursor.cpp (+38/-22) tests/unit-tests/platforms/nested/test_nested_cursor.cpp (+3/-1) |
To merge this branch: | bzr merge lp://staging/~vanvugt/mir/simplify-hw-cursor-construction |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Mir CI Bot | continuous-integration | Approve | |
Daniel van Vugt | Approve | ||
Chris Halse Rogers | Approve | ||
Review via email: mp+316090@code.staging.launchpad.net |
Commit message
Simplify hardware cursor construction (no parameter required).
Previously hardware cursor implementations were expected to show
on construction with a given image. We now instead hide on construction but show an image immediately after as part of the default configuration policy.
Aside from providing a simpler interface, this is required as a
prerequisite for runtime fallback to the software cursor when the
hardware cursor won't be used (both cursors exist but never more than
one of them shown). This is also a prerequisite to fixing bug 1662760.
Assuming that a hardware cursor might only fail during construction was
a poor design. Going forward we will need to deal with a hardware cursor
that might become unusable or undesirable at any point in its life.
Description of the change
Note the use of bool in set_cursor and clear_cursor. That's there to maintain support for detecting platforms that lack a hardware cursor. A bool is used instead of exceptions for best performance during mouse movements, and also because accidentally ignoring a bool is better than accidentally crashing the server in the case of recoverable DRM errors.
FAILED: Continuous integration, rev:4013 /mir-jenkins. ubuntu. com/job/ mir-ci/ 2909/ /mir-jenkins. ubuntu. com/job/ build-mir/ 3841/console /mir-jenkins. ubuntu. com/job/ build-0- fetch/3920 /mir-jenkins. ubuntu. com/job/ build-1- sourcepkg/ release= vivid+overlay/ 3910 /mir-jenkins. ubuntu. com/job/ build-1- sourcepkg/ release= xenial+ overlay/ 3910 /mir-jenkins. ubuntu. com/job/ build-1- sourcepkg/ release= zesty/3910 /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= amd64,compiler= clang,platform= mesa,release= zesty/3868/ console /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= amd64,compiler= gcc,platform= mesa,release= xenial+ overlay/ 3868 /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= amd64,compiler= gcc,platform= mesa,release= xenial+ overlay/ 3868/artifact/ output/ *zip*/output. zip /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= amd64,compiler= gcc,platform= mesa,release= zesty/3868 /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= amd64,compiler= gcc,platform= mesa,release= zesty/3868/ artifact/ output/ *zip*/output. zip /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= cross-armhf, compiler= gcc,platform= android, release= vivid+overlay/ 3868 /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= cross-armhf, compiler= gcc,platform= android, release= vivid+overlay/ 3868/artifact/ output/ *zip*/output. zip /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= i386,compiler= gcc,platform= android, release= vivid+overlay/ 3868 /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= i386,compiler= gcc,platform= android, release= vivid+overlay/ 3868/artifact/ output/ *zip*/output. zip /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= i386,compiler= gcc,platform= mesa,release= xenial+ overlay/ 3868 /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= i386,compiler= gcc,platform= mesa,release= xenial+ overlay/ 3868/artifact/ output/ *zip*/output. zip
https:/
Executed test runs:
FAILURE: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
FAILURE: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild: /mir-jenkins. ubuntu. com/job/ mir-ci/ 2909/rebuild
https:/