mirror of
https://gitlab.freedesktop.org/wlroots/wlroots.git
synced 2024-11-22 07:02:28 +00:00
wlr_scene: Add support for custom swapchains
This commit is contained in:
parent
239354d644
commit
8da93e5936
@ -468,6 +468,13 @@ void wlr_scene_output_set_position(struct wlr_scene_output *scene_output,
|
||||
|
||||
struct wlr_scene_output_state_options {
|
||||
struct wlr_scene_timer *timer;
|
||||
|
||||
/**
|
||||
* Allows use of a custom swapchain. This can be useful when trying out an
|
||||
* output configuration. The swapchain dimensions must match the respective
|
||||
* wlr_output_state or output size if not specified.
|
||||
*/
|
||||
struct wlr_swapchain *swapchain;
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -1803,11 +1803,16 @@ bool wlr_scene_output_build_state(struct wlr_scene_output *scene_output,
|
||||
wlr_damage_ring_set_bounds(&scene_output->damage_ring,
|
||||
render_data.trans_width, render_data.trans_height);
|
||||
|
||||
if (!wlr_output_configure_primary_swapchain(output, state, &output->swapchain)) {
|
||||
return false;
|
||||
struct wlr_swapchain *swapchain = options->swapchain;
|
||||
if (!swapchain) {
|
||||
if (!wlr_output_configure_primary_swapchain(output, state, &output->swapchain)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
swapchain = output->swapchain;
|
||||
}
|
||||
|
||||
struct wlr_buffer *buffer = wlr_swapchain_acquire(output->swapchain, NULL);
|
||||
struct wlr_buffer *buffer = wlr_swapchain_acquire(swapchain, NULL);
|
||||
if (buffer == NULL) {
|
||||
return false;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user