mirror of
https://github.com/hyprwm/wlroots-hyprland.git
synced 2024-12-22 18:09:49 +01:00
linux-dmabuf-v1: add basic helpers for feedback
This commit is contained in:
parent
5cd14dfc91
commit
b264ec7767
2 changed files with 33 additions and 0 deletions
|
@ -98,4 +98,17 @@ bool wlr_linux_dmabuf_v1_set_surface_feedback(
|
|||
struct wlr_linux_dmabuf_v1 *linux_dmabuf, struct wlr_surface *surface,
|
||||
const struct wlr_linux_dmabuf_feedback_v1 *feedback);
|
||||
|
||||
/**
|
||||
* Append a tranche at the end of the DMA-BUF feedback list.
|
||||
*
|
||||
* Tranches must be added with decreasing priority.
|
||||
*/
|
||||
struct wlr_linux_dmabuf_feedback_v1_tranche *wlr_linux_dmabuf_feedback_add_tranche(
|
||||
struct wlr_linux_dmabuf_feedback_v1 *feedback);
|
||||
|
||||
/**
|
||||
* Release resources allocated by a DMA-BUF feedback object.
|
||||
*/
|
||||
void wlr_linux_dmabuf_feedback_v1_finish(struct wlr_linux_dmabuf_feedback_v1 *feedback);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -1056,3 +1056,23 @@ bool wlr_linux_dmabuf_v1_set_surface_feedback(
|
|||
|
||||
return true;
|
||||
}
|
||||
|
||||
struct wlr_linux_dmabuf_feedback_v1_tranche *wlr_linux_dmabuf_feedback_add_tranche(
|
||||
struct wlr_linux_dmabuf_feedback_v1 *feedback) {
|
||||
struct wlr_linux_dmabuf_feedback_v1_tranche *tranche =
|
||||
wl_array_add(&feedback->tranches, sizeof(*tranche));
|
||||
if (tranche == NULL) {
|
||||
wlr_log_errno(WLR_ERROR, "Allocation failed");
|
||||
return NULL;
|
||||
}
|
||||
memset(tranche, 0, sizeof(*tranche));
|
||||
return tranche;
|
||||
}
|
||||
|
||||
void wlr_linux_dmabuf_feedback_v1_finish(struct wlr_linux_dmabuf_feedback_v1 *feedback) {
|
||||
struct wlr_linux_dmabuf_feedback_v1_tranche *tranche;
|
||||
wl_array_for_each(tranche, &feedback->tranches) {
|
||||
wlr_drm_format_set_finish(&tranche->formats);
|
||||
}
|
||||
wl_array_release(&feedback->tranches);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue