scene_graph: Use built-in linux dmabuf feedback handling

This commit is contained in:
Alexander Orzechowski 2023-04-13 20:45:02 +02:00 committed by Kirill Primak
parent 1eb16d1367
commit 1b09238645
2 changed files with 4 additions and 27 deletions

View file

@ -340,6 +340,10 @@ int main(int argc, char **argv) {
return 1; return 1;
} }
if (server.linux_dmabuf_v1) {
wlr_scene_set_linux_dmabuf_v1(root->root_scene, server.linux_dmabuf_v1);
}
if (validate) { if (validate) {
bool valid = load_main_config(config_path, false, true); bool valid = load_main_config(config_path, false, true);
free(config_path); free(config_path);

View file

@ -1157,33 +1157,6 @@ static void set_fullscreen(struct sway_container *con, bool enable) {
con->view->foreign_toplevel, enable); con->view->foreign_toplevel, enable);
} }
} }
if (!server.linux_dmabuf_v1 || !con->view->surface) {
return;
}
if (!enable) {
wlr_linux_dmabuf_v1_set_surface_feedback(server.linux_dmabuf_v1,
con->view->surface, NULL);
return;
}
if (!con->pending.workspace || !con->pending.workspace->output) {
return;
}
struct sway_output *output = con->pending.workspace->output;
const struct wlr_linux_dmabuf_feedback_v1_init_options options = {
.main_renderer = server.renderer,
.scanout_primary_output = output->wlr_output,
};
struct wlr_linux_dmabuf_feedback_v1 feedback = {0};
if (!wlr_linux_dmabuf_feedback_v1_init_with_options(&feedback, &options)) {
return;
}
wlr_linux_dmabuf_v1_set_surface_feedback(server.linux_dmabuf_v1,
con->view->surface, &feedback);
wlr_linux_dmabuf_feedback_v1_finish(&feedback);
} }
static void container_fullscreen_workspace(struct sway_container *con) { static void container_fullscreen_workspace(struct sway_container *con) {