output: add wlr_output_state_init()

This changes the semantics of wlr_output_state. Instead of having
fields with uninitialized memory when missing from the committed
bitflag, all fields are always initialized (and maybe NULL/empty),
just like we do in wlr_surface_state. This reduces the chances of
footguns when reading a field, and removes the need to check for
the committed bitfield everywhere.

A new wlr_output_state_init() function takes care of initializing
the Pixman region.
This commit is contained in:
Simon Ser 2023-06-22 15:48:35 +02:00 committed by Alexander Orzechowski
parent 8a5b5e6f28
commit be05097968
19 changed files with 103 additions and 103 deletions

View file

@ -623,12 +623,11 @@ void handle_x11_configure_notify(struct wlr_x11_output *output,
return;
}
struct wlr_output_state state = {
.committed = WLR_OUTPUT_STATE_MODE,
.mode_type = WLR_OUTPUT_STATE_MODE_CUSTOM,
.custom_mode = { .width = ev->width, .height = ev->height },
};
struct wlr_output_state state;
wlr_output_state_init(&state);
wlr_output_state_set_custom_mode(&state, ev->width, ev->height, 0);
wlr_output_send_request_state(&output->wlr_output, &state);
wlr_output_state_finish(&state);
}
bool wlr_output_is_x11(struct wlr_output *wlr_output) {