mirror of
https://gitlab.freedesktop.org/wlroots/wlroots.git
synced 2025-11-24 06:59:45 -05:00
output: rename impl->rollback to rollback_render
The output backend API is now mostly state-less thanks to the atomic hooks (commit and test). There is one exception though: attach_render. This function makes the rendering context current. However sometimes the compositor might decide not to render after attach_render (e.g. when there's nothing new to render to the back buffer). Thus wlr_output_rollback has been introduced to revert the pending state. Because the output backend API is mostly state-less, the only thing wlr_output_impl.rollback needs to do is revert the current rendering context. Rename the function to rollback_render to make this clear. Add a check in the common wlr_output code to only call rollback_render when attach_buffer has been previously called. On the long term, we'll be able to remove attach_render and rollback_render together.
This commit is contained in:
parent
58df3eda9f
commit
bf93d2e67c
6 changed files with 18 additions and 17 deletions
|
|
@ -638,11 +638,13 @@ bool wlr_output_commit(struct wlr_output *output) {
|
|||
}
|
||||
|
||||
void wlr_output_rollback(struct wlr_output *output) {
|
||||
output_state_clear(&output->pending);
|
||||
|
||||
if (output->impl->rollback) {
|
||||
output->impl->rollback(output);
|
||||
if (output->impl->rollback_render &&
|
||||
(output->pending.committed & WLR_OUTPUT_STATE_BUFFER) &&
|
||||
output->pending.buffer_type == WLR_OUTPUT_STATE_BUFFER_RENDER) {
|
||||
output->impl->rollback_render(output);
|
||||
}
|
||||
|
||||
output_state_clear(&output->pending);
|
||||
}
|
||||
|
||||
void wlr_output_attach_buffer(struct wlr_output *output,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue