Simon Ser
b5b921ea85
Introduce core properties
...
This is a set of well-known KMS standard properties, either used
by libliftoff itself or commonly used by compositors. Adding
special cases for these allows us to access them without having
to iterate over a list.
This roughly improves performance by ~50% when leaving out the
atomic test-only commits.
Closes: https://gitlab.freedesktop.org/emersion/libliftoff/-/issues/1
2024-05-27 23:46:20 +02:00
Simon Ser
25dd6d662e
Fix -Wsign-conversion on 32-bit
...
Closes: https://gitlab.freedesktop.org/emersion/libliftoff/-/issues/75
2023-02-22 10:45:05 +01:00
Simon Ser
314684fc64
plane: add NULL check to liftoff_plane_destroy()
...
All other libliftoff destructors already check for NULL, except
this one.
2023-02-22 10:15:19 +01:00
Simon Ser
ce325b1ee6
Turn on -Wsign-conversion
...
References: https://gitlab.freedesktop.org/emersion/libliftoff/-/issues/74
2023-02-16 21:33:36 +01:00
Simon Ser
0b910624f5
plane: check value for range/enum/bitmask properties
...
We need to drop the assert from apply_current(): the new value
may be outside the range for instance.
Closes: https://gitlab.freedesktop.org/emersion/libliftoff/-/issues/47
2023-02-15 20:11:57 +01:00
Simon Ser
46f35829e0
plane: check IMMUTABLE flag in plane_set_prop()
2023-02-15 19:30:04 +01:00
Simon Ser
9568888b99
plane: store drmModePropertyRes
...
This retains all of the info we need: ID, name, type, possible
enum values. We'll need the possible enum values in the next
commit.
2023-02-15 19:30:04 +01:00
Simon Ser
944ff20b13
alloc: check FB format and modifier
...
Closes: https://gitlab.freedesktop.org/emersion/libliftoff/-/issues/12
2023-02-15 19:19:24 +01:00
Simon Ser
1d425f542c
plane: ignore pixel blend mode when set to Pre-multiplied
...
This behaves the same when the property isn't supported.
2022-08-03 23:00:13 +02:00
Simon Ser
4d6989b389
plane: ignore FB_DAMAGE_CLIPS if plane is missing prop
...
Reporting the damage is optional, if the driver doesn't expose the
prop it means it doesn't care about damage.
2022-08-03 22:55:35 +02:00
Simon Ser
0ce48717b4
plane: ignore SCALING_FILTER when set to Default
...
This behaves the same when the property isn't supported.
2022-08-03 22:55:33 +02:00
Simon Ser
70eca070b6
Make plane_get_property static
2021-09-30 14:57:19 +02:00
Simon Ser
32683879e7
Add newline after function return type
...
Aligns our style with Linux' and Weston's.
2021-08-13 22:02:33 +02:00
Simon Ser
f5a2b541ce
Make liftoff_device_register_all_planes return an int
...
For consistency with liftoff_output_apply.
2021-07-30 16:19:29 +02:00
Simon Ser
61fd4c099a
Make liftoff_output_apply return an int
...
Callers may want to get more details about the failure, in
particular EPERM indicates that the user isn't DRM master (can
happen on VT switch).
2021-07-27 12:28:00 +02:00
Simon Ser
8260fa67d7
Introduce liftoff_plane_get_id
...
This allow users calling liftoff_device_register_all_planes to
easily figure out what a liftoff_plane represents.
2021-07-01 11:39:52 +02:00
Simon Ser
562f8b0af6
Allow to choose which planes are managed by libliftoff
...
Closes: https://github.com/emersion/libliftoff/issues/10
2021-07-01 11:37:10 +02:00
Simon Ser
95da3ee649
Add support for the rotation property
2020-05-26 11:35:50 +02:00
Simon Ser
44946c44d8
Add support for the alpha property
...
If the layer is completely opaque, we don't need a plane with the alpha
property.
2020-05-22 17:40:33 +02:00
Simon Ser
dcca965fc1
Remove chatty debug log
2019-12-12 23:26:05 +01:00
Simon Ser
99ef3d5b2e
Unset plane->layer and layer->plane on destroy
...
This fixes a use-after-free when destroying a layer/plane early.
2019-12-06 15:06:14 +01:00
Simon Ser
b0e2b083f9
Rename display to device
...
"Display" can also mean "screen"/"monitor", so it's kind of confusing for
this usage.
2019-11-24 12:59:10 +01:00
Simon Ser
ef29d341cb
Move plane allocation algorithm to alloc.c
...
And move plane-related functions to plane.c.
2019-10-19 13:43:09 +03:00
Simon Ser
ba80e32054
Introduce liftoff_log_errno
...
Like perror, but uses the liftoff logging infrastructure.
2019-10-19 13:35:14 +03:00
Simon Ser
aacbcf40b4
Split plane functions into a separate file
2019-10-11 17:09:35 +03:00