mirror of
https://github.com/hyprwm/wlroots-hyprland.git
synced 2024-11-14 01:15:59 +01:00
output: rename needs_commit to needs_frame
This new name makes more sense, since it is a request from the backend to get a new frame. In the future a commit may not convey a new frame.
This commit is contained in:
parent
5e6766a165
commit
20690346c7
10 changed files with 31 additions and 31 deletions
|
@ -338,7 +338,7 @@ bool set_drm_connector_gamma(struct wlr_output *output, size_t size,
|
||||||
|
|
||||||
bool ok = drm->iface->crtc_set_gamma(drm, conn->crtc, size, _r, _g, _b);
|
bool ok = drm->iface->crtc_set_gamma(drm, conn->crtc, size, _r, _g, _b);
|
||||||
if (ok) {
|
if (ok) {
|
||||||
wlr_output_update_needs_commit(output);
|
wlr_output_update_needs_frame(output);
|
||||||
|
|
||||||
free(conn->crtc->gamma_table);
|
free(conn->crtc->gamma_table);
|
||||||
conn->crtc->gamma_table = gamma_table;
|
conn->crtc->gamma_table = gamma_table;
|
||||||
|
@ -677,7 +677,7 @@ static bool drm_connector_set_cursor(struct wlr_output *output,
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
wlr_output_update_needs_commit(output);
|
wlr_output_update_needs_frame(output);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!update_texture) {
|
if (!update_texture) {
|
||||||
|
@ -737,7 +737,7 @@ static bool drm_connector_set_cursor(struct wlr_output *output,
|
||||||
}
|
}
|
||||||
bool ok = drm->iface->crtc_set_cursor(drm, crtc, bo);
|
bool ok = drm->iface->crtc_set_cursor(drm, crtc, bo);
|
||||||
if (ok) {
|
if (ok) {
|
||||||
wlr_output_update_needs_commit(output);
|
wlr_output_update_needs_frame(output);
|
||||||
}
|
}
|
||||||
return ok;
|
return ok;
|
||||||
}
|
}
|
||||||
|
@ -774,7 +774,7 @@ static bool drm_connector_move_cursor(struct wlr_output *output,
|
||||||
|
|
||||||
bool ok = drm->iface->crtc_move_cursor(drm, conn->crtc, box.x, box.y);
|
bool ok = drm->iface->crtc_move_cursor(drm, conn->crtc, box.x, box.y);
|
||||||
if (ok) {
|
if (ok) {
|
||||||
wlr_output_update_needs_commit(output);
|
wlr_output_update_needs_frame(output);
|
||||||
}
|
}
|
||||||
return ok;
|
return ok;
|
||||||
}
|
}
|
||||||
|
@ -1435,7 +1435,7 @@ static void drm_connector_cleanup(struct wlr_drm_connector *conn) {
|
||||||
wl_event_source_remove(conn->output.idle_frame);
|
wl_event_source_remove(conn->output.idle_frame);
|
||||||
conn->output.idle_frame = NULL;
|
conn->output.idle_frame = NULL;
|
||||||
}
|
}
|
||||||
conn->output.needs_commit = false;
|
conn->output.needs_frame = false;
|
||||||
conn->output.frame_pending = false;
|
conn->output.frame_pending = false;
|
||||||
|
|
||||||
/* Fallthrough */
|
/* Fallthrough */
|
||||||
|
|
|
@ -46,7 +46,7 @@ static void handle_x11_event(struct wlr_x11_backend *x11,
|
||||||
struct wlr_x11_output *output =
|
struct wlr_x11_output *output =
|
||||||
get_x11_output_from_window_id(x11, ev->window);
|
get_x11_output_from_window_id(x11, ev->window);
|
||||||
if (output != NULL) {
|
if (output != NULL) {
|
||||||
wlr_output_update_needs_commit(&output->wlr_output);
|
wlr_output_update_needs_frame(&output->wlr_output);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -43,7 +43,7 @@ void wlr_output_update_mode(struct wlr_output *output,
|
||||||
void wlr_output_update_custom_mode(struct wlr_output *output, int32_t width,
|
void wlr_output_update_custom_mode(struct wlr_output *output, int32_t width,
|
||||||
int32_t height, int32_t refresh);
|
int32_t height, int32_t refresh);
|
||||||
void wlr_output_update_enabled(struct wlr_output *output, bool enabled);
|
void wlr_output_update_enabled(struct wlr_output *output, bool enabled);
|
||||||
void wlr_output_update_needs_commit(struct wlr_output *output);
|
void wlr_output_update_needs_frame(struct wlr_output *output);
|
||||||
void wlr_output_damage_whole(struct wlr_output *output);
|
void wlr_output_damage_whole(struct wlr_output *output);
|
||||||
void wlr_output_send_frame(struct wlr_output *output);
|
void wlr_output_send_frame(struct wlr_output *output);
|
||||||
void wlr_output_send_present(struct wlr_output *output,
|
void wlr_output_send_present(struct wlr_output *output,
|
||||||
|
|
|
@ -97,7 +97,7 @@ struct wlr_output {
|
||||||
enum wl_output_subpixel subpixel;
|
enum wl_output_subpixel subpixel;
|
||||||
enum wl_output_transform transform;
|
enum wl_output_transform transform;
|
||||||
|
|
||||||
bool needs_commit;
|
bool needs_frame;
|
||||||
// damage for cursors and fullscreen surface, in output-local coordinates
|
// damage for cursors and fullscreen surface, in output-local coordinates
|
||||||
pixman_region32_t damage;
|
pixman_region32_t damage;
|
||||||
bool frame_pending;
|
bool frame_pending;
|
||||||
|
@ -110,7 +110,7 @@ struct wlr_output {
|
||||||
struct wl_signal frame;
|
struct wl_signal frame;
|
||||||
// Emitted when buffers need to be swapped (because software cursors or
|
// Emitted when buffers need to be swapped (because software cursors or
|
||||||
// fullscreen damage or because of backend-specific logic)
|
// fullscreen damage or because of backend-specific logic)
|
||||||
struct wl_signal needs_commit;
|
struct wl_signal needs_frame;
|
||||||
// Emitted right before commit
|
// Emitted right before commit
|
||||||
struct wl_signal precommit; // wlr_output_event_precommit
|
struct wl_signal precommit; // wlr_output_event_precommit
|
||||||
// Emitted right after commit
|
// Emitted right after commit
|
||||||
|
|
|
@ -51,7 +51,7 @@ struct wlr_output_damage {
|
||||||
struct wl_listener output_mode;
|
struct wl_listener output_mode;
|
||||||
struct wl_listener output_transform;
|
struct wl_listener output_transform;
|
||||||
struct wl_listener output_scale;
|
struct wl_listener output_scale;
|
||||||
struct wl_listener output_needs_commit;
|
struct wl_listener output_needs_frame;
|
||||||
struct wl_listener output_frame;
|
struct wl_listener output_frame;
|
||||||
struct wl_listener output_commit;
|
struct wl_listener output_commit;
|
||||||
};
|
};
|
||||||
|
@ -63,12 +63,12 @@ void wlr_output_damage_destroy(struct wlr_output_damage *output_damage);
|
||||||
* function before rendering. After they are done rendering, they should call
|
* function before rendering. After they are done rendering, they should call
|
||||||
* `wlr_output_set_damage` and `wlr_output_commit` to submit the new frame.
|
* `wlr_output_set_damage` and `wlr_output_commit` to submit the new frame.
|
||||||
*
|
*
|
||||||
* `needs_commit` will be set to true if a frame should be submitted. `damage`
|
* `needs_frame` will be set to true if a frame should be submitted. `damage`
|
||||||
* will be set to the region of the output that needs to be repainted, in
|
* will be set to the region of the output that needs to be repainted, in
|
||||||
* output-buffer-local coordinates.
|
* output-buffer-local coordinates.
|
||||||
*/
|
*/
|
||||||
bool wlr_output_damage_attach_render(struct wlr_output_damage *output_damage,
|
bool wlr_output_damage_attach_render(struct wlr_output_damage *output_damage,
|
||||||
bool *needs_commit, pixman_region32_t *damage);
|
bool *needs_frame, pixman_region32_t *damage);
|
||||||
/**
|
/**
|
||||||
* Accumulates damage and schedules a `frame` event.
|
* Accumulates damage and schedules a `frame` event.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -220,10 +220,10 @@ void output_render(struct roots_output *output) {
|
||||||
clear_color[0] = clear_color[1] = clear_color[2] = 0;
|
clear_color[0] = clear_color[1] = clear_color[2] = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool needs_swap;
|
bool needs_frame;
|
||||||
pixman_region32_t damage;
|
pixman_region32_t damage;
|
||||||
pixman_region32_init(&damage);
|
pixman_region32_init(&damage);
|
||||||
if (!wlr_output_damage_attach_render(output->damage, &needs_swap, &damage)) {
|
if (!wlr_output_damage_attach_render(output->damage, &needs_frame, &damage)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -232,7 +232,7 @@ void output_render(struct roots_output *output) {
|
||||||
.alpha = 1.0,
|
.alpha = 1.0,
|
||||||
};
|
};
|
||||||
|
|
||||||
if (!needs_swap) {
|
if (!needs_frame) {
|
||||||
// Output doesn't need swap and isn't damaged, skip rendering completely
|
// Output doesn't need swap and isn't damaged, skip rendering completely
|
||||||
goto damage_finish;
|
goto damage_finish;
|
||||||
}
|
}
|
||||||
|
|
|
@ -273,7 +273,7 @@ void wlr_output_init(struct wlr_output *output, struct wlr_backend *backend,
|
||||||
wl_list_init(&output->cursors);
|
wl_list_init(&output->cursors);
|
||||||
wl_list_init(&output->resources);
|
wl_list_init(&output->resources);
|
||||||
wl_signal_init(&output->events.frame);
|
wl_signal_init(&output->events.frame);
|
||||||
wl_signal_init(&output->events.needs_commit);
|
wl_signal_init(&output->events.needs_frame);
|
||||||
wl_signal_init(&output->events.precommit);
|
wl_signal_init(&output->events.precommit);
|
||||||
wl_signal_init(&output->events.commit);
|
wl_signal_init(&output->events.commit);
|
||||||
wl_signal_init(&output->events.present);
|
wl_signal_init(&output->events.present);
|
||||||
|
@ -437,7 +437,7 @@ bool wlr_output_commit(struct wlr_output *output) {
|
||||||
wlr_signal_emit_safe(&output->events.commit, output);
|
wlr_signal_emit_safe(&output->events.commit, output);
|
||||||
|
|
||||||
output->frame_pending = true;
|
output->frame_pending = true;
|
||||||
output->needs_commit = false;
|
output->needs_frame = false;
|
||||||
output_state_clear(&output->pending);
|
output_state_clear(&output->pending);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -517,9 +517,9 @@ bool wlr_output_export_dmabuf(struct wlr_output *output,
|
||||||
return output->impl->export_dmabuf(output, attribs);
|
return output->impl->export_dmabuf(output, attribs);
|
||||||
}
|
}
|
||||||
|
|
||||||
void wlr_output_update_needs_commit(struct wlr_output *output) {
|
void wlr_output_update_needs_frame(struct wlr_output *output) {
|
||||||
output->needs_commit = true;
|
output->needs_frame = true;
|
||||||
wlr_signal_emit_safe(&output->events.needs_commit, output);
|
wlr_signal_emit_safe(&output->events.needs_frame, output);
|
||||||
}
|
}
|
||||||
|
|
||||||
void wlr_output_damage_whole(struct wlr_output *output) {
|
void wlr_output_damage_whole(struct wlr_output *output) {
|
||||||
|
@ -528,7 +528,7 @@ void wlr_output_damage_whole(struct wlr_output *output) {
|
||||||
|
|
||||||
pixman_region32_union_rect(&output->damage, &output->damage, 0, 0,
|
pixman_region32_union_rect(&output->damage, &output->damage, 0, 0,
|
||||||
width, height);
|
width, height);
|
||||||
wlr_output_update_needs_commit(output);
|
wlr_output_update_needs_frame(output);
|
||||||
}
|
}
|
||||||
|
|
||||||
struct wlr_output *wlr_output_from_resource(struct wl_resource *resource) {
|
struct wlr_output *wlr_output_from_resource(struct wl_resource *resource) {
|
||||||
|
@ -674,7 +674,7 @@ static void output_cursor_damage_whole(struct wlr_output_cursor *cursor) {
|
||||||
output_cursor_get_box(cursor, &box);
|
output_cursor_get_box(cursor, &box);
|
||||||
pixman_region32_union_rect(&cursor->output->damage, &cursor->output->damage,
|
pixman_region32_union_rect(&cursor->output->damage, &cursor->output->damage,
|
||||||
box.x, box.y, box.width, box.height);
|
box.x, box.y, box.width, box.height);
|
||||||
wlr_output_update_needs_commit(cursor->output);
|
wlr_output_update_needs_frame(cursor->output);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void output_cursor_reset(struct wlr_output_cursor *cursor) {
|
static void output_cursor_reset(struct wlr_output_cursor *cursor) {
|
||||||
|
|
|
@ -31,10 +31,10 @@ static void output_handle_scale(struct wl_listener *listener, void *data) {
|
||||||
wlr_output_damage_add_whole(output_damage);
|
wlr_output_damage_add_whole(output_damage);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void output_handle_needs_commit(struct wl_listener *listener,
|
static void output_handle_needs_frame(struct wl_listener *listener,
|
||||||
void *data) {
|
void *data) {
|
||||||
struct wlr_output_damage *output_damage =
|
struct wlr_output_damage *output_damage =
|
||||||
wl_container_of(listener, output_damage, output_needs_commit);
|
wl_container_of(listener, output_damage, output_needs_frame);
|
||||||
pixman_region32_union(&output_damage->current, &output_damage->current,
|
pixman_region32_union(&output_damage->current, &output_damage->current,
|
||||||
&output_damage->output->damage);
|
&output_damage->output->damage);
|
||||||
wlr_output_schedule_frame(output_damage->output);
|
wlr_output_schedule_frame(output_damage->output);
|
||||||
|
@ -93,8 +93,8 @@ struct wlr_output_damage *wlr_output_damage_create(struct wlr_output *output) {
|
||||||
output_damage->output_transform.notify = output_handle_transform;
|
output_damage->output_transform.notify = output_handle_transform;
|
||||||
wl_signal_add(&output->events.scale, &output_damage->output_scale);
|
wl_signal_add(&output->events.scale, &output_damage->output_scale);
|
||||||
output_damage->output_scale.notify = output_handle_scale;
|
output_damage->output_scale.notify = output_handle_scale;
|
||||||
wl_signal_add(&output->events.needs_commit, &output_damage->output_needs_commit);
|
wl_signal_add(&output->events.needs_frame, &output_damage->output_needs_frame);
|
||||||
output_damage->output_needs_commit.notify = output_handle_needs_commit;
|
output_damage->output_needs_frame.notify = output_handle_needs_frame;
|
||||||
wl_signal_add(&output->events.frame, &output_damage->output_frame);
|
wl_signal_add(&output->events.frame, &output_damage->output_frame);
|
||||||
output_damage->output_frame.notify = output_handle_frame;
|
output_damage->output_frame.notify = output_handle_frame;
|
||||||
wl_signal_add(&output->events.commit, &output_damage->output_commit);
|
wl_signal_add(&output->events.commit, &output_damage->output_commit);
|
||||||
|
@ -112,7 +112,7 @@ void wlr_output_damage_destroy(struct wlr_output_damage *output_damage) {
|
||||||
wl_list_remove(&output_damage->output_mode.link);
|
wl_list_remove(&output_damage->output_mode.link);
|
||||||
wl_list_remove(&output_damage->output_transform.link);
|
wl_list_remove(&output_damage->output_transform.link);
|
||||||
wl_list_remove(&output_damage->output_scale.link);
|
wl_list_remove(&output_damage->output_scale.link);
|
||||||
wl_list_remove(&output_damage->output_needs_commit.link);
|
wl_list_remove(&output_damage->output_needs_frame.link);
|
||||||
wl_list_remove(&output_damage->output_frame.link);
|
wl_list_remove(&output_damage->output_frame.link);
|
||||||
pixman_region32_fini(&output_damage->current);
|
pixman_region32_fini(&output_damage->current);
|
||||||
for (size_t i = 0; i < WLR_OUTPUT_DAMAGE_PREVIOUS_LEN; ++i) {
|
for (size_t i = 0; i < WLR_OUTPUT_DAMAGE_PREVIOUS_LEN; ++i) {
|
||||||
|
@ -122,7 +122,7 @@ void wlr_output_damage_destroy(struct wlr_output_damage *output_damage) {
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wlr_output_damage_attach_render(struct wlr_output_damage *output_damage,
|
bool wlr_output_damage_attach_render(struct wlr_output_damage *output_damage,
|
||||||
bool *needs_commit, pixman_region32_t *damage) {
|
bool *needs_frame, pixman_region32_t *damage) {
|
||||||
struct wlr_output *output = output_damage->output;
|
struct wlr_output *output = output_damage->output;
|
||||||
|
|
||||||
int buffer_age = -1;
|
int buffer_age = -1;
|
||||||
|
@ -156,7 +156,7 @@ bool wlr_output_damage_attach_render(struct wlr_output_damage *output_damage,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
*needs_commit = output->needs_commit || pixman_region32_not_empty(damage);
|
*needs_frame = output->needs_frame || pixman_region32_not_empty(damage);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -140,7 +140,7 @@ static void frame_handle_copy(struct wl_client *client,
|
||||||
frame->buffer_destroy.notify = frame_handle_buffer_destroy;
|
frame->buffer_destroy.notify = frame_handle_buffer_destroy;
|
||||||
|
|
||||||
// Schedule a buffer commit
|
// Schedule a buffer commit
|
||||||
output->needs_commit = true;
|
output->needs_frame = true;
|
||||||
wlr_output_schedule_frame(output);
|
wlr_output_schedule_frame(output);
|
||||||
|
|
||||||
if (frame->overlay_cursor) {
|
if (frame->overlay_cursor) {
|
||||||
|
|
|
@ -150,7 +150,7 @@ static void screenshooter_shoot(struct wl_client *client,
|
||||||
wl_signal_add(&output->events.precommit, &state->frame_listener);
|
wl_signal_add(&output->events.precommit, &state->frame_listener);
|
||||||
|
|
||||||
// Schedule a buffer commit
|
// Schedule a buffer commit
|
||||||
output->needs_commit = true;
|
output->needs_frame = true;
|
||||||
wlr_output_schedule_frame(output);
|
wlr_output_schedule_frame(output);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue