Find a file
Simon Ser c4a8afb39b
Add basic support for zpos
This commit adds special handling for the layer zpos property. Setting it won't
forward it to KMS, instead it will be handled internally.

The plane zpos (either retrieved from KMS if the property is supported, or
guessed from the plane type and ID) is checked during plane allocation to have
the same ordering as the layer zpos. This adds more constraints to the
allocation.

Note that the new constraints are too strict. In case two layers don't overlap,
there's no need for one plane to be on top of the other. See [1].

Also, the new constraints don't account for underlay planes [2].

[1]: https://github.com/emersion/libhwc/issues/3
[2]: https://github.com/emersion/libhwc/issues/7

Closes: https://github.com/emersion/libhwc/issues/4
2019-09-12 11:27:00 +03:00
include Add basic support for zpos 2019-09-12 11:27:00 +03:00
.editorconfig Initial experiments 2019-08-21 23:07:37 +03:00
.gitignore Initial experiments 2019-08-21 23:07:37 +03:00
display.c Add basic support for zpos 2019-09-12 11:27:00 +03:00
example.c Add basic support for zpos 2019-09-12 11:27:00 +03:00
layer.c Initial experiments 2019-08-21 23:07:37 +03:00
LICENSE Add LICENSE 2019-08-21 23:13:35 +03:00
list.c Initial experiments 2019-08-21 23:07:37 +03:00
meson.build Initial experiments 2019-08-21 23:07:37 +03:00
output.c Check plane is compatible with CRTC 2019-09-08 17:41:25 +03:00
README.md Add README 2019-08-21 23:12:11 +03:00

libhwc

Lightweight hardware composer library for libdrm.

libhwc eases the use of KMS planes from userspace without standing in your way. Users create "virtual planes" called layers, set KMS properties on them, and libhwc will allocate planes for these layers if possible.

Building

Depends on libdrm. Requires universal planes and atomic.

meson build/
ninja -C build/

License

MIT