diff options
author | Simon Ser <contact@emersion.fr> | 2021-06-18 12:15:08 +0200 |
---|---|---|
committer | Kenny Levinsen <kl@kl.wtf> | 2021-06-20 23:17:08 +0200 |
commit | 2f615468b68d49c8ec03ceffa751f8425d4c9b6b (patch) | |
tree | dff89e08ce6be6041fc9060762ad534166faa9ba /include | |
parent | 15c8453ba11d70e1cc271d5cebed307fe43cd4ba (diff) |
backend: add output state allow-lists
Right now, when a new output state field is added, all backends by
default won't reject it. This means we need to add new checks to
each and every backend when we introduce a new state field.
Instead, introduce a bitmask of supported output state fields in
each backend, and error out if the user has submitted an unknown
field.
Some fields don't need any backend involvment to work. These are
listed in WLR_OUTPUT_STATE_BACKEND_OPTIONAL as a convenience.
Diffstat (limited to 'include')
-rw-r--r-- | include/wlr/interfaces/wlr_output.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/include/wlr/interfaces/wlr_output.h b/include/wlr/interfaces/wlr_output.h index a727da61..83a8c321 100644 --- a/include/wlr/interfaces/wlr_output.h +++ b/include/wlr/interfaces/wlr_output.h @@ -15,6 +15,16 @@ #include <wlr/types/wlr_output.h> /** + * Output state fields that don't require backend support. Backends can ignore + * them without breaking the API contract. + */ +#define WLR_OUTPUT_STATE_BACKEND_OPTIONAL \ + (WLR_OUTPUT_STATE_DAMAGE | \ + WLR_OUTPUT_STATE_SCALE | \ + WLR_OUTPUT_STATE_TRANSFORM | \ + WLR_OUTPUT_STATE_ADAPTIVE_SYNC_ENABLED) + +/** * A backend implementation of wlr_output. * * The commit function is mandatory. Other functions are optional. |