mirror of
https://gitlab.freedesktop.org/wlroots/wlroots.git
synced 2026-04-17 06:46:39 -04:00
wlr_scene: Precompute raster textures before rendering
This commit is contained in:
parent
2cbf7b563a
commit
6caa8cd4f0
1 changed files with 13 additions and 0 deletions
|
|
@ -2086,6 +2086,19 @@ bool wlr_scene_output_build_state(struct wlr_scene_output *scene_output,
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// upload all the textures that will be used within this pass before we start
|
||||||
|
// rendering. We need to do this because some of those textures might be
|
||||||
|
// created as part of a multirender blit.
|
||||||
|
for (int i = list_len - 1; i >= 0; i--) {
|
||||||
|
struct render_list_entry *entry = &list_data[i];
|
||||||
|
if (entry->node->type != WLR_SCENE_NODE_BUFFER) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
struct wlr_scene_buffer *buffer = wlr_scene_buffer_from_node(entry->node);
|
||||||
|
wlr_raster_create_texture(buffer->raster, output->renderer);
|
||||||
|
}
|
||||||
|
|
||||||
render_data.render_pass = render_pass;
|
render_data.render_pass = render_pass;
|
||||||
|
|
||||||
pixman_region32_init(&render_data.damage);
|
pixman_region32_init(&render_data.damage);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue