output/render: Drop buffer age from wlr_output_begin_render_pass

For compositors wanting to damage track, `wlr_damage_ring_rotate_buffer()`
should be used and the damage should be set on the passed state.
This commit is contained in:
Alexander Orzechowski 2024-08-20 18:33:00 -04:00
parent 62cc96b3a4
commit eebaca8dbf
10 changed files with 11 additions and 16 deletions

View File

@ -90,8 +90,7 @@ static void output_handle_frame(struct wl_listener *listener, void *data) {
struct wlr_output_state state; struct wlr_output_state state;
wlr_output_state_init(&state); wlr_output_state_init(&state);
struct wlr_render_pass *pass = wlr_output_begin_render_pass(output->wlr_output, &state, NULL, struct wlr_render_pass *pass = wlr_output_begin_render_pass(output->wlr_output, &state, NULL);
NULL);
if (pass == NULL) { if (pass == NULL) {
return; return;
} }

View File

@ -94,9 +94,7 @@ static void output_handle_frame(struct wl_listener *listener, void *data) {
int width, height; int width, height;
wlr_output_effective_resolution(output->wlr_output, &width, &height); wlr_output_effective_resolution(output->wlr_output, &width, &height);
struct wlr_render_pass *pass = wlr_output_begin_render_pass(output->wlr_output, &output_state, struct wlr_render_pass *pass = wlr_output_begin_render_pass(output->wlr_output, &output_state, NULL);
NULL, NULL);
wlr_render_pass_add_rect(pass, &(struct wlr_render_rect_options){ wlr_render_pass_add_rect(pass, &(struct wlr_render_rect_options){
.box = { .width = width, .height = height }, .box = { .width = width, .height = height },
.color = { 0.3, 0.3, 0.3, 1 }, .color = { 0.3, 0.3, 0.3, 1 },

View File

@ -114,7 +114,7 @@ static void output_frame_notify(struct wl_listener *listener, void *data) {
struct wlr_output_state output_state; struct wlr_output_state output_state;
wlr_output_state_init(&output_state); wlr_output_state_init(&output_state);
struct wlr_render_pass *pass = wlr_output_begin_render_pass(wlr_output, &output_state, NULL, NULL); struct wlr_render_pass *pass = wlr_output_begin_render_pass(wlr_output, &output_state, NULL);
wlr_render_pass_add_rect(pass, &(struct wlr_render_rect_options){ wlr_render_pass_add_rect(pass, &(struct wlr_render_rect_options){
.box = { .width = wlr_output->width, .height = wlr_output->height }, .box = { .width = wlr_output->width, .height = wlr_output->height },

View File

@ -101,7 +101,7 @@ static void output_frame_notify(struct wl_listener *listener, void *data) {
struct wlr_output_state output_state; struct wlr_output_state output_state;
wlr_output_state_init(&output_state); wlr_output_state_init(&output_state);
struct wlr_render_pass *pass = wlr_output_begin_render_pass(wlr_output, &output_state, NULL, NULL); struct wlr_render_pass *pass = wlr_output_begin_render_pass(wlr_output, &output_state, NULL);
wlr_render_pass_add_rect(pass, &(struct wlr_render_rect_options){ wlr_render_pass_add_rect(pass, &(struct wlr_render_rect_options){
.box = { .width = wlr_output->width, .height = wlr_output->height }, .box = { .width = wlr_output->width, .height = wlr_output->height },
.color = { .color = {

View File

@ -59,7 +59,7 @@ static void output_frame_notify(struct wl_listener *listener, void *data) {
struct wlr_output_state output_state; struct wlr_output_state output_state;
wlr_output_state_init(&output_state); wlr_output_state_init(&output_state);
struct wlr_render_pass *pass = wlr_output_begin_render_pass(wlr_output, &output_state, NULL, NULL); struct wlr_render_pass *pass = wlr_output_begin_render_pass(wlr_output, &output_state, NULL);
wlr_render_pass_add_rect(pass, &(struct wlr_render_rect_options){ wlr_render_pass_add_rect(pass, &(struct wlr_render_rect_options){
.box = { .width = wlr_output->width, .height = wlr_output->height }, .box = { .width = wlr_output->width, .height = wlr_output->height },

View File

@ -63,7 +63,7 @@ static void output_frame_notify(struct wl_listener *listener, void *data) {
struct wlr_output_state state; struct wlr_output_state state;
wlr_output_state_init(&state); wlr_output_state_init(&state);
struct wlr_render_pass *pass = wlr_output_begin_render_pass(wlr_output, &state, NULL, NULL); struct wlr_render_pass *pass = wlr_output_begin_render_pass(wlr_output, &state, NULL);
wlr_render_pass_add_rect(pass, &(struct wlr_render_rect_options){ wlr_render_pass_add_rect(pass, &(struct wlr_render_rect_options){
.box = { .width = wlr_output->width, .height = wlr_output->height }, .box = { .width = wlr_output->width, .height = wlr_output->height },
.color = { .color = {

View File

@ -89,7 +89,7 @@ static void output_frame_notify(struct wl_listener *listener, void *data) {
struct wlr_output_state output_state; struct wlr_output_state output_state;
wlr_output_state_init(&output_state); wlr_output_state_init(&output_state);
struct wlr_render_pass *pass = wlr_output_begin_render_pass(wlr_output, &output_state, NULL, NULL); struct wlr_render_pass *pass = wlr_output_begin_render_pass(wlr_output, &output_state, NULL);
wlr_render_pass_add_rect(pass, &(struct wlr_render_rect_options){ wlr_render_pass_add_rect(pass, &(struct wlr_render_rect_options){
.box = { .width = wlr_output->width, .height = wlr_output->height }, .box = { .width = wlr_output->width, .height = wlr_output->height },

View File

@ -76,7 +76,7 @@ static void output_frame_notify(struct wl_listener *listener, void *data) {
struct wlr_output_state output_state; struct wlr_output_state output_state;
wlr_output_state_init(&output_state); wlr_output_state_init(&output_state);
struct wlr_render_pass *pass = wlr_output_begin_render_pass(wlr_output, &output_state, NULL, NULL); struct wlr_render_pass *pass = wlr_output_begin_render_pass(wlr_output, &output_state, NULL);
wlr_render_pass_add_rect(pass, &(struct wlr_render_rect_options){ wlr_render_pass_add_rect(pass, &(struct wlr_render_rect_options){
.box = { .width = width, .height = height }, .box = { .width = width, .height = height },
.color = { 0.25, 0.25, 0.25, 1 }, .color = { 0.25, 0.25, 0.25, 1 },

View File

@ -616,7 +616,6 @@ bool wlr_output_configure_primary_swapchain(struct wlr_output *output,
* frames or -1 if unknown. This is useful for damage tracking. * frames or -1 if unknown. This is useful for damage tracking.
*/ */
struct wlr_render_pass *wlr_output_begin_render_pass(struct wlr_output *output, struct wlr_render_pass *wlr_output_begin_render_pass(struct wlr_output *output,
struct wlr_output_state *state, int *buffer_age, struct wlr_output_state *state, struct wlr_buffer_pass_options *render_options);
struct wlr_buffer_pass_options *render_options);
#endif #endif

View File

@ -199,13 +199,12 @@ bool output_pick_format(struct wlr_output *output,
} }
struct wlr_render_pass *wlr_output_begin_render_pass(struct wlr_output *output, struct wlr_render_pass *wlr_output_begin_render_pass(struct wlr_output *output,
struct wlr_output_state *state, int *buffer_age, struct wlr_output_state *state, struct wlr_buffer_pass_options *render_options) {
struct wlr_buffer_pass_options *render_options) {
if (!wlr_output_configure_primary_swapchain(output, state, &output->swapchain)) { if (!wlr_output_configure_primary_swapchain(output, state, &output->swapchain)) {
return NULL; return NULL;
} }
struct wlr_buffer *buffer = wlr_swapchain_acquire(output->swapchain, buffer_age); struct wlr_buffer *buffer = wlr_swapchain_acquire(output->swapchain, NULL);
if (buffer == NULL) { if (buffer == NULL) {
return NULL; return NULL;
} }