mirror of
https://gitlab.freedesktop.org/wlroots/wlroots.git
synced 2024-11-25 00:22:25 +00:00
drm_format_set: Add wlr_drm_format_set_remove
wlr_drm_format_set_remove lets you remove a modifier from the specified format, useful for filtering implicit modifiers.
This commit is contained in:
parent
014023c14f
commit
70d3635985
@ -69,6 +69,9 @@ void wlr_drm_format_set_finish(struct wlr_drm_format_set *set);
|
|||||||
const struct wlr_drm_format *wlr_drm_format_set_get(
|
const struct wlr_drm_format *wlr_drm_format_set_get(
|
||||||
const struct wlr_drm_format_set *set, uint32_t format);
|
const struct wlr_drm_format_set *set, uint32_t format);
|
||||||
|
|
||||||
|
bool wlr_drm_format_set_remove(struct wlr_drm_format_set *set, uint32_t format,
|
||||||
|
uint64_t modifier);
|
||||||
|
|
||||||
bool wlr_drm_format_set_has(const struct wlr_drm_format_set *set,
|
bool wlr_drm_format_set_has(const struct wlr_drm_format_set *set,
|
||||||
uint32_t format, uint64_t modifier);
|
uint32_t format, uint64_t modifier);
|
||||||
|
|
||||||
|
@ -86,6 +86,23 @@ bool wlr_drm_format_set_add(struct wlr_drm_format_set *set, uint32_t format,
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool wlr_drm_format_set_remove(struct wlr_drm_format_set *set, uint32_t format,
|
||||||
|
uint64_t modifier) {
|
||||||
|
struct wlr_drm_format *fmt = format_set_get(set, format);
|
||||||
|
if (fmt == NULL) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (size_t idx = 0; idx < fmt->len; idx++) {
|
||||||
|
if (fmt->modifiers[idx] == modifier) {
|
||||||
|
memmove(&fmt->modifiers[idx], &fmt->modifiers[idx+1], fmt->len - idx - 1);
|
||||||
|
fmt->len--;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
void wlr_drm_format_init(struct wlr_drm_format *fmt, uint32_t format) {
|
void wlr_drm_format_init(struct wlr_drm_format *fmt, uint32_t format) {
|
||||||
*fmt = (struct wlr_drm_format){
|
*fmt = (struct wlr_drm_format){
|
||||||
.format = format,
|
.format = format,
|
||||||
|
Loading…
Reference in New Issue
Block a user